-
74 - (파이썬) 예외 처리의 try except 구문study with Q - 파이썬 2024. 8. 12. 17:40
# 조건문으로 예외처리 했던 과거의 코드
: 과거까지야...r = input("반지름을 정수로 입력하시오: ") print() if r.isdigit(): num = int(r) print(f"원의 반지름: {num}") print(f"원의 둘레의 길이: {2*3.14*num}") print(f"원의 넓이: {3.14*num*num}") else: print("방금 입력한 건 정수가 아니란다.")
하지만 세상은 그렇게 만만하지 않기에... int를 제외하는 함수만이 아닌 코드도 많고, 생각하지 못한 예외도 많기에
# try except 구문
try: 예외가 발생할 수 있는 코드 except : 예외가 발생했을 때 실행할 코드
* try와 except를 항상 함께 입력함.
** try와 except 뒤에는 복합구문(Suite)가 와야 하므로 if, for, while, def 등등처럼 들여쓰기 넣고 코드를 입력해야 함.
r = input("반지름을 정수로 입력하시오: ") print() try: radi = int(r) print(f"구의 반지름: {radi}") print(f"구의 겉넓이: {2*3.14*radi*radi}") print(f"구의 부피: {3/4*3.14**radi*radi*radi}") except : print("반지름이 정수로 입력되지 않았습니다.") >>> 반지름을 정수로 입력하시오: 3 구의 반지름: 3 구의 겉넓이: 56.519999999999996 구의 부피: 208.974222 반지름을 정수로 입력하시오: 3.24 반지름이 정수로 입력되지 않았습니다. 반지름을 정수로 입력하시오: 10e 반지름이 정수로 입력되지 않았습니다.
부동소수점으로 바꿀 때도
r = input("반지름을 소수로 입력하시오: ") print() try: radi = float(r) print(f"구의 반지름: {radi}") print(f"구의 겉넓이: {2*3.14*radi*radi}") print(f"구의 부피: {3/4*3.14**radi*radi*radi}") except : print("반지름이 소수로 입력되지 않았습니다.")
예외를 구분하는 로직을 떠올릴 필요가 없기 때문에 짱 편함...!
# try except 구문 + pass 키워드
try: 예외가 발생할 수 있는 코드 except : pass
입력리스트 = ["14", "2.7", "hello", "102", "오레오"] 출력리스트 = [] for 요소 in 입력리스트: try: 출력리스트.append(float(요소)) except: pass print(출력리스트) # [14, 2.7, 102] >>> [14.0, 2.7, 102.0]
그리고 참고로
더보기def isfloat(입력): try: float(입력) return True except: return False 입력리스트 = ["14", "2.7", "hello", "102", "오레오"] 출력리스트 = [] for 요소 in 입력리스트: if isfloat(요소): 출력리스트.append(float(요소)) print(출력리스트) # [14, 2.7, 102]
이 경우도 위와 동일하게 나온다.
'study with Q - 파이썬' 카테고리의 다른 글
76 - (파이썬) 예외 객체와 예외 구분 (0) 2024.08.21 75 - (파이썬) 예외 처리의 else finally 구문 (0) 2024.08.21 73 - (파이썬) 기본적인 예외처리 방법 (0) 2024.08.09 72 - (파이썬) 구문오류와 예외 (0) 2024.08.08 70 - (파이썬) 하노이탑 (0) 2024.08.01