2013-05-11 3 views
0

는 파이썬에서 간단한 게임을 주변에 땜질하고 그것 때문에이 구문 오류로 실행되지 않습니다 :파이썬 구문 오류?

intro = 'Greetings! What\'s your name?' 

Hunter = 'Oh, Hey Hunter! Hows life?' 
Spencer = 'Go away you stupid piece of crap!!!' 
David = 'Hey dad.' 

def Questions(): 
    print intro 
    answer = raw_input("Well?").upper() 
    if answer == 'Spencer' or answer == 'spencer' 
     print Spencer 
    elif answer == 'Hunter' or answer == 'hunter' 
     print Hunter 
    elif answer == 'David' or answer == 'david' 
     print David 
     else: 
      print 'Sorry! I don\'t know you!' 
      Questions() 

Questions() 

그것은이 샘플에 표시되지 않습니다하지만 그것이 말하는 때문에 파이썬이 실행되지 않습니다이 10 행의 구문 오류입니다 ('spencer'바로 다음에). 누군가 내가 뭘 잘못하고 있는지 설명해 주실 수 있습니까?

답변

1

if 문 뒤에 :을 추가해야합니다.

if answer == 'Spencer' or answer == 'spencer': 
1

각 if 및 elif 문 끝에는 :이 필요합니다.

1

if에 콜론이 없습니다.

if answer == 'Spencer' or answer == 'spencer': 
+0

를 컴파일러가 의미 라인 (10)에 오류가, 거기를 알 때 "어딘가에 라인 (10) 내가 혼란있어 주위가." 실제 오류는 파일의 앞부분에있을 가능성이 큽니다. –

1

은 내가 if 문 라인의 끝에서 콜론을 넣어 경우 조건

3

의 끝에서 실종 콜론, 그리고 elif가있다 생각합니다. 어느 곳에서나 다음 줄을 들여 쓰면 콜론이 필요합니다.

또한 else 문은 올바르게 들여 쓰여지지 않습니다. 위의 elif과 일치해야합니다.

그리고 .lower()을 사용하여 문자열을 소문자로 변환하면 하나의 비교 만 수행하면됩니다. 아 ... 이미 당신이 .upper()을 사용하고 있다는 것을 알지 못했습니다. 똑같은 방법으로, 당신은 단지 하나의 비교가 필요합니다. 이러한 변화와

, 당신의 Question 기능은 다음과 같을 것이다 :

def Questions(): 
    print intro 
    answer = raw_input("Well?").lower() 
    if answer == 'spencer': 
     print Spencer 
    elif answer == 'hunter': 
     print Hunter 
    elif answer == 'david': 
     print David 
    else: 
     print 'Sorry! I don\'t know you!' 
     Questions()