将变量(字母和数字)组合成python中的问题

时间:2020-03-26 11:20:06

标签: python variables

我正在做作业。这并不重要-这个问题应该非常简单。 我需要提出一个随机产生的问题。为此,我的代码是:

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

4 个答案:

答案 0 :(得分:3)

您正在尝试将intstr添加在一起,这是不允许的,您可以通过以下方式解决此问题:

>>> 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. f-strings

答案 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