我正在做作业。这并不重要-这个问题应该非常简单。 我需要提出一个随机产生的问题。为此,我的代码是:
num1 = (random.randint(0,12))
num2 = (random.randint(0,12))
question = (num1 + "" + "+" + "" + num2)
print(question)
我得到了错误:
question = (num1 + "" + "+" + "" + num2)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
我想我理解问题出在哪里,但我不知道如何解决。我将不胜感激。我正在使用python-idle 3.8
答案 0 :(得分:3)
您正在尝试将int
与str
添加在一起,这是不允许的,您可以通过以下方式解决此问题:
>>> num1 = (random.randint(0,12))
>>> num2 = (random.randint(0,12))
>>> question = (str(num1) + "" + "+" + "" + str(num2))
# or for python 3.6+ use f-strings [1]
>>> question = f"{num1} + {num2}"
此外,如果要添加""
,则没有用,因为它们是空字符串。而是使用" "
,或将其添加到+
运算符本身,例如:" + "
。
参考:
答案 1 :(得分:2)
您需要将num1和num2中的整数类型转换为类型字符串。
num1 = (random.randint(0,12))
num2 = (random.randint(0,12))
question = (str(num1) + " " + "+" + " " + str(num2))
print(question)
您无法添加类型int和类型字符串,这是导致错误的原因。
答案 2 :(得分:2)
您需要使用str()函数转换这两个随机生成的数字。
因此,您更正后的代码将如下所示:
num1 = (random.randint(0,12))
num2 = (random.randint(0,12))
question = (str(num1) + " " + "+" + " " + str(num2))
print(question)
此外,您在连接时忘记了空格,这将导致2 + 3,依此类推。
下次,请尝试在Google上搜索错误并尝试了解该错误。它告诉您,您不能对两种不同类型的操作符“ +”进行操作:“ int”和“ str”(等效于整数和字符串)。这些错误不仅是中文的,还可以告诉您您的错误。让调试器成为您的朋友! :)
答案 3 :(得分:2)
您不能用str合并一个int。您可以通过多种方法来实现此目的,可以将整数显式转换为字符串,也可以将它们存储在列表中并在打印时解压缩列表,或者我个人比较喜欢使用python f字符串格式。
import random
num1 = (random.randint(0,12))
num2 = (random.randint(0,12))
question = (str(num1) + " " + "+" + " " + str(num2))
print(question)
question = (num1, "+", num2)
print(*question)
question = f"{num1} + {num2}"
print(question)
输出
7 + 2
7 + 2
7 + 2