我收到此错误“TypeError:无法将'int'对象转换为str隐式” 当我尝试运行此代码时。它在x + = 1行。 该程序的目标是接收诸如“RA1”或“R04”之类的输入,并将值加1,该值始终从0开始。然后我希望它在输入END时“打印”结果。事实证明这是一项挑战。 Python 3.5.1
system("echo '\"/[multilib]/,/Include/\" 's/#//' /etc/pacman.conf'");
答案 0 :(得分:0)
您的代码中存在多个问题。
TypeError的原因是您通过编写x = str(input())
无意中创建了xa字符串,当您想要向其添加1
时,Python尝试将1
转换为字符串以进行连接它到x。
无限循环与您收到的TypeError无关。这是因为str(input())
电话的错位。
这是带有固定while循环的工作代码:
x = 0
y = 0
z = 0
i = ""
print("Enter 3 digit code.")
while i != "END":
i = input()
if i == "RA1":
x += 1
elif i == "R04":
y += 1
elif i == "etc":
z += 1
else:
print('Please enter a 3 digit value or END')
print(str(x) + " " + str(y) + " " + str(z))
答案 1 :(得分:0)
您需要使用str()
包装整数,将整数转换为字符串。
然后,使用x = raw_input()
作为输入。当你第一次进入循环时,你需要输入一个输入,但是当你循环回来时。因此,您需要一种方法来阻止无限循环。因此,需要在循环开始时添加x = raw_input()
。
实际上你可以在循环开始时得到你的输入,不需要2。
此外,您的x,y和z也应该只是空字符串或null,而不是0
。
x = ""
y = ""
z = ""
while x != "END":
print("Enter 3 digit code.")
x = raw_input()
if x == "RA1":
x += str(1)
continue
if x == "R04":
y += str(1)
continue
elif x == "etc":
z += str(1)
continue
else:
print('Please enter a 3 digit value or END')