【问题标题】:Making a variable integer input only == an integer in Python仅将变量整数输入 == Python 中的整数
【发布时间】:2015-10-08 01:27:53
【问题描述】:

我试图使我的变量整数输入仅 == 为整数,如果不是,我想打印和错误消息。我把它放在一个 if 语句中。当我输入一个字符串而不是我的错误信息时,我总是得到一个错误。

age = int(input("Enter age:"))

if age != int:
print("Not a number")

【问题讨论】:

标签: python if-statement


【解决方案1】:

你必须使用raw_input 而不是输入

如果你想让这个重复直到你得到正确的值,你可以这样做

while True:
    try:
        age = int(raw_input("Enter age:"))
    except ValueError:
        print("Not a number")

    if age == desired_age: # note I changed the name of your variable to desired_age instead of int
        break

我不建议您使用像 int 这样的变量名...这通常是一种不好的做法

【讨论】:

  • 仍然收到回溯错误。不过感谢您的建议。
  • @PatrickCallahan 你看到我最新的编辑了吗?没有办法让你成为
  • 这看起来像是 OP 可能想要的。让我们看看... +1
  • 是的,它回答了我关于如果输入不是整数时如何处理输入的问题。我是编程新手,所以请原谅我大声笑
  • @PatrickCallahan 酷!是的,StackOverflow 是解决编程问题的地方。一些基本的事情要知道......当你将任何东西转换为类型时,你需要将它包装在尝试中,除非因为如果输入无效,它将引发异常。我放在那里的while循环将继续提示用户输入,直到输入正确的值..如果你想得到一个特定的年龄:)不要忘记将答案标记为已接受(不必是我的)所以这个问题可以关闭! :)
【解决方案2】:

从讨论中我发布了上面的链接:

age = input("Enter age:")  # raw_input("Enter age:") in python 2

try:
    age = int(age)
except ValueError:
    print('not a number!')

这个想法是尝试将age 转换为整数。

您对age != int 的尝试总是会失败; age 是一个字符串(如果您成功转换它,则为一个 int),int 是一个类。

【讨论】:

  • 不确定这是 OP 遇到的问题。他已经在前一行中将其转换为 int 。看起来int 是一个变量名
  • 是的.... 这很难说,因为人们使用类型作为变量名 O.o 奇怪的 imo。但是+1周围的答案都很好:)
  • 所以我必须使用 int() 转换变量?这确实有效,谢谢
  • 是的,您尝试将其转换为 int 以希望有效。自己检查一个有效的 int 字符串非常困难......
猜你喜欢
  • 1970-01-01
  • 2014-07-19
  • 1970-01-01
  • 2018-05-13
  • 1970-01-01
  • 1970-01-01
  • 2015-02-24
  • 2014-03-28
  • 2013-01-08
相关资源
最近更新 更多