鱼C论坛

 找回密码
 立即注册
查看: 54382|回复: 850

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

  [复制链接]
发表于 2022-6-6 01:10:36 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 10 鱼币 才能浏览
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 3 天前 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

发表于 3 天前 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

发表于 4 天前 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:有多态函数

第 1 题的答案是:不管传入参数类型,只管是否有其方法

第 2 题的答案是:可以

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:不属于

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

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

使用道具 举报

发表于 4 天前 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

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

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

发表于 2026-8-7 16:51:52 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:子类继承父类  重写父类同名方法 通过实例对象调用方法

第 1 题的答案是:没有多态要判断对象的类型 然后分支处理

第 2 题的答案是:可以 同一个加号 不同对象执行不同逻辑

第 3 题的答案是:如果它走起来像鸭子,游起来像鸭子,叫起来像鸭子,那它大概就是一只鸭子

第 4 题的答案是:

第 5 题的答案是:不是  参数不同而已

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

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

使用道具 举报

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

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

发表于 2026-8-6 07:48:31 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

发表于 2026-8-2 14:42:12 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:
1.鸭子类型:不需要关心对象的具体类型或继承关系,只关心对象是否具备我们需要的方法或属性。
2.内置运算符的多态:Python 的内置操作符天然支持多态,底层是通过“魔术方法”(如 __add__)来实现的。同一个 + 号,面对不同的数据类型会表现出不同的行为
3.基于继承的方法重写:Python 也完全支持通过继承父类并重写(Override)父类方法来实现多态。
4.内置函数len()的多态:len() 可以作用于字符串、列表、字典等任何实现了 __len__ 方法的对象
第 1 题的答案是:
1.极强的可扩展性;
2.消除冗余的条件判断;
3.提高代码的复用性;
4.降低代码的耦合度
第 2 题的答案是:
可以成为多态
第 3 题的答案是:
"If it walks like a duck and quacks like a duck, it must be a duck."
(如果它走起来像鸭子,叫起来也像鸭子,那它一定就是只鸭子。)
第 4 题的答案是:
降低耦合
第 5 题的答案是:
不是多态,而是默认参数
-------- 动动手 --------

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

使用道具 举报

发表于 2026-7-29 17:49:20 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

发表于 2026-7-28 23:01:20 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

同样的方法面对不同对象有不同作用,比如 ‘*’ 号 整数和整数是相乘 ,字符串和整数是把该字符串复制int遍。

第 1 题的答案是:

灵活

第 2 题的答案是:

可以

第 3 题的答案是:

when i see a bird that walks like a duck swims like a duck quacks like a duck i call that bird a duck

第 4 题的答案是:

降低了耦合

第 5 题的答案是:

属于

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

请将第 0 题的代码写在下方:



class BaseEmployee:

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



class Employee(BaseEmployee):

    def salary(self):
        return 3000 + 500 * self.grade + 50 * self.year


class Teamleader(BaseEmployee):

    def salary(self):
        return 4000 + 800 * self.grade + 100 * self.year


class Manager(BaseEmployee):

    def salary(self):
        return 5000 + 1000 * (self.grade + self.year)





class Manage:

    def __init__(self):
        self.emp = {}
        self.number = 9999
        self.all_job = {'E':'普通员工',
                           'T':'组长',
                           'M':'经理'}

        self.max_grade = {'E':10,
                     'T':6,
                     'M':3,}
        self.now_job = ['E','T','M']


    def set_employee(self):
        self.name = input('请输入员工姓名: ')
        self.job = input('职位(E.普通员工;T.组长;M.经理): ')
        self.year = int(input('员工工龄: '))
        self.grade = int(input('员工级别: '))

        
        
        while self.year < 0:
            print('员工工龄不能小于0,请重新输入: ')
            self.year = int(input('员工工龄: '))

        while self.grade < 1:
            print('员工级别不能小于1,请重新输入: ')
            self.grade = int(input('员工级别: '))

        while self.grade > self.max_grade[self.job]:
            print(f'员工级别"{self.grade}"超过当前职位"{self.job}"的上限,请重新输入 ')
            self.job = input('职位(E.普通员工;T.组长;M.经理): ')
            self.grade = int(input('员工级别: '))
            
        self.number += 1
        

        

        if self.job == 'E':
            self.emp[self.number] = Employee(self.number,self.name,self.job,self.grade,self.year)

        elif self.job == 'T':
            self.emp[self.number] = Teamleader(self.number,self.name,self.job,self.grade,self.year)

        elif self.job == 'M':
            self.emp[self.number] = Manager(self.number,self.name,self.job,self.grade,self.year)

        
        print(f'录入成功!姓名{self.name}, 工号:{self.number}, 薪资: {self.emp[self.number].salary()}')

        
            
    def find_job(self,find):
        each = 0
        allE = []
        for i in self.emp:
            if self.emp[i].job == find:
                each += 1
                allE.append(i)
        return each , allE
   

    def find_employee(self):
        while True:
            chose = input('1.员工查询; 2.职位查询: ')
            if chose == '1':
                find_uid = int(input('请输入工号:'))
                if find_uid in self.emp:
                    print(f'姓名:{self.emp[find_uid].name}'
                          f'职位:{self.emp[find_uid].job}'
                          f'级别:{self.emp[find_uid].grade}'
                          f'工龄:{self.emp[find_uid].year}'
                          f'薪资:{self.emp[find_uid].salary()}')
                    break
                else:
                    print('该工号不存在')
            

            elif chose == '2':
               
               
                find = input('请输入职位(E.普通员工;T.组长;M.经理): ')
               
                each, allE, = self.find_job(find)
                if each == 0:
                    print(f'公司当前没有{self.all_job[find]}')

                else:
                    print(f'当前{self.all_job[find]}共有 {each} 人:')
                    for i in allE:
                        print(f'{i} - {self.emp[i].name}')
                        break
            
                    
            else:
                print('请输入正确指令')
                continue




            
    def up(self):
        while True:
            uid = int(input('请输入工号:'))
            if uid in self.emp:
                break
            else:
                print('工号不存在请重新输入')
        
        emp = self.emp[uid]
        print(f'姓名:{emp.name},工号:{emp.uid},当前职位:{emp.job}{emp.grade},当前薪资:{emp.salary()}')

   
        up_grade = int(input('请输入需要增加的级数:'))
        zhiwei = self.now_job.index(emp.job)


        while up_grade + emp.grade > self.max_grade[emp.job]:
            up_grade += emp.grade
            if emp.job == self.now_job[-1]:
                print('已经是最高等级')
                emp.job = self.now_job[-1]
                emp.grade = self.max_grade[emp.job]
                print(f'当前职位:{self.all_job[emp.job]} {emp.grade}级')
                break
               
               
            if len(self.now_job)-1 >= zhiwei:
                    
                up_grade -= self.max_grade[self.now_job[zhiwei]]
                zhiwei += 1
                emp.job = self.now_job[zhiwei]
                emp.grade = 0
                continue

            if up_grade == 0:
                emp.grade = 1
            print(f'升级成功,当前职位:{self.all_job[emp.job]} {emp.grade}级')

            break
                    
        else:
            emp.grade += up_grade
            print(f'升级成功,当前职位:{self.all_job[emp.job]} {emp.grade}级')




    def low(self):
        while True:
            uid = int(input('请输入工号:'))
            if uid in self.emp:
                break
            else:
                print('工号不存在请重新输入')
        
        emp = self.emp[uid]
        print(f'姓名:{emp.name},工号:{emp.uid},当前职位:{emp.job}{emp.grade},当前薪资:{emp.salary()}')



        low_grade = int(input('请输入需要降低的级数:'))
        zhiwei = self.now_job.index(emp.job)



        while emp.grade - low_grade < 1:
            if zhiwei == 0:
                print('已经是最低等级')
                emp.job = self.now_job[zhiwei]
                emp.grade = 1
                print(f'当前职位:{self.all_job[emp.job]} {emp.grade}级')
                break
               
               
            if zhiwei > 0:
                low_grade -= emp.grade
                zhiwei -= 1
                emp.job = self.now_job[zhiwei]
                emp.grade = self.max_grade[emp.job]
                continue
            
            elif low_grade == 0:
                emp.job = self.now_job[zhiwei]
                emp.grade = self.max_grade[emp.job]
                continue
            
            elif low_grade > 0:
                emp.job = self.now_job[zhiwei]
                emp.grade -= low_grade
                continue

                    
        else:
            emp.grade -= low_grade
            print(f'降级成功,当前职位:{self.all_job[emp.job]} {emp.grade}级')
               

a = Manage()
while True:
   
    chose = int(input('1.录入;2.查询;3.升级;4.降级;5.退出;'))
    if chose == 1:
        a.set_employee()
    elif chose == 2:
        a.find_employee()
    elif chose == 3:
        a.up()
    elif chose == 4:
        a.low()
    elif chose == 5:
        print('感谢使用系统~')
        break
            
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

第 0 题的答案是:
利用子类对父类的继承和重写。
第 1 题的答案是:
可以保持父类稳定,减少重复工作
第 2 题的答案是:
可以,数据和字符窜相加,意义不同。
第 3 题的答案是:
黑猫白猫
第 4 题的答案是:
降低耦合
第 5 题的答案是:
不是,是单态。
-------- 动动手 --------

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

使用道具 举报

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

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

第 0 题的答案是:鸭子类型,子类重写父类函数

第 1 题的答案是:多态的优势是扩展性好,不需要大量修改源代码

第 2 题的答案是:可以

第 3 题的答案是:

第 4 题的答案是:鸭子类型是降低耦合度

第 5 题的答案是:是的

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

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

使用道具 举报

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

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

发表于 2026-7-17 18:58:42 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

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

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

第 0 题的答案是:
1
第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

发表于 2026-7-15 21:01:47 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

发表于 2026-7-13 16:28:02 | 显示全部楼层
璁ょ湡瀛︿範涓紝鎰熻阿灏忕敳楸艰
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-7-9 22:46:11 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-21 06:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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