鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[课后作业] 第063讲:类和对象(VI)| 课后测试题及答案

  [复制链接]
发表于 2026-2-27 10:10:20 | 显示全部楼层
零基础入门学习Python封面
《零基础入门学习Python》
(最新版)
小甲鱼 著
立即购买
1请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-2-25 17:25:51 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-2-11 11:04:45 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:
比如一些运算符,+, 函数,len(), 还有类的继承多态等
第 1 题的答案是:
见机行事
第 2 题的答案是:
可以,第一个是运算符,加号,第二个是字符串拼接功能
第 3 题的答案是:
When l see a bird that walks like a duck and swims like a duck and quacks like a duck, l call that bird a duck.
第 4 题的答案是:
高内聚,低耦合
第 5 题的答案是:
不属于
-------- 动动手 --------

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-2-7 13:04:36 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-2-6 16:10:50 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-2-5 08:43:26 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-2-4 22:24:51 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:子类中可以对父类的方法进行重写

第 1 题的答案是:简化代码,不用关心对象具体类型,只要有相应的方法就可以

第 2 题的答案是:可以

第 3 题的答案是:不知道

第 4 题的答案是:降低耦合度

第 5 题的答案是:不是

-------- 动动手 --------

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-1-30 18:33:18 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:继承 + 方法重写

第 1 题的答案是:多态的优势是什么?

第 2 题的答案是:KEYI

第 3 题的答案是:如果它走起来像鸭子,叫起来也像鸭子,那它就是鸭子。”

第 4 题的答案是:减弱内聚 增强耦合

第 5 题的答案是:不算吧

-------- 动动手 --------

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-1-26 17:21:16 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------cdcs

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-1-26 10:28:19 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-1-22 15:00:59 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:
Python 通过 “鸭子类型”(Duck Typing) 和 方法重写(Override) 来体现面向对象的多态(Polymorphism) 特性。
第 1 题的答案是:
提升代码的灵活性、可维护性和可扩展性
第 2 题的答案是:
我觉得可以
第 3 题的答案是:
如果它走起来像鸭子,叫起来也像鸭子,那它就是鸭子。
第 4 题的答案是:
降低耦合度,及模块间的依赖关系
第 5 题的答案是:
不是!没有面对对象
-------- 动动手 --------

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-1-19 19:14:49 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-1-19 15:42:47 | 显示全部楼层

class Users:
    def __init__(self,name,uid,job,grade,year,salary):
        self.name = name
        self.uid = uid
        self.salary = salary
        self.job = job
        self.grade = grade
        self.year = year

class Manager():
    def __init__(self):
        self.users = []
        self.uid = 10000

    def get_uid(self):
        return self.uid + 1

    def get_name(self):
        self.name = input('姓名:')
        while True:
            if self.name == '':
                self.name = input('姓名:')
                continue
            else:
                break
        return self.name
    def get_job(self):
        self.job = input('职位(E.普通员工;T:组长;M:经理):').upper()
        while True:
            if self.job == '':
                self.job = input('职位(E.普通员工;T:组长;M:经理):').upper()
                continue
            else:
                break
        return self.job
    def get_grade(self):
        self.grade = input('级别:')
        while True:
            if self.grade == '':
                self.grade = input('级别:')
                continue
            else:
                break
        return int(self.grade)
    def get_year(self):
        self.year = input('工龄:')
        while True:
            if self.year == '':
                self.year = input('工龄:')
                continue
            else:
                break
        return self.year


    def welcome(self):
        while True:
            choices = input('1、录入;2、查询;3、升级;4降级;5、退出:')
            if choices == '1':
                self.register_user()
                print(f'user信息{self.users}')
                continue
            if choices == '2':
                self.view_info()
                continue
            if choices == '3':
                self.up_job()
                continue
            if choices == '4':
                self.down_job()
                continue
            if choices == '5':
                return
            else:
                print('===输入错误。请重新输入===')

    def salary(self, job, grade, year):
        if job == 'E':
            salary1 = 3000 + 500 * int(grade) + 50 * int(year)

        if job == 'T':
            salary1 = 4000 + 800 * int(grade) + 100 * int(year)

        if job == 'M':
           salary1 = 5000 + 1000 * ( int(grade) + int(year) )

        return salary1


    def register_user(self):
        while True:
            username = self.get_name()
            job = self.get_job()
            year = self.get_year()
            grade = self.get_grade()

            if job == 'E':
                while True:
                    if grade >10 or grade <1:
                        print('员工级别最低为1,最高为10!')
                        grade = self.get_grade()
                        continue
                    else:
                        break

            if job == 'T':
                while True:
                    if grade >6 or grade <1:
                        print('组长级别最低为1,最高为6!')
                        grade = self.get_grade()
                        continue
                    else:
                        break
            if job == 'M':
                while True:
                    if grade >3 or grade <1:
                        print('经理级别最低为1,最高为3!')
                        grade = self.get_grade()
                        continue
                    else:
                        break

            calculate_salary = self.salary(job, grade, year)
            usersinfor = Users(username,self.uid,job,grade,year,calculate_salary)
            self.users.append(usersinfor)
            print(f'录入成功!姓名:{username},工号:{self.uid},薪资{calculate_salary}')
            self.uid  = self.get_uid()
            return self.users

    def view_info(self):
        while True:
            v = input ('1、员工查询;2、职位查询:')
            if v == '1':
                uid  =  input ('请输入员工工号:')
                for each in self.users:
                    if each.uid == int(uid):
                        print(f'姓名:{each.name}\n职位:{each.job}\n级别:{each.grade}\n工龄:{each.year}\n薪资:{each.salary}\n')
                        break
                    else:
                        continue
                else:
                    print('查无此人!!')
                    break
            elif v == '2':
                count = 0
                temp = {}
                job = input('职位(E.普通员工;T:组长;M:经理):').upper()
                for each in self.users:
                    if each.job == job:
                        count += 1
                        temp[each.uid] = each.name
                        continue
                # t = list(map('-'.join,temp.items()))
                if job == 'E' and count != 0:
                    print(f'目前普通员工一共有:{count}人:\n{temp}')
                elif job == 'T'and count != 0:
                    print(f'目前组长一共有:{count}人:\n{temp}')
                elif job == 'M'and count != 0:
                    print(f'目前经理一共有:{count}人:\n{temp}')
                else:
                    print('此职位暂无人员!!')
                    break
            else:
                print('输入指令不正确!')
                break

    def up_job(self):
        uid = int(input('请输入员工工号:'))
        for each in self.users:
            if each.uid == uid:
                name = each.name
                uid = each.uid
                job = each.job + str(each.grade)
                salary = each.salary
                print(f'{name},工号:{uid},当前职位:{job},当前薪资:{salary}\n')
                temp_grade = input('请输入需要增加的级数:')
                new_grade = int(temp_grade) + each.grade
                if each.job == 'E':
                    if new_grade > 10 :
                        each.job = 'T'
                        new_grade = 1
                elif each.job == 'T':
                    if new_grade > 6 :
                        each.job = 'M'
                        new_grade = 1
                elif each.job == 'M':
                    if new_grade > 3 :
                        each.job = 'M'
                        new_grade = 3
                        print('经理级别最高为3!')
                new_job = each.job + str(new_grade)
                each.grade = new_grade
                each.job = each.job
                new_salary = self.salary(each.job, each.grade, each.year)
                chasalary = new_salary - each.salary
                each.salary = new_salary
                print('升级成功!')
                print(f'{name},工号:{uid},当前职位:{new_job},当前薪资:{new_salary}(+{chasalary})\n')
                return

    def down_job(self):
        uid = int(input('请输入员工工号:'))
        for each in self.users:
            if each.uid == uid:
                name = each.name
                uid = each.uid
                job = each.job + str(each.grade)
                salary = each.salary
                print(f'{name},工号:{uid},当前职位:{job},当前薪资:{salary}\n')
                temp_grade = input('请输入需要减少的级数:')
                new_grade = each.grade - int(temp_grade)
                if each.job == 'E':
                    if new_grade < 0 :
                        print('普通理级别最低为1!')
                        each.job = 'E'
                        new_grade = 1
                elif each.job == 'T':
                    if new_grade < 1 :
                        each.job = 'E'
                        new_grade = 10
                elif each.job == 'M':
                    if new_grade < 1 :
                        each.job = 'T'
                        new_grade = 6
                new_job = each.job + str(new_grade)
                each.grade = new_grade
                each.job = each.job
                new_salary = self.salary(each.job, each.grade, each.year)
                chasalary  =  each.salary -new_salary
                each.salary = new_salary
                print('降级成功!')
                print(f'{name},工号:{uid},当前职位:{new_job},当前薪资:{new_salary}(-{chasalary})\n')
                return

def main():
    m = Manager()
    m.welcome()

main()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-1-12 14:18:54 | 显示全部楼层
看不到老师发的功能实现。。。。没法往下写了

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-1-8 11:30:11 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-12-26 20:03:07 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-12-21 17:39:03 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:111

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-12-21 14:39:27 | 显示全部楼层
H请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-12-19 04:31:47 | 显示全部楼层
问答6
0. 针对不同对象,会有不同的作用效果
1. 即便使用者传入了不同的参数,还是能得到合适的结果
2. 是的
3. 不知道
4. 增加了耦合度吧?
5. 不是吧,还是实现了求和的作用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-12-18 17:10:00 | 显示全部楼层
本帖最后由 hbirthday 于 2025-12-18 17:15 编辑

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:比如同样是len()函数,面对字符串,列表,字典的返回值方法是不一样的。

答案:多态在编程中是一个非常重要的概念,它是指同一个运算符、函数或对象在不同的场景下,具有不同的作用效果。
a. 比如加号运算符(+),当左右两边是数字的时候,它执行的是算术运算;当操作数变成字符串的时候,它执行的又是拼接操作,这是属于运算符的多态体现。
b. 再比如 len() 函数,它的功能是获取一个对象的长度:

第 1 题的答案是:不知道。
答案:提高代码的灵活性。

第 2 题的答案是:可以。
加号运算符对不同的数据类型执行了不同的操作,是 Python 中最简单的多态现象之一。

第 3 题的答案是:不知道。
答案:当看到一个鸟走起路来像鸭子、游起泳来像鸭子、叫起来也像鸭子,嘎嘎嘎的,那么这个鸟我们就可以把它称之为鸭子。


第 4 题的答案是:听不懂。
答案:降低了耦合度。
鸭子类型体现在接口的宽容度上(我们不需要关心对象具体是什么类型,只在乎它的行为方法是否符合要求即可)。

第 5 题的答案是:不是
答案:是的,这是属于自定义函数层面的多态现象。


-------- 动动手 --------

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-8-21 08:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表