基本上我希望脚本检查raw_input的最后一位数字,看它是不是整数。如果整数打印为true,则打印错误
这是代码:
word = raw_input("input your alphanumeric word:")
end = re.search(r'\d+$', word)
if end is not None:
print "numeric digit should be last"
else
print "true"
答案 0 :(得分:3)
正则表达式对于像这样简单的问题是一种矫枉过正。只需索引最后一个元素word[-1]
并通过内置String方法str.isdigit
word[-1].isdigit()
注意,您可能必须考虑这个词可能是一个空字符串并且必须适当处理它的事实。
bool(word) and word[-1].isdigit()
或@iCodez建议使用切片而不是索引,因为切片不会为空字符串抛出索引错误
word[-1:].isdigit()
示例强>
>>> word = raw_input("input your alphanumeric word:")
input your alphanumeric word:asdf
>>> bool(word) and word[-1].isdigit()
False
>>> word = raw_input("input your alphanumeric word:")
input your alphanumeric word:asd1
>>> bool(word) and word[-1].isdigit()
True
>>> word = raw_input("input your alphanumeric word:")
input your alphanumeric word:
>>> bool(word) and word[-1].isdigit()
False
答案 1 :(得分:2)
您可以使用切片[-1]
查看字符串的最后一个字符,并使用字符串方法isdigit
查看它是否为数字。
s1 = 'hello world'
s2 = 'hello again3'
>>> s1[-1].isdigit()
False
>>> s2[-1].isdigit()
True
答案 2 :(得分:1)
print 'true' if re.search(r'\d$', word) else 'false'
你也可以使用:
print 'true' if word[-1].isdigit() else 'false'
...但如果单词为零长度,则会抛出IndexError
。