分享

山腰经典题型

 cwb929 2020-03-07

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()

解析:

在继承时,若方法名相同则默认为改写,当只需改写父类方法中的一小部分时,可在改写的方法内部调用父类的方法,再将需要补充的部分写在下方即可。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多