본문 바로가기
● 알고리즘, 자료구조/2021 알고리즘

파이썬 영어 단어장 만들기 | open, input 위치

by 0ver-grow 2021. 6. 1.
반응형

시행착오1 : if문에서 쓰인 input문이 정상작동하지 않음

with open(' vocabulary.txt','a') as f :
    while True : 
        f.write(input("영어 단어를 입력하세요: "))
        f.write(input("한국어 뜻을 입력하세요: "))
        if input() == 'q' : 
        	break

 

시행착오2 : input의 특성으로 N변수가 실행됨

with open(' vocabulary.txt','a') as f :
	N = input()
    while True : 
        f.write(input("영어 단어를 입력하세요: "))
        f.write(input("한국어 뜻을 입력하세요: "))
        
        if N == 'q' :
        	break

 

시행착오3 : while문의 조건식에 삽입해도 작동안됨

with open(' vocabulary.txt','a') as f :
	N = input()
    while N == 'q' : 
        f.write(input("영어 단어를 입력하세요: "))
        f.write(input("한국어 뜻을 입력하세요: "))

 

 

시행착오4 : input은 바로 실행되므로 실행되는 위치에 변수를 선언하여 사용해야한다.

with open('vocabulary2.txt','w') as f :
    while True : 
        eng = input("영어 단어를 입력하세요: ")
        f.write(eng)
        if eng == 'q' :
            break
        
        kor = input("한국어 뜻을 입력하세요: ")
        f.write(kor)
        if kor == 'q' :
            break

 

시행착오5 : q를 입력하면 메모장에 기록되는데 어떻게 해야 q를 뺄 수 있지?

with open('vocabulary3.txt','w') as f :
    while True : 
        eng = input("영어 단어를 입력하세요: ")
        f.write(eng + ": ")
        if eng == 'q' :
            break
        
        kor = input("한국어 뜻을 입력하세요: ")
        f.write(kor + "\n")
        if kor == 'q' :
            break

 

모범 답안 : f.write을 마지막에 쓰고 포맷팅을 적용함

with open('vocabulary.txt', 'w') as f:
    while True:
        english_word = input('영어 단어를 입력하세요: ')    
        if english_word == 'q':
            break
        
        korean_word = input('한국어 뜻을 입력하세요: ')
        if korean_word == 'q':
            break
        
        f.write('{}: {}\n'.format(english_word, korean_word))
반응형