* ์ด ๊ธ์ ๋ค์ด๋ฒ ๋ถ์คํธ ์ฝ์ค์ ์ธ๊ณต์ง๋ฅ(AI) ๊ธฐ์ด ๋ค์ง๊ธฐ ๊ฐ์๋ฅผ ์๊ฐํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
์์ธ์ฒ๋ฆฌ ์ฌ์ฉ ๋ชฉ์ : ์๋ชป๋ ์ํฉ์ ๋์ฒ๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค.
1. try~except ๊ตฌ๋ฌธ : ๊ธฐ๋ณธ์ ์ธ ์์ธ ์ฒ๋ฆฌ ๊ธฐ๋ฒ
์ฌ์ฉ๋ฐฉ๋ฒ
try:
๊ฒ์ฆํด์ผํ๋ ์ฝ๋
except<ExceptionType1>:
์์ธ ๋ฐ์์ ๋์์ฝ๋1
except<ExceptionType2>:
์์ธ ๋ฐ์์ ๋์์ฝ๋2
...
except Exceptions as e:
์์ธ ๋ฐ์์ ๋์์ฝ๋3
else:
์ ์์๋์ ๋์์ฝ๋
finally:
์์ธ ๋ฐ์๊ณผ ๊ด๊ณ์์ด ์ํ๋๋ ์ฝ๋
ํน์ง
- ์ฌ๋ฌ ๊ฐ์ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์์
- ์ ์ฒด ์์ธ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์์
except Exceptions as e:
cf) Exceptions๋ก ์ ์ฒด ์๋ฌ์ ๋์ํ๋๊ฒ์ ์ ํํ ์ด๋ ๋ถ๋ถ๋๋ฌธ์ ์ค๋ฅ๊ฐ ๋๋์ง ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ์ง์ํ ๊ฒ
- ์์ธ์ ๊ด๊ณ์์ด ์ฝ๋๋ฅผ ์ํํ ์ ์์
finally:
์์ ) 0์ผ๋ก ์ซ์๋ฅผ ๋๋๋ ์์ธ์ฒ๋ฆฌ๋ฅผ ํด ๋ณด์.
1 2 3 4 | try: print(10/0) except ZeroDivisionError: print("Should not divided by 0") | cs |
- Build-in Exceptinon : ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ ์์ธ
IndexError
NameError
ZeroDivisionError
ValueError
FileNotFoundError
2. raise ๊ตฌ๋ฌธ : ํ์์ ๋ฐ๋ผ ๊ฐ์ ๋ก ์์ธ๋ฅผ ๋ฐ์์ํค๋ ๊ธฐ๋ฒ
์ฌ์ฉ๋ฐฉ๋ฒ
raise <Exception Type>(์์ธ์ ๋ณด)
์์ ) ์ ์๊ฐ ์๋๊ฒฝ์ฐ ์์ธ๋ฅผ ๋ฐ์ํ๋ ์ฝ๋๋ฅผ ๋ง๋ค์ด๋ณด์.
1 2 | if digit not in "0123456789": raise ValueError("์ซ์๊ฐ์์
๋ ฅํ์ง์์ผ์
จ์ต๋๋ค") | cs |
3. assert ๊ตฌ๋ฌธ : ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์์ ๊ฒฝ์ฐ ์์ธ ๋ฐ์์ํค๋ ๊ธฐ๋ฒ
- ๋ณดํต ํจ์์์ ๋ง์ด ์ฌ์ฉ๋๋ฉฐ, ๋งค๊ฐ๋ณ์์ type์ ๋ํ ์์ธ์ฒ๋ฆฌ์ ๋ง์ด ์ฌ์ฉ
์ฌ์ฉ๋ฐฉ๋ฒ
assert <์์ธ์กฐ๊ฑด>
or
assert ํจ์ ## ํจ์ ์กฐ๊ฑด์ด False์ด๋ฉด ์ค๋ฅ๋ฅผ ๋ฐ์์ํด
์์ ) ์ ์๊ฐ ์๋๊ฒฝ์ฐ ์์ธ๋ฅผ ๋ฐ์ํ๋ ์ฝ๋๋ฅผ ๋ง๋ค์ด๋ณด์.
๊ตฌํ1
1 2 3 4 | def get_float_number(number): ##number๊ฐ string์ผ๋ก ์ฃผ์ด์ก์๋ for digit in number: if digit not in "0123456789": assert ValueError("์๋ฌ๋ด์ฉ") | cs |
๊ตฌํ2
1 2 | def get_float_number(number): ##number๊ฐ int๋ก ์ฃผ์ด์ก์๋ assert(number, int) | cs |
cf) Type Annotation/Hinting
- ํ์ด์ฌ ์ฝ๋๋ฅผ ์์ฑํ ๋ ํ์ ์ ๋ํ ๋ฉํ์ ๋ณด๋ฅผ ์ ๊ณตํ๋๊ฒ์ผ๋ก ํ์ ์ ๋ํ ํ์๋ฅผ ํ์คํ์ํจ๊ฒ- ํ์ ์ด ํ๋ ธ๋ค๊ณ ํด์ ๊ฒฝ๊ณ ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง๋ ์์
- ๋ณ์ ํ์ ํํ ๋ฐฉ๋ฒ : (์ฝ๋ก )
๋ณ์๋ช : ํ์ ์ข ๋ฅ = ๋ณ์๊ฐ
์ฌ์ฉ ์์
title: str = "The ordinary day"
- ํจ์ ํ์
ํํ
๋ฐฉ๋ฒ
- ๋งค๊ฐ๋ณ์ ํ์ : (์ฝ๋ก )
- ๋ฐํ ํ์ -> (ํ์ดํ)
def ํจ์๋ช (ํ์ ๋งค๊ฐ๋ณ์: ํ์ ์ข ๋ฅ, ์ ํ ๋งค๊ฐ๋ณ์: ํ์ ์ข ๋ฅ = ๊ธฐ๋ณธ๊ฐ) -> ๋ฐํ ํ์ ์ข ๋ฅ:
์ฌ์ฉ ์์
def intsum(num1:int, num2:int=0)->int:
'์ธ๊ณต์ง๋ฅ๐พ > ํ์ด์ฌ ๊ธฐ๋ณธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ์ด์ฌ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ] csv, ์น(web), xml, json (0) | 2023.01.30 |
---|---|
[ํ์ด์ฌ ๊ธฐ๋ณธ ๊ฐ๋ ] ํด๋&ํ์ผ ๋ค๋ฃจ๊ธฐ(Folder&File Handling) (0) | 2023.01.29 |
[ํ์ด์ฌ ๊ธฐ๋ณธ ๊ฐ๋ ] Conda๋ฅผ ์ด์ฉํ ๊ฐ์ํ๊ฒฝ ํธ๋ค๋ง (0) | 2023.01.26 |
[ํ์ด์ฌ ๊ธฐ๋ณธ ๊ฐ๋ ] ๋ชจ๋๊ณผ ํจํค์ง์ ํ๋ก์ ํธ (0) | 2023.01.24 |
[ํ์ด์ฌ ๊ธฐ๋ณธ ๊ฐ๋ ] ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ (0) | 2023.01.09 |