2012-08-10 3 views
0

저는 파이썬으로 돼지 라틴어 번역기를 만들려고합니다. 완성 된 제품이 아직 없으며 Codecademy에서 일하고 있습니다.이 코드의 순서가 잘못된 점은 무엇입니까?

pyg = 'ay' 

original = raw_input('Enter a word:') 
if len(original) > 0 and original.isalpha(): 
    print original 
    if first == "a" or "e" or "i" or "o" or "u": 
     print "vowel" 
    else: 
     print "consonant" 
else: 
    print 'empty' 
word = original.lower() 
first = word [0] 

나는 마지막 두 줄이 장소를 벗어 확신하지만, 그들은 어디로 가야 나도 몰라 내가 왜 모르는 : 여기에 지금까지 내 코드입니다. 아무도 나에게 그걸 설명 할 수 있다면, 좋을 것입니다. 저는이 프로그램의 무대에 서서 첫 글자가 모음이나 자음인지 확인하고 싶습니다. 아직 번역 단계에 있지 않습니다.

+0

'처음'이란 무엇입니까? 정의 된 위치는 어디입니까? – Makoto

+0

마지막 줄에 정의되어 있습니다. 나는 이것이 틀렸다는 것을 알고 있지만 어디로 가야할지 모른다. – masonc15

답변

5

값을 확인한 후에 wordfirst을 정의 중이므로 original을 정의한 후 길이를 확인한 후 (빈 값의 색인 오류를 방지하기 위해) 길이를 확인한 후 이동하십시오.

또한 if len(original) > 0을 사용하는 경우 실제로는 if original으로 단순화하며, null이 아닌 값인 경우 True을 반환합니다.

다른 한 가지 - 모음에 대한 확인 결과 예상 값이 반환되지 않습니다. 대신,이 같은 시도 : 나는 그것을 처리하는 더 나은 방법이 확신

if first in 'aeiou': 

을, 그러나 이것은 당신의 경우에 작동합니다.

편집 : 은 (파이썬 훨씬 더) @ Levon의 방법에 if 문을 변경

+0

in은 무엇을 의미합니까? 필자는 전에 Python에서 그런 것을 본 적이 없다. – masonc15

+0

이 문맥에서는 "첫 번째가 이들 중 하나인지 확인하십시오"라고 말하는 방식이며, "또는"문으로 수행하려고했던 것입니다[email protected] Levon은 내가했던 것보다 더 단순하고 (더 나은) 형식을 사용했다. 그러나 둘 다 똑같은 것을한다. @ Levon의 경우 문자열, 광산에서 하나의 튜플을 반복하고 각각의 값과 'first'를 비교한다. 그 중 하나가 일치하면'if' 블록에서 코드를 실행합니다. – RocketDonkey

3

(1) 귀하의 if -statement이 같은 단축 (그리고 올바른) 버전으로 다시 작성할 수 있습니다 :

if first in 'aeiou': 

난 당신과 같은 문제에 작업을 다른 사람을 위해 최근 here 더 설명과 함께이 대답했다.

(2) 코드의 다음 두 줄을 배치 할 위치에 대한 질문 재 :

word = original.lower() 
first = word[0] 

print original 당신의 if -statement 내부 후에 넣습니다. 입력 단어를 소문자로 변환 한 다음 단어의 첫 번째 문자를 가져와 변수 first에 할당 한 다음 나중에 모음/자음을 확인하는 데 사용합니다.

관련 문제