[๋ฉ์์ด์ฌ์์ฒ๋ผ ๋ฐ์ดํฐ๋ถ์ ๋ถํธ์บ ํ 5๊ธฐ] ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ฐ์ต/ ์์ธ์ฒ๋ฆฌ
๋๋์ด ํ์ด์ฌ์ด ๋๋ฌ๋ค.
๋ง์ง๋ง์ ๋ฐฐ์ด ๊ฒ๋ค ์ค ์ ๋ฆฌํ๊ณ ์ถ์ ๋ถ๋ถ๋ง ๊ธฐ๋กํ๋ คํ๋ค.
<๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ฐ์ต>
๋ฌธ์ )
์๋์ฐจ์ ์ ๋ณด๊ฐ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋์ด ์๋ค
์๋์ฐจ ํ๋์ ์ ๋ณด๋ ๋ค์๊ณผ ๊ฐ๋ค
๋ชจ๋ธ๋ช
, ์ฐ์, ๋ฐฐ๊ธฐ๋, ์์, ์ฃผํ๊ฑฐ๋ฆฌ
์ฒซ ๋ฒ์งธ ์๋์ฐจ : ๋ถ๋ถ์ด, 2000, 500, ๋
ธ๋์, 100000
๋ ๋ฒ์งธ ์๋์ฐจ : ๋ฐฉ๊ตฌ์ฐจ, 1950, 200, ๋นจ๊ฐ์, 200000
์ธ ๋ฒ์งธ ์๋์ฐจ : ์์ค๋ผ๋ค, 1980, 5000000, ํฐ์, 300000
์ถ๋ ฅ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๊ฐ ์๋์ฐจ์ ์ ๋ณด๋ฅผ ๋ชจ๋ ์ถ๋ ฅํ๋ค.
- ์ด ๋ฐฐ๊ธฐ๋๊ณผ ๋ฐฐ๊ธฐ๋ ํ๊ท ์ ์ถ๋ ฅํ๋ค
- ์ด ์ฃผํ๊ฑฐ๋ฆฌ์ ์ด ์ฃผํ๊ฑฐ๋ฆฌ ํ๊ท ์ ์ถ๋ ฅํ๋ค
๊ฐ์ฒด์งํฅ ๊ฐ๋ ์ ์ ์ฉํ์ฌ ๋ณธ๋ค. ์๋์ฐจ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๋ค.
# ์๋์ฐจ ํด๋์ค ์์ฑ
class classCar():
def __init__(self, name, year, cc, color, dist):
self.name = name
self.year = year
self.cc = cc
self.color = color
self.dist = dist
# ์๋์ฐจ ์ ๋ณด ์ถ๋ ฅ ๋ฉ์๋
def show_info(self):
print(f'๋ชจ๋ธ๋ช
: {self.name}\n์ฐ์ : {self.year}\n๋ฐฐ๊ธฐ๋ : {self.cc}\n์์ : {self.color}\n์ฃผํ๊ฑฐ๋ฆฌ : {self.dist}\n')
# ์๋์ฐจ ์ ๋ณด ์
๋ ฅ
car1 = classCar('๋ถ๋ถ์ด', 2000, 500, '๋
ธ๋์', 100000)
car2 = classCar('๋ฐฉ๊ตฌ์ฐจ', 1950, 200, '๋นจ๊ฐ์', 200000)
car3 = classCar('์์ค๋ผ๋ค', 1980, 5000000, 'ํฐ์', 300000)
# ์๋์ฐจ๋ค์ ๋ฆฌ์คํธ๋ก ๋ฌถ๋๋ค
car_list = [car1, car2, car3]
# ์๋์ฐจ ์ ๋ณด ์ถ๋ ฅํ๊ธฐ
for car in car_list:
classCar.show_info(car)
๋ชจ๋ธ๋ช
: ๋ถ๋ถ์ด
์ฐ์ : 2000
๋ฐฐ๊ธฐ๋ : 500
์์ : ๋
ธ๋์
์ฃผํ๊ฑฐ๋ฆฌ : 100000
๋ชจ๋ธ๋ช
: ๋ฐฉ๊ตฌ์ฐจ
์ฐ์ : 1950
๋ฐฐ๊ธฐ๋ : 200
์์ : ๋นจ๊ฐ์
์ฃผํ๊ฑฐ๋ฆฌ : 200000
๋ชจ๋ธ๋ช
: ์์ค๋ผ๋ค
์ฐ์ : 1980
๋ฐฐ๊ธฐ๋ : 5000000
์์ : ํฐ์
์ฃผํ๊ฑฐ๋ฆฌ : 300000
์ด ๋ฐฐ๊ธฐ๋๊ณผ ํ๊ท ๋ฐฐ๊ธฐ๋์ ์ปดํ๋ฆฌํจ์ ์ ํ์ฉํ์ฌ ์งง์ ์ฝ๋๋ก ๊ตฌํํ๋ค.
# ์ด ๋ฐฐ๊ธฐ๋๊ณผ ํ๊ท ๋ฐฐ๊ธฐ๋ ๊ตฌํ๊ธฐ
total_cc = sum(car.cc for car in car_list)
avg_cc = total_cc // len(car_list)
print(f'์ด ๋ฐฐ๊ธฐ๋ : {total_cc}')
print(f'ํ๊ท ๋ฐฐ๊ธฐ๋ : {avg_cc}')
์ด ์ฃผํ๊ฑฐ๋ฆฌ : 600000
ํ๊ท ์ฃผํ๊ฑฐ๋ฆฌ : 200000
๋๋์ ๐ฌ
์ด ๊ณผ์ ๋ฅผ ํ๋ฉด์ ๋๋์ ์ ์ด์ f๋ฌธ์์ด์ ์ต์ํด์ก๋ค๋ ๊ฒ๊ณผ ์์ง ์ฃผ์ ๋จผ์ ๋ฌ๊ณ ์ฝ๋ ์ฐ๋๊ฒ ์ฝ์ง ์๋ค๋ ๊ฒ...
์ฝ๋ฉ์ ์ฒ์ ์์ ํ ๋ ๋ถํฐ ์๊ฐ๋๋๋๋ก ์ ์ฝ๋ฉ ํ ์ฃผ์ ์ด๋ ๊ฒ ์ฒ๋ฆฌ๋ฅผ ํด์์
์ ์ฐจ๋๋ก ์ฃผ์์ ์ฐ๋๊ฒ ์์ ์์ต์๋ฌ๊น...
์ด๊ฑฐ๋ ๋ด ๋
ธ๋ ฅ๊ณผ ๋ฒ๋ฆ..?์ ๋ฌ๋ฆฐ ๊ฒ ๊ฐ๋ค ใ
<์์ธ์ฒ๋ฆฌ>
์์ธ
: ์ค๋ฅ์ ๋ฐ์์ ๋ฏธ๋ฆฌ ์์ธกํ ์ ์๋ ์ค๋ฅ๋ค
์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด Virtual Machine์ ํด๋น ํ๋ก๊ทธ๋จ์ ๊ฐ์ ์ข
๋ฃํ๋ค.
์ด๋ ์ค๋ฅ์ ๋ํด ๊ฐ์ ์ข
๋ฃ๋๋ ๊ฒ์ ๋ง๊ณ ๊ฐ๋ฐ์๊ฐ ๋ฐ๋ก ๋ง๋ ์ฝ๋๊ฐ ๋์๋๊ธธ ์ํ๋ฉด ์์ธ์ฒ๋ฆฌ ๋ผ๋ ๊ฒ์ ํด์ผํ๋ค.
์์ธ์ฒ๋ฆฌ ์ด์ ์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๋ญ๋ค?
์ ์ด์ ์ค๋ฅ๊ฐ ๋ฐ์๋์ง ์๋๋ก ํ์ธ ๋ ํ์ธ.. (ex. ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ ๋ฑ)
# ์ค๋ฅ๊ฐ ๋๋ ์ฝ๋ ์ฝ์
a1 = 10 / 0
print(a1)
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
Cell In[1], line 1
----> 1 a1 = 10 / 0
2 print(a1)
ZeroDivisionError: division by zero
์ด๋ ZeroDivisionError ๊ฐ ์ค๋ฅ๋ช ์ด๋ค. ์ด ์ค๋ฅ๋ช ์ try-except๋ฌธ์์ ํ์ํ๊ธฐ ๋๋ฌธ์ ์ ๋ด์ผํ๋ค.
try-except
# try๋ฌธ ์ํํด๋ณธ๋ค.
try :
a1 = 10/0
print(a1)
# try๋ฌธ์์ ์ค๋ฅ ๋ฐ์์ except๊ตฌ๋ฌธ์ ์คํํ๋ค
except :
print('์ค๋ฅ๊ฐ ๋ฐ์ํ์์ต๋๋ค')
print('์ด ๋ถ๋ถ์ด ์ํ๋ ๊น์?')
๋ด๊ฐ ์คํํ ์ฝ๋๋ฅผ try๋ฌธ์ ๋ฃ๊ณ , ๋ง์ฝ ์ค๋ฅ๊ฐ ๋๋ค๋ฉด except๋ฌธ์ ์คํ์์ผ ์ค๋ฅ๊ฐ ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ค.
๊ทธ๋ฆฌ๊ณ try-except๊ฐ ๋ชจ๋ ์ํ๋๋ฉด ๊ฐ์ฅ ์๋์ print('์ด ๋ถ๋ถ์ด ์ํ๋ ๊น์') ๊ฐ ์ ์์ ์ผ๋ก ์๋๋๋ค.
try, except ์ธ์๋ else, finally ๊ตฌ๋ฌธ๋ ์๋ค.
try :
#a1 = 10 / 0
#print(a1)
# try๋ฌธ์์ ์ค๋ฅ๊ฐ ๋๋ฉด ๋์ํ๋ except ๊ตฌ๋ฌธ
except ZeroDivisionError as e:
print('0์ผ๋ก ๋๋๋ ์์ธ๊ฐ ๋ฐ์ํ์์ต๋๋ค')
print(e)
except IndexError as e:
print('์๋ชป๋ ์์๊ฐ์ผ๋ก ์ ๊ทผํ์์ต๋๋ค.')
print(e)
except Exception as e:
print('๊ทธ ์ธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์์ต๋๋ค')
print(e)
# try ๋ถ๋ถ์์ ์์ธ๊ฐ ๋ฐ์ํ์ง ์๊ณ ์ํ๋์์ ๋ ๋์ํ๋ ๋ถ๋ถ
else :
print('์์ธ๊ฐ ๋ฐ์ํ์ง ์์์ต๋๋ค')
# try ๋ถ๋ถ์์ ์์ธ๋ฐ์ ์ฌ๋ถ๊ฐ ๊ด๊ณ์์ด '๋ฌด์กฐ๊ฑด ๋์ํ๋ ๋ถ๋ถ'
finally :
print('๋ฌด์กฐ๊ฑด ๋์ํ๋ ๋ถ๋ถ์
๋๋ค')
๊ทธ ์ธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์์ต๋๋ค
invalid literal for int() with base 10: '์๋
ํ์ธ์'
๋ฌด์กฐ๊ฑด ๋์ํ๋ ๋ถ๋ถ์
๋๋ค
์์ธ๊ฐ ๋ฐ์ํ์ง ์์๋ค๋ฉด:
try ์ํ -> else (๊ฐ ์๋ค๋ฉด)์ํ -> finally (๊ฐ ์๋ค๋ฉด) ์ํ
์์ธ๊ฐ ๋ฐ์ ํ๋ค๋ฉด:
try ๋ถ๋ถ ์ํ ์ค๋จ -> except ๋ฌธ ์ํ -> finally (๊ฐ ์๋ค๋ฉด) ์ํ
else์ finally๋ ๊ผญ ์์ด์ผํ๋๊ฑด ์๋๋ค.
๊ทธ๋ฌ๋ try๋ฅผ ์ฌ์ฉํ๋ฉด except๋ ๊ผญ ์์ด์ผํ๋ค. ๋์ ์ง๊ฟ๊ฐ์ ์กด์ฌ!
์ถ์ฒ : ๋ฉ์์ด์ฌ์์ฒ๋ผ