<예외처리하는 방법- 업그레이드>
이전에 배웠던 나토음성문자 생성기를 가지고 예외처리를 연습해보자.
음성 문자 생성기에 알파벳이 아닌 숫자나 특수기호를 넣으면
에러가 난다.
예외처리를 통해 이런 에러를 잡고
결국, 사용자가 알파벳을 입력하도록 유도해보자!
나토 파일은 아래의 게시글에서 다운로드 할 수 있다.
https://olivia-blackcherry.tistory.com/167
기본 코드
import pandas
data = pandas.read_csv("nato_phonetic_alphabet.csv")
word_dict = {row.letter:row.code for (index, row) in data.iterrows()}
print(word_dict)
word = input("알파벳을 입력하세요: ").upper()
alphabet_list = [word_dict[i] for i in list(word)]
print(alphabet_list)
1) while 구문 이용하기
import pandas
data = pandas.read_csv("nato_phonetic_alphabet.csv")
word_dict = {row.letter:row.code for (index, row) in data.iterrows()}
print(word_dict)
word= input("알파벳을 입력하세요: ").upper()
keep_going= True
while keep_going:
try:
alphabet_list = [word_dict[i] for i in list(word)]
except KeyError:
print("입력값이 올바르지 않습니다. 알파벳만 입력해주세요!")
word = input("알파벳을 입력하세요: ").upper()
else:
print(alphabet_list)
keep_going = False
2) 함수 생성하여 재귀호출 알고리즘 사용하기
import pandas
data = pandas.read_csv("nato_phonetic_alphabet.csv")
word_dict = {row.letter:row.code for (index, row) in data.iterrows()}
print(word_dict)
def generate_word():
word = input("알파벳을 입력하세요: ").upper()
try:
alphabet_list = [word_dict[i] for i in list(word)]
except KeyError:
print("입력값이 올바르지 않습니다. 알파벳만 입력해주세요!")
generate_word()
else:
print(alphabet_list)
generate_word()
3) json 파일에서 예외처리하기
import json
website = input("웹사이트?")
email = input("e-mail?")
password = input("password?")
data = {
website:{
"e-mail: ": email,
"password: ": password
}
}
with open("data.json", "r") as file:
json_data = json.load(file)
json_data.update(data)
with open("data.json", "w") as file:
json.dump(json_data, file, indent=4)
- data1.json파일이 존재하지 않을 때 예외처리
import json
website = input("웹사이트?")
email = input("e-mail?")
password = input("password?")
data = {
website:{
"e-mail: ": email,
"password: ": password
}
}
try:
file = open("data1.json", "r")
json_data = json.load(file)
except FileNotFoundError:
with open("data1.json", "w") as file:
json.dump(data, file)
else:
json_data.update(data)
with open("data1.json", "w") as file:
json.dump(json_data, file, indent=4)
'파이썬 > 파이썬(python) 중급' 카테고리의 다른 글
[30-6 파이썬] 패스워드 매니저 만들기(json, 예외처리, 기능추가, if~else와 비교) (0) | 2022.09.20 |
---|---|
[30-5 파이썬] JSON, json.dump(), json.load(), json.update(), 제이슨 (1) | 2022.09.19 |
[30-3 파이썬] 예외처리 raise 키워드 (1) | 2022.09.19 |
[30-2 파이썬] 예외처리, try, except, else, finally (1) | 2022.09.19 |
[30-1 파이썬] 예외의 종류 FileNotFoundError, KeyError, IndexError, TypeError (1) | 2022.09.19 |