【发布时间】:2021-05-22 19:07:53
【问题描述】:
我定义了一个使用列表长度作为输入的函数。它看起来像这样:
lhand = len(hand)
def roll(lhand):
global hand
ndice = 5 - sum(lhand)
for i in range(ndice):
newhand = random.randint(1, 6)
hand = hand.append(newhand)
return hand
现在,由于某种原因,我收到一条错误消息,指出不允许在列表和字符串之间使用运算符 -。这让我很困惑,因为我知道 lhand 应该是一个 int。我试图通过将 int() 放在很多地方来解决它,但我仍然遇到同样的错误。即使我将函数中的 lhand 更改为数字,我仍然遇到同样的错误。我如何解决这个问题(我认为)是在函数中使用 sum(lhand) 。这似乎有效,因为它不再给我一个错误。我仍然想知道为什么会出现这个错误,或者我的代码中可能有其他问题导致它失败。
谢谢
【问题讨论】:
-
请修正格式,这样是看不懂代码的。为什么
hand是全局并返回? -
这段代码似乎不可能导致该错误。在修复缩进的同时,请显示完整的错误回溯。
-
请提供预期见MRE - Minimal, Reproducible Example。显示中间结果与预期结果的偏差。我们应该能够将您的代码块粘贴到文件中,运行它并重现您的问题。这也让我们可以在您的上下文中测试任何建议。
标签: python list function integer