Python 整数和-';int';对象是不可编辑的
我的问题与python中的sum函数有关 所以我的代码是Python 整数和-';int';对象是不可编辑的,python,Python,我的问题与python中的sum函数有关 所以我的代码是 def black_jack(a, b): if sum(a, b) > 21: return 0 else: return sum(a, b) print black_jack(10, 5) 我得到一个错误,读取: 'int' object is not iterable 有人能解释一下为什么会发生这种情况以及如何修复它吗?sum需要一个可编辑的对象(比如list)。因此,代
def black_jack(a, b):
if sum(a, b) > 21:
return 0
else:
return sum(a, b)
print black_jack(10, 5)
我得到一个错误,读取:
'int' object is not iterable
有人能解释一下为什么会发生这种情况以及如何修复它吗?sum需要一个可编辑的对象(比如list)。因此,代码应该是:
def black_jack(a, b):
if sum([a, b]) > 21:
return 0
else:
return sum([a, b])
print black_jack(10, 5)
以下内容有什么问题
def black_jack(a, b):
if a + b > 21:
return 0
else:
return a + b
print black_jack(10, 5)
在21点游戏中,一个人可以拥有的不仅仅是两张牌,但在你的例子中,你似乎假设一手牌只能有两张牌。如果允许使用数量可变的卡,则需要使用其他人建议的iterable对象:
def black_jack(values):
total = sum(values)
return 0 if total > 21 else total
print black_jack(10, 5)
从以下文件中:
sum(
[,
])
将iterable的起始项和项从左到右求和,并返回总数。开始默认为0
。iterable的项通常是数字,并且起始值不允许是字符串
对于某些用例,有很好的替代方法。连接字符串序列的首选快速方法是调用'.join(sequence)
。要添加具有扩展精度的浮点值,请参见。为了连接一系列迭代,考虑使用.< /P>
版本2.3中的新功能
sum
将第一个参数作为列表。这里是:
def black_jack(a, b):
if (sum([a], b) > 21):
return 0
else:
return sum([a], b)
print black_jack(10, 5)
看看:
求和(iterable[,start])
将iterable的起始项和项从左到右求和,并返回总数。开始默认为0
。iterable的项目包括:
通常为数字,且起始值不允许为字符串
所以你必须传递一个iterable作为参数,而不是int
sum((a,b))
应该正常工作
这是一个用于在列表中存储多个值时使用的函数(例如,如果要对两个值求和,只需使用
a+b
求和是内置函数,请参阅文档:
In [1]: sum?
Docstring:
sum(sequence[, start]) -> value
Return the sum of a sequence of numbers (NOT strings) plus the value
of parameter 'start' (which defaults to 0). When the sequence is
empty, return start.
Type: builtin_function_or_method
所以你需要通过一个iterable!:解决方案1
sum([a, b]) #list
解决方案2
sum((a, b)) #tuple
sum接受一个iterable对象,比如一个列表,所以如果你想使用sum,那么就执行sum([a,b])。从根本上看,这不是
sum
的目的,sum
是元组或其他iterable列表的总和。不要超越你自己:)或者你可以只做a+b
我想你在找这个:int.\uu添加\uuuu(a,b)
但是,我不会用这个。我会用加号运算符。谢谢,我知道这很简单。