๋ฐ์ดํ„ฐ๋ถ„์„๊ฐ€ ๊ณผ์ •/Python

DAY33. Python Basic ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ

LEE_BOMB 2021. 11. 1. 16:53
์กฐ๊ฑด๋ฌธ(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