【问题标题】:How can I keep my program from terminating when a non-integer value is entered? [duplicate]当输入非整数值时,如何防止我的程序终止? [复制]
【发布时间】:2019-04-15 02:08:22
【问题描述】:

如何使程序在用户输入非整数值后循环?

我已经尝试过使用“while int(u) != int”

u = raw_input("enter a positive number")
while u != int:
    u = raw_input("Please enter a number")
if u == int:
    print "that's a number"

【问题讨论】:

  • 使用tryexcept
  • 您使用 Python 2 有什么原因吗?另外,我想你想要isinstance(u, int)
  • @gmds raw_input 给出字符串,所以isinstance(u, int) 将给出False。您必须尝试转换为整数 - 使用 int(u) - 检查它是否是具有整数值的字符串。而int(u) 可能会出现错误ValueError,您可以使用try/except 捕获它
  • @furas 是的,我的错,我的意思是.isdigit()

标签: python python-2.7 loops


【解决方案1】:

尝试将其转换为类型,如果不是则捕获异常

while True:
    u = raw_input("Enter a positive number: ")
    try:
        num = int(u)
    except ValueError:
        print "{} is not a number".format(u)
        continue
    break
print "{} is a number".format(num)

这只是检查以确保它是一个整数,而不是一个正数,但这应该很容易添加。

【讨论】:

    【解决方案2】:

    你忘了.isdigit()

    while True:
        u = raw_input("Enter a positive number: ")
        if not u.isdigit():
            print u, "is not a number"
            continue
        u = int(u)
    print u, "is a number"
    

    示例输出:

    Enter a positive number: sf
    sf is not a number
    Enter a positive number: 1
    1 is a number
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-09
      • 2018-05-17
      • 1970-01-01
      相关资源
      最近更新 更多