检查用户是否输入了数字。不要信

时间:2011-06-24 14:18:54

标签: python

我想知道检查用户输入字母与数字的最简单方法。如果用户输入一个字母,它会给他们一个错误信息并回答他们的问题。现在我有了它,所以当用户输入'q'时它将退出脚本。

if station == "q":
        break
else:
        #cursor.execute(u'''INSERT INTO `scan` VALUES(prefix, code_id, answer, %s, timestamp, comport)''',station)
        print 'Thank you for checking into station: ', station

我需要它回到询问电台的问题。

3 个答案:

答案 0 :(得分:5)

只使用python内置方法

str.isdigit()

http://docs.python.org/library/stdtypes.html

e.g。

if station.isdigit():
   print 'Thank you for checking into station: ', station
else:
   # show your error information here
   pass

答案 1 :(得分:0)

试试这个(使用叶嘉宾的答案)

def answer():
  station = raw_input("Enter station number: ")
  if not(str.isdigit(station)):
    answer()

没有测试过!

答案 2 :(得分:0)

根据要求,您要查看输入字符串是否包含除数字1..9以外的任何内容:

>>> import re
>>> # create a pattern that will match any non-digit or a zero
>>> pat = re.compile(r"[\D0]")
>>> pat.search("12345")
>>> pat.search("123450")
<_sre.SRE_Match object at 0x631fa8>
>>> pat.search("12345A")
<_sre.SRE_Match object at 0x6313d8>
>>> def CheckError(s):
...    if pat.search(s):
...       print "ERROR -- contains at least one bad character."
... 
>>> CheckError("12345")
>>> CheckError("12a")
ERROR -- contains at least one bad character.
>>> CheckError("120")
ERROR -- contains at least one bad character.
>>>