0

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

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

2 回答 2

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
>>>
于 2013-10-23T13:40:16.287 回答
3

在 Python 2.x 中,input()尝试将输入作为 Python 表达式运行。

您想使用g=raw_input("enter a ")以便g存储一个字符串。

Python 3.xinput()用于上述两种情况。

于 2013-10-23T13:45:25.307 回答