错误代码如下:
def max_num(a,b,*c):
for i in c:
if a > b:
if i>a:
max_number = i
else:
max_number = a
else:
if i > b:
max_number = i
else:
max_number = b
return max_number
t=eval(input())
max_num(t)
错误原因:
1.逻辑不全:每次遍历元组c时都会给max_number重新赋值,所以最后只会保留最后那个值。
还有,当c为空元组的时候没有对应处理。
2.变量定义不全:变量t是一个元组,相当于只有一个参数,当带入进max_num函数时,就会缺少关键参数
正确代码:
def max_num(a, b, *c):
max_number = a if a > b else b
for i in c:
if i > max_number:
max_number = i
return max_number
t = eval(input("请输入若干个以英文逗号分隔的数字:"))
result = max_num(*t)
print("最大值为:", result)
1.给max_number一个a,b中的较大值,这样就解决了c为空元组的情况
2.在使用不定参数时,如果要传入一个元组可以用*+变量名即可(这种情况是将元组内的元素分别视为独立元素),也就是加*后解包分别赋值给形参a,b,c