您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > Python小测试_7
第六周A.......1.每个类的定义必须包含一个初始化方法,该初始化方法的名称是什么?·__init__(两边各2个下划线)2.Python语言中,函数和方法的主要区别是什么?·函数在类之外定义,而方法在类当中定义,方法是类的一部分。4.假设你有以下类和方法的定义(省略了部分代码):classMy_Class:…defmy_method(self,value1,value2):假设该方法有2个参数,该方法可以完成某种功能。…my_object=My_Class()最后一行定义了一个名称为my_object的变量,该变量是My_class类的一个对象。以下哪个是使用该对象my_method方法的正确语法?·my_object.my_method(1,2)5.我们希望小球具备移动的能力,以下哪个设计是正确的?·classBall:def__init__(self,pos,r):self.center=posself.radius=rdefmove(self,move_vector):通过加上给定矢量的分量来改变小球的位置self.center[0]+=move_vector[0]self.center[1]+=move_vector[1]#balls:为Ball对象的列表balls=…6.多数面向对象的编程语言允许方法重载,即同一个方法名称可以因其参数的不同而出现多个版本。本题你将通过试验来体会什么是方法重载并验证Python是否支持重载。请运行以下Python代码:classOverload(object):def__init__(self,param1):passdef__init__(self,param1,param2):passobj1=Overload(1)obj2=Overload(1,2)Overload类定义完成后,我们希望创建2个Overload对象,如果Python支持重载,你将能够使用1个参数创建一个Overload对象,也能够使用2个参数创建一个Overload对象。通过测试,Python是否支持重载?·不支持9.按照Python建议的编码格式要求(PEP8),类的名称应当遵循首字母大写规则,以下哪些是符合要求的类名称?·Student·ImageInfo·BankAccount10.Python语言中对象这一术语的含义是什么?请从下面的下拉式列表中选择正确的答案。·根据类定义创建的一个具体实例第六周第一页3.作为类定义的一个例子,请仔细阅读以下代码:#游戏角色类的定义classCharacter:def__init__(self,name,initial_health):self.name=name#角色名称self.health=initial_health#健康值self.inventory=[]#装备#对象转字符串方法def__str__(self):s=Name:+self.names+=Health:+str(self.health)s+=Inventory:+str(self.inventory)returns#拿起某装备方法defgrab(self,item):self.inventory.append(item)#获取健康值defget_health(self):returnself.health上述例子中self参数代表什么?·Character类的一个对象实例7.首先在PyCharm中创建一个名称为“银行账户管理“的项目,在该项目中新建一个名称为Account的Python程序文件,然后完成以下类的定义:#-*-coding:utf-8-*-classBankAccount:def__init__(self,initial_balance):用指定的余额创建一个银行账户self.balance=initial_balancedefdeposit(self,amount):将指定金额存入该银行账户self.balance+=amountdefwithdraw(self,amount):按指定金额从该银行账户取款。注意:余额不足不能取款passdefget_balance(self):返回该银行账户的当前余额returnself.balancedeposit和withdraw方法均会改变该银行账户的余额,调用withdraw方法时如果余额不足(即导致透支)将无法扣款。请实现该业务逻辑。下面几行代码如果运行后显示0,说明你定义的类是正确的:my_account=BankAccount(10)my_account.withdraw(5)my_account.deposit(10)my_account.withdraw(20)my_account.withdraw(15)print(my_account.get_balance())请将以下代码复制到你的程序文件的尾部,运行你的程序进行测试,将运行结果填在方框内。my_account=BankAccount(10)my_account.withdraw(5)my_account.deposit(10)my_account.withdraw(5)第六周第二页my_account.withdraw(15)my_account.deposit(20)my_account.withdraw(5)my_account.deposit(10)my_account.deposit(20)my_account.withdraw(15)my_account.deposit(30)my_account.withdraw(10)my_account.withdraw(15)my_account.deposit(10)my_account.withdraw(50)my_account.deposit(30)my_account.withdraw(15)my_account.deposit(10)my_account.withdraw(5)my_account.deposit(20)my_account.withdraw(15)my_account.deposit(10)my_account.deposit(30)my_account.withdraw(25)my_account.withdraw(5)my_account.deposit(10)my_account.withdraw(5)my_account.withdraw(15)my_account.deposit(10)my_account.withdraw(5)my_account.withdraw(15)my_account.deposit(10)my_account.withdraw(5)print(my_account.get_balance())·258.我们将继续使用上一题的BankAccount类,上一题BankAccount类的定义应当经得起该题的测试。一个银行如果只能管理一个账户,它将无法生存,该题我们要测试管理多个账户的能力。下面7行代码可以测试你定义的类是否满足管理多个账户的要求:account1=BankAccount(10)account1.withdraw(15)account2=BankAccount(15)account2.deposit(10)account1.deposit(20)account2.withdraw(20)print(account1.get_balance(),account2.get_balance())以上测试代码应当在终端输出30和5两个数字。请将以下测试复制到你的程序文件的尾部,运行你的程序进行测试,观察多个账户经过多次存款、取款操作后结果是什么。account1=BankAccount(20)account1.deposit(10)account2=BankAccount(10)account2.deposit(10)account2.withdraw(50)account1.withdraw(15)account1.withdraw(10)account2.deposit(30)第六周第三页account2.withdraw(15)account1.deposit(5)account1.withdraw(10)account2.withdraw(10)account2.deposit(25)account2.withdraw(15)account1.deposit(10)account1.withdraw(50)account2.deposit(25)account2.deposit(25)account1.deposit(30)account2.deposit(10)account1.withdraw(15)account2.withdraw(10)account1.withdraw(10)account2.deposit(15)account2.deposit(10)account2.withdraw(15)account1.deposit(15)account1.withdraw(20)account2.withdraw(10)account2.deposit(5)account2.withdraw(10)account1.deposit(10)account1.deposit(20)account2.withdraw(10)account2.deposit(5)account1.withdraw(15)account1.withdraw(20)account1.deposit(5)account2.deposit(10)account2.deposit(15)account2.deposit(20)account1.withdraw(15)account2.deposit(10)account1.deposit(25)account1.deposit(15)account1.deposit(10)account1.withdraw(10)account1.deposit(10)account2.deposit(20)account2.withdraw(15)account1.withdraw(20)account1.deposit(5)account1.deposit(10)account2.withdraw(20)print(account1.get_balance(),account2.get_balance())以上测试代码应当依次在终端输出两个数字,请将你看到的两个数字填入下面的输入框(用空格隔开两个数字)。·55115第六周第四页B.........1.本周的“拼图”游戏中画布的宽度,高度和图像块的边长分别是。这些全局变量的值(以像素为单位)为:·600,700,2002.本周的“拼图”游戏中画布上有几个图像块:·83.本周的“拼图”游戏中空白位置用什么表示:·NoneNone4.将鼠标点击位置换算成拼图板上横坐标的方法为:·int(pos[0]//IMAGE_SIZE)5.在类定义的__init__方法中,新对象应该由什么代码返回?·__init__方法中不需要return语句6.要读懂一段代码,方法很多。你可以尝试用其它不同的代码来实现这段代码的功能,也就是对于相同的起始值,两段代码返回或处理后的结果完全一样。以下代码定义了一个合并多个列表的函数,这是一种实现方法。例如,list_extend_many([[1,2],[3],[4,5,6],[7]])返回[1,2,3,4,5,6,7],该函数不会修改任何参数指向的对象。deflist_extend_many(lists):参数为元素为列表的列表,返回一个合并后的列表result=[]forlinlists:result.extend(l)returnresult·deflist_extend_many(lists):·deflist_extend_many
本文标题:Python小测试_7
链接地址:https://www.777doc.com/doc-4210715 .html