2013-03-03 7 views
3

을 정의되지 않은 : 나는 다음과 같은 오류를 얻고있다나가서 설명하자면 NameError : 이름이 '지금'이 소스 코드에서

def numVowels(string): 
    string = string.lower() 
    count = 0 
    for i in range(len(string)): 
     if string[i] == "a" or string[i] == "e" or string[i] == "i" or \ 
      string[i] == "o" or string[i] == "u": 
      count += 1 
    return count 

print ("Enter a statement: ") 
strng = input() 
print ("The number of vowels is: " + str(numVowels(strng)) + ".") 

나는 그것을 실행하면

Enter a statement: 
now 

Traceback (most recent call last): 
    File "C:\Users\stevengfowler\exercise.py", line 11, in <module> 
    strng = input() 
    File "<string>", line 1, in <module> 
NameError: name 'now' is not defined 

================================================== 
+2

를'(LEN) (강한) :'잘못 붙여 넣거나 뭔가/복사,하지만 난 아닌 경우 확인 '당신이 len (string)을 대신 사용해야한다는 것을 확신합니다. – alegen

답변

11

사용 raw_input() 대신 input()을.

파이썬 2에서는 후자가 eval() 입력을 시도합니다. 이는 예외의 원인입니다.

파이썬 3에는 raw_input()이 없습니다. input()은 잘 작동합니다 (eval()).

+0

고마워요! 교사 비디오에서 왜 작동 했습니까? 파이썬 3.3을 사용하고 있습니다. 아마도 다른 버전을 사용하고 있을까요? – stevengfowler

+1

@stevengfowler : 파이썬 3을 사용했다면'input()'이 작동합니다. 그렇지 않기 때문에 이것은 실수로 파이썬 2를 사용한다는 것을 의미합니다. – NPE

+0

python --version을 입력하면 파이썬 3.3.0을 얻을 수 있습니다. 그래서, 나는 3.3을 사용해야 만 할까? – stevengfowler

0

python2의 경우 raw_input(), python3의 경우 input()을 사용하십시오. python2에, input()는 명령 줄에서이 작업을 실행하는 경우 eval(raw_input())

말과 동일합니다, 또한 내가 strongstring

말을해야 생각이 for i in range(len(strong)): 대신 $python file.py$python3 file.py을 시도하지만,이 코드를 단순화 할 수있다 '+'로 대체 꽤

def num_vowels(string): 
    s = s.lower() 
    count = 0 
    for c in s: # for each character in the string (rather than indexing) 
     if c in ('a', 'e', 'i', 'o', 'u'): 
      # if the character is in the set of vowels (rather than a bunch 
      # of 'or's) 
      count += 1 
    return count 

strng = input("Enter a statement:") 
print("The number of vowels is:", num_vowels(strng), ".") 

은 ','당신이 명시 적으로 문자열로 함수의 반환을 캐스팅하지 않아도 의미

당신은 python2를 사용하는 것을 선호하려는 경우

가, 하단 부분 변경 : 범위에서 내가 대한

strng = raw_input("Enter a statement: ") 
print "The number of vowels is:", num_vowels(strng), "." 
관련 문제