【错题集】python基础之初始函数和对象的方法
【记录做错的题目】
多选题:对于下面的函数定义下面的调用语句,错误的有(3.00分)
def f1(a,b):
print((a*3 + b*5)/23)
A:f1(a=3,b,4)
B:f1(3,b=4)
C:f1(a=3,4)
D:f1(3)
错误答案:B C
标准答案:C D(C中b的值需要与a保持一致的格式,D中的实参个数不足)
多选难:下面的代码,哪些是执行会报错的(3.00分)
A:int(33)
B:int('3.3')
C:float(3h)
D:str([1,3])
错误答案:B C D
标准答案:B C(B中字符串需要整形和整数才能转为int,C中float需要数字、字符串才能转化)
多选题:定义这样一个函数 - 下面说法正确的是(3.00分)
def e1():
print('in e1')
return False
A:执行 False and e1() 屏幕会 显示 'in e1'
B:执行 e1() and False 屏幕会 显示 'in e1'
C:执行 True or e1() 屏幕会 显示 'in e1'
D:执行 False or e1() 屏幕会 显示 'in e1'
错误答案:A B C D
标准答案:B D (考查程序运行顺序,and第一个是Flase即不运行后面的,or第一个是True即不运行后面的)
判断题:函数的定义 和函数的调用在代码文件中 前后次序并不重要,只要都存在即可 (3.00分)
正确
错误
错误答案:错误
标准答案:正确(函数调用前需要逻辑(次序)顺序上先定义)
*判断题:函数的返回值可以是多个对象,中间用逗号隔开 (3.00分)
正确
错误
错误答案:错误(返回值若用多个‘’,‘’隔开,返回的是元祖类型)
标准答案:正确
*判断题:下面的代码执行完后,变量b 的值仍然为 [1] (3.00分)
def t2(para):
para[0] = 3
b = [1]
t2(b)
正确
错误
错误答案:正确(print(para[0]) = [3] ,并不影响b值,b在该题中仅充当一个实参传值给形参para——错误观点)
标准答案:错误(para[0]和b均指向'[1]',函数中将[1]值修改为[3],所以para[0]和b均指向'[3],地址未变')
判断题:代码 '1111'.isalpha() 返回结果是 True (3.00分)
正确
错误
错误答案:正确
标准答案:错误(isalpha判字母的,isdigit判定数字的)
判断题:字符串的replace方法只能替换第一个找到的子字符串,比如 'hi, jack, you are smart, jack'.replace('jack','mary') (3.00分)
正确
错误
错误答案:正确
标准答案:错误(可以‘,2’设置替换几个值)
编程题:
现有一个游戏系统的日志文件,记录内容的字符串 的格式 如下所示
A girl come in, the name is Jack, level 955;
其中包含的 the name is 后面会跟着人名,随后紧跟一个逗号, 这是固定的格式。
其它部分可能都是会变化的,比如,可能是下面这些
A old lady come in, the name is Mary, level 94454
A pretty boy come in, the name is Patrick, level 194
请大家实现一个函数,名为getName,如下所示
def getName(srcStr):
函数体
该函数的参数srcStr 是上面所描述的格式字符串(只处理一行),该函数需要将其中的人名获取出来,并返回
比如 调用 getName('A old lady come in, the name is Mary, level 94454')
返回结果应该是 'Mary'
错误答案:
n = 'A girl come in,the name is Jack,level 955;'
a = print(n.split(','))
print(a[1])#报错:'NoneType' object is not subscriptable
def getName(srcStr):
srcStr = a[0]
return srcStr.split(',')[-1]
getName()
复习后答案:
def getName(srcStr):
t = srcStr.split(',')[1].split(' ')
return print(t[3])
getName('A girl come in, the name is Jack, level 955;')
参考答案:
def getName(srcStr):
return srcStr.split('the name is ')[1].split(',')[0]
注释:20190109做错题,重复错误的已经红色文字标注