为什么自定义函数调用不了
>>> def by_name(N):for i in N:
if isinstance(i,str) == True:
return i.lower()
>>> L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
>>> l = by_name(L)
>>> print(l)
None
>>> 迭代的是每一个元组还要加一次循环迭代元组里面的元素 本帖最后由 jackz007 于 2020-12-29 14:47 编辑
函数 by_name() 的输入参数是由元组元素构成的列表,所以,i 枚举到的是元组,例如,('Bob', 75),还到不了字符串,所以, i . lower() 实际上调用的是元组的方法,元组是没有 lower() 方法的。所以,这个自定义函数是错误的。
def by_name(N , I):
return N . lower()
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
for i in range(4):
print(by_name(L , i)) def by_name(N):
h = -1
for i in N:
k,j = i
h += 1
if isinstance(k, str) == True:
N = (k.lower(),j)
return N
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
l = by_name(L)
print(l)
页:
[1]