1.函数传参 题目:为什么以下代码不能正常运行? def TraningStudent(a,b,c): print('我会'+a+'、'+b+'、'+c) TraningStudent('唱','跳') 答案: def TraningStudent(a,b,c): print('我会'+a+'、'+b+'、'+c) TraningStudent('唱','跳','rap') 解析: 因为函数 TraningStudent 在定义时需要我们传三个形参,而我们在调用函数时赋的实参值只有两个,所以系统无法执行。而解决的方法就是多赋予一个实参即可。 2.ceil()函数 下面代码的运行结果是____。 import math def estimated(quantity,time): people= quantity * 15 / time print('有{}桶水,{}分钟喝完需要{}个人'.format(quantity,time,math.ceil(people))) estimated(10,7) 答案: 有10桶水,7分钟喝完需要22个人 解析: 因为人不能为小数,ceil为向上取整函数,10*15/7约为21.4,取整为22个人。 3.debug 题目:请修改下方的代码,使程序能正常运行: while False: word = inpunt('请输入你的名字') if word == 吴枫 print('帅的人无处可藏,真的是') break elif word = '卡西': print('漂亮的妹子让人记得清,哈哈哈') break else: print('再输一次吧,这个名字不够帅') 答案: while True: word = input('请输入你的名字') if word == '吴枫': print('帅的人无处可藏,真的是') break elif word == '卡西': print('漂亮的妹子让人记得清,哈哈哈') break else: print('再输一次吧,这个名字不够帅') continue 解析: 此代码中出现了几处错误,具体改动如下: 逻辑错误:while Flase 的话,语句为假,使程序不执行下方语句,应该为 while True; 拼写错误:input 写成了 inpunt ,导致出现错误; 未定义错误:吴枫未加上引号,无法定义为字符串来做比较,应加上 ‘’; 语法错误:判断语句中的 等于号写成了 = ,应改为 ==。 4.类的创建、实例、传参 题目: 按照一下要求定义一个游乐园门票类,并尝试计算2个成人+1个小孩子平日票价 1.平日票价100元 2.周末票价为平日票价120% 3.儿童半价 答案: class Ticket: pice = 100 weekend = pice*1.2 def compute(self,adultcount,childcount,isweekend): if(isweekend=='no'): total = int(adultcount)*self.pice+int(childcount)*(self.pice/2) print('应该支付总金额:',str(total)) elif(isweekend=='yes'): total = int(adultcount)*self.weekend+int(childcount)*(self.weekend/2) print('应该支付总金额:',str(total)) else: print('输入有误')
while True: print('welcome to 迪斯尼 ') adult = input('请输入成年人数量(输入exit退出)') if adult =='exit': break else: child = input('请输入小孩数量') isweekend = input('是否是周末?yes/no') t = Ticket() t.compute(adult,child,isweekend) 解析: 首先,先建一个Ticket类,票价由于在其他类函数中需要用到,所以可以设置成类属性 其次,考虑到要统计票价,所以需要写个类方法来处理,由于考虑到让系统更智能,因而将成人数量,小孩数量以及是否为周末等信息通过类外部获取(如不需要,可直接将这三个数定义为局部变量,赋固定值)所以,需要3个参数。 函数内部要先判断是不是周末,如果不是周末,那么票价就是price,如果是周末,那么票价就是weekend 最终,将成人数量,小孩数量以及是否为周末的值设置为,由用户自己输入,并将值传到实例后的compute方法里面。 5.初始化函数 题目:公司近期想总结一下助教们的名片信息,以下为收集兴趣和名字时的代码,卡西认为自己作为子类,代码还可以更简便一些,请对子类的初始化函数进行修改,让代码更加简洁。 class Teachers: def __init__(self,hobby,name=,city='深圳'): self.name=name self.hobby=hobby self.city=city def say_hello(self): print('大家好,我是来自{}的{},喜欢{}'.format(self.city,self.name,self.hobby)) class Kaxi(Teachers): def __init__(self,hobby,name='助教卡西',city='深圳'): self.name=name self.hobby=hobby self.city=city def say_hello(self): print('hello,小可爱我是来自{}的{},喜欢{}'.format(self.city,self.name,self.hobby)) kaxi=Kaxi('唱歌') kaxi.say_hello() 答案: class Teachers: def __init__(self,hobby,name='助教',city='深圳'): self.name=name self.hobby=hobby self.city=city def say_hello(self): print('大家好,我是来自{}的{},喜欢{}'.format(self.city,self.name,self.hobby)) class Kaxi(Teachers): def __init__(self,hobby,name='助教卡西',city='深圳'): Teachers.__init__(self,hobby,name) def say_hello(self): print('hello,小可爱我是来自{}的{},喜欢{}'.format(self.city,self.name,self.hobby)) kaxi=Kaxi('唱歌') kaxi.say_hello() 解析: 在继承时,若方法名相同则默认为改写,当只需改写父类方法中的一小部分时,可在改写的方法内部调用父类的方法,再将需要补充的部分写在下方即可。
|