python 第18讲课后习题疑问
原题:编写一个符合以下要求的函数:a) 计算打印所有参数的和乘以基数(base=3)的结果
b) 如果参数中最后一个参数为(base=5),则设定基数为5,基数不参与求和计算。
我的解答发生了报错:invalid syntax
def M(#chars):
base = 3
length = len(chars)
for i in range(chars):
result += i
if chars == 5:
base = 5
result *= base
return(result)
疑问是:为什么length是无效语句? 本帖最后由 永恒的蓝色梦想 于 2020-7-7 19:05 编辑
正确代码:def M(*chars):
base = 3
length = len(chars)
result = 0
for i in range(chars):
result += i
if chars == 5:
base = 5
result *= base
return result
result 你忘记初始化了,还有参数是 * 不是 #
def M(*chars):
base = 3
result = 0
length = len(chars)
for i in range(chars):
result += i
if chars == 5:
base = 5
result *= base
return(result) Twilight6 发表于 2020-7-7 18:56
result 你忘记初始化了,还有参数是 * 不是 #
WOC,我只注意到了缩进{:10_247:} 永恒的蓝色梦想 发表于 2020-7-7 19:06
WOC,我只注意到了缩进
{:10_250:} def M(*chars):
base = 3
result = 0
length = len(chars)
for i in chars:
result += i
if chars == 5:
base = 5
result *= base
return(result)
这是测试过后可用的程序,len()是从1开始数的,所以得到元组最后一个数据位置要length-1。
页:
[1]