2015-01-24 2 views
-5

가 난 단지 기본적인 루프를 사용하여 모음의 수와 내가 갖는 유일한 출력을 계산 노력하고있어 0이 프로그램에 어떤 문제가 있습니까?

s= str(raw_input("Enter a string of characters:")) 
m =0 
def numvow(s,m): 
    for m in s: 
     if m == 'a'or m =='e' or m =='i' or m =='o' or m =='u': 
      m+=1 
print("The number of vowels is " +str(m)) 

답변

1

당신은 return m을 누락하고있는 것입니다 또한 결코 전화numvow; 또한, 별도의 루프 변수를 사용하는 대신 ms의 단일 문자로 재 할당해야합니다. 그래서, 그것이 작동하지 않는 좋은 이유 :-). 수정하기 쉬운 :

s = raw_input("Enter a string of characters:") 
m = 0 
def numvow(s,m): 
    for c in s: 
     if c == 'a' or c =='e' or c =='i' or c =='o' or c =='u': 
      m+=1 
    return m 
m = numvow(s, m) 
print("The number of vowels is " +str(m)) 

나는 등 if에 변경과 같은, (raw_input 이미 문자열을 반환로, 거기 호출 이유 없다)하지만 다른 사람을 아직 str 한 중복 호출을 제거하여 다른 개선했습니다

if c in 'aeiou': 
0

& 더 간결 더 빠른 당신은 글로벌 m 및 매개 변수 m 있습니다. 정수는 불변이므로 전역 및 매개 변수 m을 제거하고 계산을 위해 로컬 값을 만들고 함수 끝에 return m을 만듭니다. 카운터 대신 루프에 대해 다른 변수를 사용하십시오. 그리고 실제로 기능 : 전화

def numvow(s): 
    m = 0 
    for c in s: 
     if c in 'aeiou': 
      m+=1 
    return m 

s= raw_input("Enter a string of characters: ") 
m = numvow(s) 
print "The number of vowels is",m 

출력 : 정말 당신에게 아무것도 구입하지 않는

Enter a string of characters: abcdefg 
The number of vowels is 2 
0

은 첫째, 당신은 여기에 기능을 사용할 필요가 없습니다. 둘째, 두 개의 다른 변수에 m이라는 이름을 사용하고 있습니다.

s = str(raw_input("Enter a string of characters:")) 
m = 0 
for l in s: 
    if l in 'aeiou': 
     m += 1 
print("The number of vowels is " + str(m)) 

또한 내가 간단한 in 검사와 지루한 if m == 'a' or m =='e' ...을 대체 한 방법을 확인합니다.

1

당신은

프로그램의 최소한의 편집 될 많은 오류

당신은
  • 당신은 함수를 호출하지 않는 또 다시 변수 m을 사용하는
    • s= str(raw_input("Enter a string of characters:")) 
      c =0 
      def numvow(s,c): 
          for m in s: 
           if m == 'a'or m =='e' or m =='i' or m =='o' or m =='u': 
            c+=1 
          return c 
      c = numvow(s,c) 
      print("The number of vowels is " +str(c)) 
      

      일부 팁

      연결에 대한
      • 사용 format"The number of vowels is {}".format(c)
      • raw_input 반환 str, 그래서 캐스트는
      • 당신은 그것은 짧고 간단 if m in ('a','b','c','d','e'):을 할 수있는 중복
  • 관련 문제