我有代码:
user_input = input('>>>: ')
if not re.search('[0-9]', user_input):
print('That wasn\'t an integer.')
else:
print('That was an integer!')
print(user_input)
它基本上试图确定用户的输入(数学上)是否是整数。如果输入为“adgx”,则此方法有效;代码识别出这些不在0-9范围内,并且打印出'那不是整数'。我需要程序打印'那不是一个整数'。如果输入是例如'a3h1d',但它没有。我假设因为输入技术上包含在范围内的数字,它满足了声明。我需要它,如果输入是'a3h1d',程序打印'那不是一个整数'。
答案 0 :(得分:1)
如果您不想使用正则表达式,我建议您只使用str.isdigit
select * from T where DATEADDED > trunc(sysdate,'HH') -1/24
and DATEADDED <= trunc(sysdate,'HH')
还有这种方法
user_input = input('>>>: ')
if not user_input.isdigit():
print('That wasn\'t an integer.')
else:
print('That was an integer!')
答案 1 :(得分:0)
您还可以使用re.match()
加上字符串开头和字符串结束标记:
user_input = input('>>>: ')
if not re.match('^[0-9]+$', user_input):
print('That wasn\'t an integer.')
else:
print('That was an integer!')
请记住,在正则表达式中:
^
匹配行的开头; $
匹配一行的结尾; +
表示上一个模式应出现一次或多次。我建议您查看Python official 're' documentation以获得更完整且解释清楚的列表。