728x90
반응형
SMALL
문제
아래와 같이 번호를 선택하고 단어를 입력하고 출력한 후 파일로 저장하는 프로그램을 만들어보자.
* 아래 번호를 선택하세요
* 1. 단어 입력(단어, 뜻, 레벨)
* 2. 단어 출력
* 3. 단어 저장(word.txt에 저장)
* 4. 프로그램 종료
- 아래 번호를 선택하세요: 1
- 단어를 입력하세요: apple(단어), 사과(뜻), 1(레벨)
- 입력되었습니다.
- 아래 번호를 선택하세요: 1
- 단어를 입력하세요: banana, 바나나, 1
- 입력되었습니다.
- 아래 번호를 선택하세요: 2
> apple(사과, level1)
banana(바나나, level1)
- 아래 번호를 선택하세요: 3
* 저장되었습니다.
- 아래 번호를 선택하세요: 4
* 프로그램을 종료합니다.
> 단, 저장된 파일이 있는 경우 프로그램 재실행시 데이터를 읽어서 메모리에 저장
💡나의 풀이
print('''
----------------------------------------------------
1. 단어 입력(단어, 뜻, 레벨)
2. 단어 출력
3. 단어 저장
4. 프로그램 종료
----------------------------------------------------
''')
eng = []
kor = []
level= []
# 기존에 word.txt 파일이 있을 때
try:
file = open('./word.txt', 'rt')
data= file.read()
print('word.txt 읽기 성공!')
print(data)
# word.txt 파일이 없다면
except:
try:
while True:
num = int(input('번호를 선택하세요: '))
# 프로그램 종료
if num == 4:
print('프로그램을 종료합니다')
break
# 단어를 작성
if num == 1:
a, b, c= input('단어를 입력하세요(단어, 뜻, 레벨): ').split(',')
eng.append(a)
kor.append(b)
level.append(c)
# print(eng)
# print(kor)
# print(level)
# 작성한 단어를 보고싶을 때
if num == 2:
for e, k, l in zip(eng, kor, level):
print(f'{e}({k}, {l})'+'\n')
# word.txt로 저장
if num == 3:
file = open('./word.txt', 'at')
for e, k, l in zip(eng, kor, level):
file.write(f'{e}({k}, {l})'+'\n')
file.close()
print('저장 완료!')
except:
print('파일이 없습니다!')
728x90
반응형
LIST
'KDT > 과제' 카테고리의 다른 글
[파이썬, Python] 서브워드분리(subword segmentation) - WordPiece Tokenizer (0) | 2023.06.29 |
---|---|
[파이썬, Python] 서브워드분리(subword segmentation) - BPE 알고리즘 (0) | 2023.06.27 |
[파이썬, Python] 주민등록번호 유효성 검사하기 ✅ (0) | 2023.03.10 |
[파이썬, Python] 랜덤한 로또 번호를 뽑아보자🍀 (0) | 2023.03.10 |
[파이썬, Python] 가위바위보 - 컴퓨터와 가위바위보 하기! ✌ (0) | 2023.03.10 |