2014-02-05 4 views
0

나는 그것이 어리석은 것을 알고 있지만 왜 작동하지 않는지 알 수 없습니다. 도와주세요.NameError : name 'April'이 정의되지 않았습니다.

def main(): 
    yourAge=getAge() #get subject's age 
    yourWeight=getWeight() #get subject's weight 
    yourBirthMonth=getMonth() #get subject's birth month 
    correctAnswers(getAge, getWeight, getMonth) 

def getAge(): 
    yourAge=input('Enter your age. ') 
    return yourAge 

def getWeight(): 
    yourWeight=input('Enter your weight.') 
    return yourWeight 

def getMonth(): 
    yourBirthMonth=input('Enter your birth month. ') 
    return yourBirthMonth 

def correctAnswers(getAge, getWeight, getMonth): 
    if getAge <= 25: 
     print'Congratulations, age is less than 25.' 

    if getWeight >= 128: 
     print'Congratulations, weight is more than 128.' 

    if getMonth == 'April': 
     print'Congratulations, month is April.' 

main() 

역 추적 : python2 input에서

Traceback (most recent call last): 
    File "C:/Users/Beth/Documents/jeff/prog/lab 03/lab 3-5.py", line 35, in <module> 
    main() 
    File "C:/Users/Beth/Documents/jeff/prog/lab 03/lab 3-5.py", line 10, in main 
    yourBirthMonth=getMonth()#get subject's birth month 
    File "C:/Users/Beth/Documents/jeff/prog/lab 03/lab 3-5.py", line 22, in getMonth 
    yourBirthMonth=input('Enter your birth month. ') 
    File "<string>", line 1, in <module> 
NameError: name 'April' is not defined 
+0

로 입력을 실행하려고

yourBirthMonth=raw_input('Enter your birth month. ') 

바꾸기이 파이썬인가 2.7 또는 3.x? – IanAuld

답변

1

입력을 평가한다. 평가되지 않은 문자열을 얻으려면 raw_input을 사용하십시오.

input은 사용자가 입력 한 april을 조회하려고 시도하지만 실제로는 존재하지 않습니다.

효과를 시각화하려면 연령이 약속했을 때 1/0을 입력하십시오.


기본적으로 당신의 기능은 다음과 같이 수 :

def getAge(): 
    return int(raw_input('Enter your age. ')) 

def getWeight(): 
    return int(raw_input('Enter your weight. ')) 

def getMonth(): 
    return raw_input('Enter your birth month. ') 
5

사용 raw_input()을하지 input(); 후자는 텍스트 입력을 파이썬 코드로 해석하려고합니다.

입력 할 경우 April은이 경우 변수 이름으로 해석됩니다. 대신 "April"을 입력 할 수 있지만 여기서는 input()을 사용하지 않는 것이 좋습니다.

0

yourBirthMonth=input('Enter your birth month. ') 

파이썬 2에서 raw_input을()는 문자열 입력을 (반환) 파이썬 표현

관련 문제