2013-10-23 2 views
0

에 할당되지 않았습니다. 주어진 단어가 있는지 찾으려고하면 내 프로그램에서 대문자가 있는지 확인하고 검사합니다.

문제는 "이름이 잘못되었습니다."라는 오류가 발생하여 오류가 발생하므로 프로그램을 검토하지 않아도됩니다. (cAt)이 코드가 주어진 경우 대문자 을 찾을 수 있는지 확실하지 않습니다. 단어.

정규 표현식으로이 작업을 수행하는 방법은 무엇입니까?Word가 변수

if : re.search("A,B,C etc")?

여기

내가 가진 무엇을, 파이썬 2.x 또는 3.0에서

g = input("enter a ") 

h = [ABCDEFGHIJKLMNOPQRXTUVWXYZ] 


for letters in g: 
    if letters in h : 
     print "upper" 
+2

'h = "ABCDEFGHIJKLMNOPQRXTUVWXYZ"' –

답변

6

, input 실제 파이썬 코드로 입력을 평가한다. 따라서 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 
>>> 
+3

또는'from ascii_upper as h '문자열 : P – kojiro

+0

팁 주셔서 감사합니다. 나는 당신이 말한 것으로 바꿨으며, 이제는 cAT를 입력하면 "upper"가 3 번 인쇄됩니다. 내가 어떻게 그만합니까? –

+0

@ ZachSantiago - 내가 생각할 수있는 유일한 문제는 print 문이 공백으로되어있어 if 블록 밖에 있다고 생각하는 것입니다. 그렇다면 빈 코드 블록을 갖는'SyntaxError'를 얻을 수 있습니다. 그래서, 나는 그것이 무엇을 일으킬 수 있는지 모른다. 게시 할 다른 코드가 있습니까? – iCodez

3

2.x에서 input()은 입력을 Python 표현식으로 실행하려고 시도합니다.

g에 문자열이 저장되도록 g=raw_input("enter a ")을 사용하려고합니다.

파이썬 3.x는 위의 두 가지 모두에 input()을 사용합니다.

관련 문제