我想知道检查用户输入字母与数字的最简单方法。如果用户输入一个字母,它会给他们一个错误信息并回答他们的问题。现在我有了它,所以当用户输入'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
我需要它回到询问电台的问题。
答案 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.
>>>