我试图找到一个单词,我的程序将查看是否存在大写字母并检查它。
问题是,我甚至无法通过我的程序,因为我得到一个错误,说“name cAt”没有定义(cAt)是我输入的,不确定是否此代码将在给定单词中找到大写。
有没有办法用正则表达式做这个,比如,
if : re.search("A,B,C etc")
?
这就是我所拥有的,
g = input("enter a ")
h = [ABCDEFGHIJKLMNOPQRXTUVWXYZ]
for letters in g:
if letters in h :
print "upper"
答案 0 :(得分:6)
在Python 2.x.中,input
将其输入评估为真正的Python代码。因此,当您输入cAt
时,Python会尝试使用相同的名称查找变量。而且,既然它不能,它会爆炸。
您需要使用raw_input
,它将输入作为字符串对象返回。
此外,您需要使h
成为这样的字符串:
h = "ABCDEFGHIJKLMNOPQRXTUVWXYZ"
但是,您可能希望针对此任务调查any
和str.isupper
:
>>> mystr = raw_input("enter a word: ")
enter a word: cAt
>>> mystr
'cAt'
>>> any(x.isupper() for x in mystr)
True
>>> mystr = raw_input("enter a word: ")
enter a word: cat
>>> mystr
'cat'
>>> any(x.isupper() for x in mystr)
False
>>>
答案 1 :(得分:3)
在Python 2.x中,input()
尝试将输入作为Python表达式运行。
您希望使用g=raw_input("enter a ")
以便g
存储字符串。
Python 3.x使用input()
进行上述两种操作。