如何解决这个烦人的错误信息? (Python 3.6.1)

时间:2017-04-09 22:15:14

标签: python

我目前正在学习Python,并且不了解很多 - 所以我需要有经验的人来帮助我。

代码是这样的:

usernum = input('Enter a number, Ill determine if its pos, neg, OR Zero.')
if usernum < 0:
    print("Your number is negative.")
if usernum > 0:
    print("Your number is positive.")
if usernum == 0:
    print("Your number is zero.")

错误是这样的:

Traceback (most recent call last):
  File "C:\Users\Admin\Documents\Test.py", line 2, in <module>
    if usernum < 0:
TypeError: '<' not supported between instances of 'str' and 'int'

2 个答案:

答案 0 :(得分:1)

尝试:

usernum = int(input('Enter a number, Ill determine if its pos, neg, OR Zero.'))
if usernum < 0:
    print("Your number is negative.")
if usernum > 0:
    print("Your number is positive.")
if usernum == 0:
    print("Your number is zero.")

input(...)创建字符串,因此您需要通过int(...)来使该字符串成为整数。另外我建议你把if if if if if ifif,elif和其他:

usernum = int(input('Enter a number, Ill determine if its pos, neg, OR Zero.'))
if usernum < 0:
    print("Your number is negative.")
elif usernum > 0:
    print("Your number is positive.")
else:
    print("Your number is zero.")

这不是什么大问题,但这样你只需要执行实际需要的代码。因此,如果usernum小于0,则不评估下一个子句。最后,您可以考虑添加用户输入错误更正:

usernum = None
while usernum is None:
    try:
        usernum = int(input('Enter a number, Ill determine if its pos, neg, OR Zero.'))
    except ValueError as ex:
        print("You didn't enter an integer. Please try again.")
if usernum < 0:
    print("Your number is negative.")
if usernum > 0:
    print("Your number is positive.")
if usernum == 0:
    print("Your number is zero.")

答案 1 :(得分:0)

将第一行更改为

usernum = int(input('Enter a number, Ill determine if its pos, neg, OR Zero.'))

正如您所知,usernum是一个字符串值,因为input()总是返回Python 3.x中的字符串,并且您试图将它与整数进行比较。所以首先将它转换为整数。我通过使用input类型转换围绕int()调用来完成此操作。

请注意,如果用户输入的不是整数,则会引发错误。这可以通过异常处理来处理,现在可能已经超出了你的范围。