不断获取错误代码TypeError:不支持的操作数类型:“int”和“str”

2024-10-04 11:34:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图做一个程序,总是产生两个三位数的总和,从两个其他三位数的差异得出,如1089,前提是最初选择的数字的第一和第三位数相差两个或更多。我将澄清,我是非常新的这一点,只知道最基本的。这就是我目前所拥有的。你知道吗

num1 = input("Choose a three digit number whose first and third digits vary by at least two numbers.")

num2 = num1[2] + num1[1] + num1[0]

if int(num1) < int(num2):

    difference = int(num2) - (num1)
else:

    difference = int(num1) - (num2)

newNum1 = str(difference)

newNum2 = newNum1[2] + newNum1[1] + newNum1[0]

ten89 = int(newNum1) + int(newNum2)

print ("If you chose your three-digit number correctly your should have gotten 1089 and you got," ,ten89)

我一直收到错误码-

TypeError:不支持-:“int”和“str”的操作数类型-行-差分=int(num2)-(num1)。你知道吗

我试着把那行的int改成str,还有其他的。如果有人能告诉我哪里出了问题,我会非常感激的。谢谢!你知道吗


Tags: andyounumberyourintthreedigitstr
1条回答
网友
1楼 · 发布于 2024-10-04 11:34:45

出现此错误是因为num1是一个字符串。你知道吗

input返回的所有内容都是字符串。您需要转换成int才能使用数学运算。你知道吗

 >>> num1 = input("Choose a three digit number whose first and third digits vary by at least two numbers.")
 >>> ..... 123
 >>> print(type(num1))
 >>> <class 'str'>

相关问题 更多 >