|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- >>> def sum(*x):
- s=0
- for n in x:
- for i in range(len(n)):
- s+=n[i]
- return s
- >>> sum(1,2,range(10))
- Traceback (most recent call last):
- File "<pyshell#763>", line 1, in <module>
- sum(1,2,range(10))
- File "<pyshell#762>", line 4, in sum
- for i in range(len(n)):
- TypeError: object of type 'int' has no len()
- >>>
复制代码
请问我定义的这个sum函数是哪里错了?
又应当做出怎样的更改,才能让他既接受单个数字,又接受数列或元组的加总?
多加个 if 条件判断吧,就像楼上说的
另外你 len 那报错先抛开,你的 n[ i] 也必定会报错,不能对数值进行索引,索引是对部分序列对象进行操作的
加了类型判断,参考代码:
- def sum(*x):
- s = 0
- for n in x:
- if type(n) in [float, int]:
- s += n
- continue
- for i in range(len(n)):
- s += n[i]
- return s
- print(sum(1,2,range(10)))
复制代码
|
|