함수 3요소
1. input
매개변수 파라미터 인자 인수 입력값
2. output
반호나 결과값 리턴값 출력값
3. 기능==함수명
인자x 반환x
인자o 반환x
인자x 반환o
인자o 반환o
1. 인자x 반환x
def f1()
print('>_<')
f1()
f1()
f1()
코드 재사용 → 효율적
>_< 은 결과값이 아닌 출력되는 것
2. 인자o 반환x
def f2(name,lv):
print(name+'님은 lv'+str(lv))
f2('묘묘',13)
def f2(name,lv=1): #디폴트 매개변수
print(name+'님은 lv'+str(lv))
f2('묘묘')
f2('묘묘',10)
디폴트 매개변수는 [모호성]이슈가 있으므로 항상 뒤에서부터 위치시킴
def f2(*args): #애스터리스크/가변 매개변수
for v in args:
print(v)
print(tpye(args)) #튜플 > 외부에서 들어온 값 바뀌면 안되기 때문
f2(1,2,3,4,5)
f2('apple', 'banana')
def test(*args):
print(sum(args))
test(1,2,3)
3. 인자x 반환o
def f3():
num=int(input('정수입력:'))
res=num**2
print('입력한 %d의 제곱은 %d입니다'%(num,res))
return res
a=f3()
4. 인자O 반환O
def f4(a,b,c):
return (a+b+c)//3
a= f4(1,2,3)
print(a)
return은 함수 즉시 종료
노래방 프로그램
1. 동전 넣으세요 → 유효성검사(500미만)
2. 500원 당 1곡
1600
3곡 추가되었습니다. 100원 반환됩니다
2000
4곡 추가되었습니다
3. 3번 4번 → while VS for > for
4. 노래번호를 입력
→ 딕셔너리를 이용하여 노래를 저장
5-1 해당번호가 없음 → 다시 입력
5-2 노래를 play
6. wjatn (0~100점 랜덤부여)
+0~60 아쉬워요! 61~80 굳굳! 81~100 가수왕!
++100점일 때 보너스 1곡
7. 다음에 또 만나요~~!!
++무한루프로 해당 프로그램 감싸기
songlist = {1001:'strawberry moon', 1002:'antifreeze', 1003:'너'}
import time
import random
coin=int(input('동전을 넣으세요'))
song=coin//500
recoin=coin%500
print('%d곡 추가되었습니다'%song)
if recoin!=0:
print('%d원 반환됩니다'%recoin)
else:
print()
for i in range(song):
songnum=int(input('노래번호입력:'))
print(songlist[songnum]+'노래재생')
for i in range(7):
print('🎤🎤', end='')
time.sleep(0.3)
print()
score=random.randrange(0,101)
print(score,'점 입니다')
print('다음에 또 만나요!')
songlist={1001:'strawberry moon', 1002:'antifreeze', 1003:'신호등'}
import time
import random
while True:
coin=int(input('동전을 넣으세요'))
if coin>=500:
break
print('500이상의 동전을 넣어주세요!') #유효성검사
song=coin//500
recoin=coin%500
print('%d곡 추가되었습니다'%song)
if recoin!=0:
print('%d원 반환됩니다'%recoin)
else:
print()
for i in range(song):
checklist=list(songlist.keys())
while True:
songnum=int(input('노래번호입력: '))
if songnum in checklist:
break
print('해당 노래번호는 없습니다! 다시 입력해보세요')
print(songlist[songnum]+'노래재생')
for i in range(7):
print('🎤🎤',end='')
time.sleep(0.3)
print()
score=random.randrange(0,101)
print(score,'점 입니다.')
if score>80:
print('가수왕!')
elif score>60:
print('굳굳!')
else:
print('아쉬워요!')
print('다음에 또 만나요!')
사용자 정의 함수를 만드는 방법
1) 기능을 우선 구현하고 → 함수로 따로 분리
def scoreprint(score): #1. 가변 매개변수 2. 디폴트 매개변수
if score>80:
pirnt('가수왕!')
elif score>60:
print('굳굳!')
else:
print('아쉬워요!')
#인자 o 반환 x
2) 함수를 만들어서 → 원하는 상황에 적용
def printmusic():
for i in range(5):
print('🎤🎤',end='')
time.selep(0.2)
priint()
#인자x 반환x
함수 사용 장점
1. 함수 재사용성이 증가
2. 유지보수 유리함
-낮은 결함도 높은 응집도-
'파이썬' 카테고리의 다른 글
[자료구조] 코랩이란? (0) | 2022.04.16 |
---|---|
[파이썬 기초] 파일 입출력 (0) | 2022.04.15 |
[파이썬 기초] 업다운 게임 (0) | 2022.04.11 |
[파이썬 기초] 컬렉션: 리스트 튜플 사전 세트 (0) | 2022.03.17 |
[파이썬 기초] 모듈: math random time/숫자 문자 처리함수 (0) | 2022.03.17 |