2017-11-12 3 views
0

나는 원하는 기능을 올바르게 수행하는 방법을 잘 모르겠습니다. 문자 "#"에 도달 할 때까지 파일의 문자 목록을 순환 시키길 원합니다. 각 문자를보고 싶을 때, 그리고 그것을 목록에 추가하는 모음 인 경우. 다른 도움말 스레드에서 본 읽기 기능의 설명서가 나를 혼란스럽게합니다. 지금까지 나는 이것을 가지고있다 :while 루프에서 read 함수 사용하기

def opt(): 
    filename = input("Enter the name of your input file: ") 
    infile = open(filename, 'r') 
    a = [] 
    vowel = infile.read(1) 
    while (vowel != '#'): 
     if vowel == "A": 
      a.append(vowel) 
      vowel = infile.read(1) 
     elif vowel == "E": 
      a.append(vowel) 
      vowel = infile.read(1) 
     elif vowel == "I": 
      a.append(vowel) 
      vowel = infile.read(1) 
     elif vowel == "O": 
      a.append(vowel) 
      vowel = infile.read(1) 
     elif vowel == "U": 
      a.append(vowel) 
      vowel = infile.read(1) 
     else: 
      vowel = infile.read(1) 
    return (a) 

else 연산자는 자음이라면 다음 문자로 간다.

내가 뭘 잘못하고 있니?

감사

+0

'.read()'어떤 매개 변수 *와 전체 파일 * 읽기 - 퍼팅 아무 소용이 없기를 그 루프에서, 읽을 것이 아무것도 없기 때문에. '.read (1)'이 단일 문자를 원한다. – jasonharper

+0

이전에 가지고 있었지만, .read()를 .read (1)로 바꿨을 때 내 목록에는 모음 A 만있었습니다. –

답변

0

너 내가, 내가 좋아 할 것입니다 경우이

def opt(): 
    filename = input("Enter the name of your input file: ") 
    infile = open(filename, 'r') 
    a = [] 
    vowel = infile.read(1) 
    while vowel != '#': 
     if vowel in ('A', 'E', 'I', 'O', 'U'): 
      a.append(vowel) 
     vowel = infile.read(1) 
    return a 
+0

나는 소문자를 고려하지 않았습니다 .... –

+0

파일 내용을 표시 할 수 있습니까? 예상 출력은? –

+0

나는이 문제를 해결했다. 내가 OP에서 얻은 것들이 정확하다, 나는 단지 소문자 (어리석은 나)를 설명하지 못했다. –