Word未分配给变量

时间:2013-10-23 13:38:39

标签: python string input

我试图找到一个单词,我的程序将查看是否存在大写字母并检查它。

问题是,我甚至无法通过我的程序,因为我得到一个错误,说“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"

2 个答案:

答案 0 :(得分:6)

在Python 2.x.中,input将其输入评估为真正的Python代码。因此,当您输入cAt时,Python会尝试使用相同的名称查找变量。而且,既然它不能,它会爆炸。

您需要使用raw_input,它将输入作为字符串对象返回。

此外,您需要使h成为这样的字符串:

h = "ABCDEFGHIJKLMNOPQRXTUVWXYZ"

但是,您可能希望针对此任务调查anystr.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()进行上述两种操作。