AI/python
파이썬 기초 5) 예외 처리, bool값과 논리 연산
Nolja놀자
2021. 1. 9. 00:26
반응형
예외 처리
try:
a = 3/0
except Exception:
print("0으로 나눌 수 없습니다.")
예외의 이름을 모를 때
예외 이름을 모르는 경우 처리 방법
try:
a = 5
b = 0
c = a / b
except
Exception as ex:
print('다음과 같은 에러가 발생했습니다: {}'.format( ex ))
다음과 같은 에러가 발생했습니다: division by zero
raise 예외 발생
- 사용자가 직접 에러를 발생시키는 기능
shops = {
"송일문방구": {"가위": 500, "크레파스": 3000},
"알파문구": {"풀": 800, "도화지": 300, "A4용지": 8000},
"다이소": {"풀": 500, "목공본드": 2000, "화분": 3000}
}
try:
for shop, products in shops.items():
for product, price in products.items():
if product =='풀':
print("{}: {}원".format(shop, price))
raise StopIteration
except StopIteration:
print('풀을 파는 가게를 발견하여 for문을 종료합니다.')
단락평가
- 논리연산에서 코드의 앞만 보고 값을 정할 수 있는 경우 뒤는 보지 않고 값을 결정
- 복잡한 코드를 단순하게 하는 방식
bool 값과 논리연산
true, false
- 숫자 0을 제외한 모든 수 - true
- 빈 딕셔너리, 빈 리스트를 제외한 모든 딕셔너리, 리스트 - true
- 아무 값도 없다는 의미인 None - false
- 빈문자열을 제외한 모든 문자열 - true
if []:
print("[]은 True입니다.")
if [1, 2, 3]:
print("[1,2,3]은/는 True입니다.")
if {}:
print("{}은 True입니다.")
if {'abc': 1}:
print("{'abc':1}은 True입니다.")
if 0:
print("0은/는 True입니다.")
if 1:
print("1은 True입니다.")
[1,2,3]은/는 True입니다.
{'abc':1}은 True입니다.
1은 True입니다
둘 중 하나가 True이면 True이다.
- True가 먼저 나오면 뒤의 값은 보지않고 True를 반환한다.
- False가 먼저 나오면 뒤의 값을 보고 판단한다.
a = 1 or 10 # 1의 bool 값은 True입니다.
b = 0 or 10 # 0의 bool 값은 False입니다.
print("a:{}, b:{}".format(a, b))
반응형