我究竟如何创建这个Tallying程序?

时间:2016-01-02 00:41:21

标签: python

我收到此错误“TypeError:无法将'int'对象转换为str隐式” 当我尝试运行此代码时。它在x + = 1行。 该程序的目标是接收诸如“RA1”或“R04”之类的输入,并将值加1,该值始终从0开始。然后我希望它在输入END时“打印”结果。事实证明这是一项挑战。 Python 3.5.1

system("echo '\"/[multilib]/,/Include/\" 's/#//' /etc/pacman.conf'");

2 个答案:

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