如何检查raw_input中的最后一个字符是否为整数

时间:2014-10-22 19:21:43

标签: python

基本上我希望脚本检查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"

3 个答案:

答案 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