2012-09-28 6 views
0

나는 conditional의를 사용하고파이썬 raw_input을 사용하는 동안 (신참)

raw_input.은 기본적으로 내가 파이썬에서 사전을 검색하고 사용자의 입력을 평가하기 위해 노력하고 있습니다에 대한 질문이 있습니다. 사용자 입력이 사전에 있는지 확인하려고합니다.

문제는 내가 사용자 입력을 평가할 때이 사실에 해당하는 경우, 그것은 거짓 선언이다

shortname=raw_input('Please enter a short name that corresponds to the dictionary: ') 

if shortname in paperwork: 
    print paperwork['shortname'] 

else: 
    print 'Name Not Found' 

(나는 사전을 포함하지 않습니다). 누구든지 내가 뭘 잘못하고 있는지 말해서 나를 도울 수 있을까?

거짓 서류 에서

'축약'

필자가 조금만 주위를 둘러 보았다 (나는 그것의 유효 있는지 수동으로 확인했을 때 무엇을 얻을) 나는이 질문은 너무 기본이 아니에 대한 생각 이리. 감사! 그렇다

if shortname in paperwork: 
    print paperwork['shortname'] 

에 실수에서

+2

' 'shortname ''과'shortname'은 동일하지 않습니다. – nneonneo

+0

왜 그런가요? 원하는 출력을 얻으려면 어떻게 수정해야합니까? –

+1

''shortname ''은 리터럴 문자열입니다. 'shortname'은 변수입니다. 당신은 어디에서나'shortname' (따옴표 제외)을 사용하기를 원할 것입니다. – nneonneo

답변

0

어디 대신 리터럴 문자열을 사용하는 shortname 변수를 사용 'shortname'

내가 올려이 예에서 문제를 얻을하지 않습니다

lettersStored = ['a','b','c','d'] 
name=raw_input('Please enter a letter:\n') 

if name in lettersStored: 
    print "Found it at index %d " % (lettersStored.index(name)) 
else: 
    print 'Not found' 

입력으로 테스트 :

a (Found it at index 0) 
b (Found it at index 1) 
c (Found it at index 2) 
z (Not Found) 
x (Not Found) 
+2

gah! 조건부 인 경우 대괄호! EOL에서 세미콜론! * dict'을 * list' *로 덮어 씁니다! – nneonneo

+0

@nneonneo lol 직렬 파이썬 프로그래머가 아닙니다! 그러나 나는 또한 그것에 대해 배울 질문에 대답함으로써 그것을 볼 수 있습니다. – gtgaxiola

+0

예. 그것은 좋은 학습 경험입니다. 한 가지 더 : 'myDict'는 사전이 아닙니다. B ','C ','C ','D ':'D '}'또는 무엇인가)로 정의하거나 그것은 '무엇인가'를 뜻합니다. – nneonneo