我想确保用户以正确的格式输入输入,我知道如何确保其数字输入,但我不明白如何确保它不是数字输入。
x = raw_input('What is your name? ')
y = raw_input('What is your age? ')
try:
something_to_make_sure_its_not_numeric(x)
int(y)
print "Hello {0}, You look very handsome for someone who is {1}.".format(x, y)
except:
print('please enter input in correct format')
问题是在python中有一些函数如int(),它确保它只有字母。
答案 0 :(得分:1)
isdigit()
函数还有string
来检查字符串是否为数字。要检查它是否为非数字,只需使用条件为
not
即可
>>> 'xyx'.isdigit()
False
>>> '123'.isdigit()
True
# Now check output with "not"
>>> not 'xyx'.isdigit()
True
>>> not '123'.isdigit()
False
最好使用isdigit()
def is_non_numeric(num_str):
return not num_str.isdigit()
# Example
>>> is_non_numeric('123')
False
>>> is_non_numeric('xyz')
True
答案 1 :(得分:1)
检查它是否为数字,并取其值
if x.isdigit():
print_error
else:
或使用
x.isnumeric()
答案 2 :(得分:0)
您可以使用re module,这样可以检查字符串是否包含例如数字:
import re
string = "626dsqd"
test = re.search("\d", string)
if test:
print('please enter input in correct format')
答案 3 :(得分:0)
以下表达式仅返回True
所有字母均为非数字:
all(not s.isdigit() for s in x)
答案 4 :(得分:0)
您可以使用正则表达式来执行此操作:
import re
tester = re.match(r'^[a-zA-Z]*$', x)
if tester:
print x
else:
print 'Incorrect input'
如果匹配方法的返回值为None
,那么您的输入不符合您的正则表达式规则。在上面的示例中,它仅验证是否是单个字符串,但您可以更改您的重新规则以匹配您想要的任何内容。
有关re。
的详细信息,请参阅here中的文档