DAY33. Python Basic ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ
์กฐ๊ฑด๋ฌธ(if)
python ๋ธ๋ญ : ์ฝ๋ก ๊ณผ ๋ค์ฌ์ฐ๊ธฐ(tabํค)
๋ด์ด์ฐ๊ธฐ : shift + tab
ํ์1)
if ์กฐ๊ฑด์ :
์คํ๋ฌธ
var = 10 # ์ด๊ธฐํ
if var >= 50 :
print('var =', var)
print('var๋ 5๋ณด๋ค ํฌ๋ค.')
print('ํญ์ ์คํ๋๋ ์์ญ')
ํ์2) if ~ else
if ์กฐ๊ฑด์ :
์คํ๋ฌธ1 : True
else :
์คํ๋ฌธ2 : False
var = int(input('var ๋ณ์์ ๊ฐ ์
๋ ฅ : '))
if var >= 5 :
print('var๋ 5์ด์')
else :
print('var๋ 5๋ฏธ๋ง')
ํ์3) ์ฐ์์ if ~ else
if ์กฐ๊ฑด์1 :
์คํ๋ฌธ1 -> ์กฐ๊ฑด์1 True
elif ์กฐ๊ฑด์2 :
์คํ๋ฌธ2 -> ์กฐ๊ฑด์1 False & ์กฐ๊ฑด์2 True
else :
์คํ๋ฌธ3 -> ๋ชจ๋ ์กฐ๊ฑด์ False
[๋ฌธ์ ] ํค๋ณด๋ ์ ์ ์
๋ ฅ : 100~85 : '์ฐ์', 84~70 : '๋ณดํต', 69๋ฏธ๋ง : '์ ์กฐ'
score = int(input('์ ์ ์
๋ ฅ(0~100) : '))
์ค์ฒฉ if ~ else
if score < 0 or score > 100 :
print('์๋ชป๋ ์ ์')
grade = '์์'
else : # score : 0~100
if score >= 85 :
print('์ฐ์')
grade = '์ฐ์'
elif score >= 70 :
print('๋ณดํต')
grade = '๋ณดํต'
else :
print('์ ์กฐ')
grade = '์ ์กฐ'
print("์ ์๋ %d์ ์ด๊ณ , ๋ฑ๊ธ์ '%s' ์ด๋ค."%(score, grade))
์ ์๋ 89์ ์ด๊ณ , ๋ฑ๊ธ์ '์ฐ์' ์ด๋ค.
๋ธ๋ก if vs ํ ์ค if
num = 9
๋ธ๋ก if
if num >= 5 :
result = num + 5
else :
result = num * 5
print(result) # 14
ํ ์ค if
ํ์) ๋ณ์ = ์ฐธ if ์กฐ๊ฑด์ else ๊ฑฐ์ง
result = num + 5 if num >= 5 else num * 5
print(result) # 14
ํ์)
while ์กฐ๊ฑด์ :
๋ฐ๋ณต๋ฌธ1
๋ฐ๋ณต๋ฌธ2
1. ์นด์ดํฐ์ ๋์ ๋ณ์
cnt = tot = 0 # ์ด๊ธฐํ
print(cnt, tot) # 0 0
while cnt < 5 : # 5ํ ๋ฐ๋ณต
cnt += 1 # cnt = cnt + 1 -> ์นด์ดํฐ ๋ณ์
tot += cnt # tot = tot + cnt -> ๋์ ๋ณ์
print(cnt, tot) # 5 15
2. 1~n๊น์ง ์์ด ํฉ, ๋ฐฐ์ ํฉ
cnt = tot = 0 # ์ด๊ธฐํ
while cnt < 100 : # 100ํ ๋ฐ๋ณต
cnt += 1 # ์นด์ดํฐ ๋ณ์
#tot += cnt # 1~100 ๋์ ํฉ
์กฐ๊ฑด๋ฌธ ์ถ๊ฐ
if cnt % 5 == 0 : # 5์ ๋ฐฐ์
print(cnt, end = ' ')
tot += cnt # 5์ ๋ฐฐ์ ๋์ ํฉ
print() # line skip
print('\n1~100๊น์ง ํฉ = %d'%tot) # 1~100๊น์ง ํฉ = 5050
print('1~100 ์ฌ์ด์ 5์ ๋ฐฐ์ ํฉ =%d'%tot)
1~100 ์ฌ์ด์ 5์ ๋ฐฐ์ ํฉ =1050
3. ๋ฌดํ loop -> exit ์กฐ๊ฑด ์ง์
input_data = [] # ๋น list
while True :
num = int(input('์ซ์ ์
๋ ฅ : '))
if num % 10 == 0 : # ํ์ถ(exit) ์กฐ๊ฑด
print('ํ๋ก๊ทธ๋จ ์ข
๋ฃ')
break # loop exit
print('์
๋ ฅ ๊ฐ ->', num)
input_data.append(num) # ์ซ์ ์ ์ฅ
print(input_data) # [1, 2, 5, 6, 8]
์ปดํจํฐ ๋์ ์์ฑ
import random # ๋์ ์์ฑ ๋ชจ๋
0~1 ์ฌ์ด ๋์ ์ค์
r = random.random() # ๋ชจ๋.ํจ์()
print('r=', r) # r= 0.345763395177377
[๋ฌธ์ ] ๋์ 0.01 ๋ฏธ๋ง์ด๋ฉด ์ข
๋ฃ ํ ๋์ ๊ฐ์ ์ถ๋ ฅ
cnt = 0 # ๋์ ๊ฐ์ ์นด์ดํธ
while True :
r = random.random()
print('r=', r)
if r < 0.01 : # exit ์กฐ๊ฑด
break
else :
cnt += 1
print('๋์ ๊ฐ์ =', cnt) # ๋์ ๊ฐ์ = 25
print('>> ์ซ์ ๋ง์ถ๊ธฐ ๊ฒ์ <<')
myInput == computer : '์ฑ๊ณต(exit)'
myInput > computer : '๋ ์์ ์ ์
๋ ฅ'
myInput < computer : '๋ ํฐ ์ ์
๋ ฅ'
com = random.randint(1, 10) # 1~10 ๋์ ์ ์
print(com) # 4
while True :
my = int(input('์์ ์ซ์๋ฅผ ์
๋ ฅํ์์ค : '))
if my == com :
print('~~ ์ฑ๊ณต ~~ ')
break
elif my > com :
print('๋ ์์ ์ ์
๋ ฅ')
elif my < com :
print('๋ ํฐ ์ ์
๋ ฅ')
4. break, continue ํค์๋
- ๋ฐ๋ณต๋ฌธ์์ ์ฌ์ฉ๋๋ ๋ช
๋ น์ด
- break : ๋ฐ๋ณต๋ฌธ์ ํ์ถ(exit)
- continue : ๋ฐ๋ณต๋ฌธ์ ๊ณ์ ๋ฐ๋ณต, ๋ค์ ๋ฌธ์ฅ skip
i = 0
while i < 10 :
i += 1 # ์นด์ดํฐ ๋ณ์
if i == 3 :
continue
if i == 6 :
break
print(i, end = ' ') # 1 2 4 5 [6 7 8 9 10]
๋ฐ๋ณต๋ฌธ
ํ์)
for ๋ณ์ in ์ด๊ฑฐํ๊ฐ์ฒด :
๋ฐ๋ณต๋ฌธ1
๋ฐ๋ณต๋ฌธ2
๋ณ์ in ์ด๊ฑฐํ๊ฐ์ฒด : ๊ฐ์ฒด์ ์์ ์ํ -> ๋ณ์ ๋๊น
์ด๊ฑฐํ ๊ฐ์ฒด = ๋ฐ๋ณต๊ฐ๋ฅ(iterable) ๊ฐ์ฒด : string, list, tuple, set, dict ๋ฑ
1. ๋ฌธ์์ด(string) ๊ฐ์ฒด
string = "๋๋ ํ๊ธธ๋ ์
๋๋ค."
len(string) # 11
for s in string : # 11ํ ๋ฐ๋ณต
print(s, end ='') # ๋๋ ํ๊ธธ๋ ์
๋๋ค.
for st in string.split() : # ๊ณต๋ฐฑ ํ ํฐ : 3ํ ๋ฐ๋ณต
print(st)
๋๋
ํ๊ธธ๋
์
๋๋ค.
2. list ๊ฐ์ฒด : 1์ฐจ์ ๋ฒกํฐ ์์ฑ
lst = [1,2,3,4,5]
print(lst) # [1, 2, 3, 4, 5]
len(lst) # 5
lst2 = [] # ๋นlist : ํ์ ์ ์ฅ
for i in lst :
print(i, end = ' ') # 1 2 3 4 5
if i % 2 != 0 :
lst2.append(i) # i ์ ์ฅ
print(lst2) # [1, 3, 5]
3. range ๊ฐ์ฒด : ์์ ์๋ ์ ์ ์์ฑ, ์์ธ ์์ฑ
help(range)
range(stop) : 0~stop-1 ์ ์
range(start, stop) : start ~ stop-1 ์ ์
range(start, stop, step) : start ~ stop-1, step ๋จ์ ์ฆ๊ฐ
num1 = range(10) # 0 ~ 9
num2 = range(1,10) # 1 ~ 9
num3 = range(1,10,2) # 1, 3, 5, 7, 9
for n in num1 :
print(n)
for n in num2 :
print(n)
for n in num3 :
print(n)
์์ธ ๋ง๋ค๊ธฐ
y_true = [1,0,0,1,0] # ์ ๋ต
y_pred = [1,0,0,1,1] # ์์ธก์น
acc = 0 # ๋ถ๋ฅ์ ํ๋
size = len(y_true) # 5
for i in range(size) : # 0~4
fit = int(y_true[i] == y_pred[i]) # T/F -> 1/O
acc += fit * 0.2 # acc = acc + (fit * 0.2)
print('acc =', acc) # acc = 0.8
4. ์ค์ฒฉ ๋ฐ๋ณต๋ฌธ
for i in ์ด๊ฑฐํ๊ฐ์ฒด :
for j in ์ด๊ฑฐํ๊ฐ์ฒด :
๋ฐ๋ณต๋ฌธ
๋ฌธ๋จ : ์ฌ๋ฌ์ค ๋ฌธ์์ด
string = """๋๋ ํ๊ธธ๋ ์
๋๋ค.
์ฃผ์๋ ์์ธ์ ์
๋๋ค.
๋์ด๋ 35์ธ ์
๋๋ค."""
sents = [] # ๋ฌธ์ฅ ์ ์ฅ
words = [] # ๋จ์ด ์ ์ฅ
for sent in string.split(sep='\n'): # ๋ฌธ๋จ -> ๋ฌธ์ฅ
sents.append(sent) # ๋ฌธ์ฅ ์ ์ฅ
for word in sent.split(sep=' ') : # ๋ฌธ์ฅ -> ๋จ์ด
words.append(word) # ๋จ์ด ์ ์ฅ
print(sents) # ['๋๋ ํ๊ธธ๋ ์
๋๋ค.', '์ฃผ์๋ ์์ธ์ ์
๋๋ค.', '๋์ด๋ 35์ธ ์
๋๋ค.']
print('๋ฌธ์ฅ ๊ฐ์ :', len(sents)) # ๋ฌธ์ฅ ๊ฐ์ : 3
print(words)
['๋๋', 'ํ๊ธธ๋', '์ ๋๋ค.', '์ฃผ์๋', '์์ธ์', '์ ๋๋ค.', '๋์ด๋', '35์ธ', '์ ๋๋ค.']
print('๋จ์ด ๊ฐ์ :', len(words)) # ๋จ์ด ๊ฐ์ : 9