当前位置: 首页 > 面试题库 >

如何检查python 2.7中的原始输入是否为整数?

孙自怡
2023-03-14
问题内容

有没有一种方法可以检查araw_input是否为整数?

我在网上研究后发现了这种方法:

print isinstance(raw_input("number: ")), int)

但是当我运行它并输入4例如时,我得到了FALSE。我是python的新手,将不胜感激。


问题答案:

isinstance(raw_input("number: ")), int)总是产生,False因为raw_input返回字符串对象。

用途try: int(...) ... except ValueError

number = raw_input("number: ")
try:
    int(number)
except ValueError:
    print False
else:
    print True

或使用str.isdigit

print raw_input("number: ").isdigit()

注意 第二个之所以产生False-4是因为它包含非数字字符。如果只需要数字,请使用第二个数字。

UPDATE
作为JF塞巴斯蒂安指出,str.isdigit语言环境相关(Windows)中。它可能返回,True甚至int()会引发输入的ValueError。

>>> import locale
>>> locale.getpreferredencoding()
'cp1252'
>>> '\xb2'.isdigit()  # SUPERSCRIPT TWO
False
>>> locale.setlocale(locale.LC_ALL, 'Danish')
'Danish_Denmark.1252'
>>> '\xb2'.isdigit()
True
>>> int('\xb2')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '\xb2'


 类似资料:
  • 我需要检查用户输入的内容是否正确。如果不是,我需要以msgbox的形式打印错误。 上面的代码似乎不起作用。 有什么想法吗?

  • 我正在尝试创建一个简单的程序来验证用户的输入是否为正整数。但是,在使用Scanner.hasNextInt()方法时遇到了一个问题。如果输入包含一个整数,比如“5个6”,我的程序将把6读入为一个整数。但是,我希望这样的语句无效,并提示用户只需要输入一个整数值。因此程序将输出“请输入整数值:”。 这就是我的程序的样子: 编辑:我理解next()与nextLine()之间的区别。然而,我的问题是实际仅

  • 问题内容: 我正在制作一个简单的程序,可让您添加比赛结果以及完成比赛所用的秒数。所以要输入时间,我这样做: 所以我的问题是,如果用户输入的不是正数,该如何向用户显示错误消息?就像MessageDialog一样,在输入数字之前会提示您错误。 问题答案: 如果无法解析,则会抛出一个。如果您只想在输入无效的情况下重试,则将其包装成这样的循环:

  • 问题内容: 我看到在MySQL中,有和函数可以从值创建整数,但是有什么方法可以检查值是否是整数?我正在寻找PHP中类似的东西。 问题答案: 我假设您要检查一个字符串值。一种不错的方法是REGEXP运算符,将字符串与正则表达式匹配。简单地做 这相当快。如果您的字段是数字,则只需测试 代替。

  • 我的方法必须请求用户输入,检查它是否是整数,如果是,则返回该整数。我尝试了使用try-catch和inputmaschException。 当它循环时,我遇到了一个问题,如果我输入一个非整数,它会不断地抛出“无效输入”“输入整数:”而不是实际要求输入一个。

  • 问题内容: 如何检查给定的输入控件是否为空?我知道该字段上有一个属性,该属性告诉您给定的字段最初是否为空,但是如果有人填充该字段并再次提取整个内容该怎么办? 我认为上述功能是必要的,因为它对告知用户该字段必不可少。 任何想法将不胜感激! 问题答案: 很简单: 您也可以使用代替,如果这对您来说更自然。 更好的替代方法可能是真正利用Angular的形式能力: 在此处更新了Plnkr。