TypeError:不能将序列乘以类型' str'的非int。 (尝试了一切)

时间:2017-06-12 09:02:45

标签: python-3.x

def square():
  while True:
    try:
        a = input("Enter a number: ")
        a = int(a)
    except ValueError:
        print("Enter an integer and not a string...try again")
    c = a * a
    print (c)

 square()

抛出错误" TypeError:不能将序列乘以类型' str'""

的非int

1 个答案:

答案 0 :(得分:1)

如果输入的值不能转换为整数,程序仍会继续并尝试将字符串与字符串相乘,从而导致错误。

在获得可转换为整数的值之前,您可以继续询问输入。如果你得到了你想要的值,你就应该从while循环中脱离出来并完成其余的工作。

def square():
    while True:
        try:
            a = int(input("Enter a number: "))
            break
        except ValueError:
            print("Enter an integer and not a string...try again")
    c = a * a
    print (c)

square()