<내용정리>
- 관련 파일
- 본문
### 사용자 함수
## 함수 용어 정리
입력값: 인수, 인자, 매개변수, 파라미터
출력값: 결과값, 반환값, 돌려주는 값(return)
## 매개변수(입력값), 반환값(출력값)이 없는 간단한 함수
<형식>
def 함수이름(): # 함수 정의
수행할 코드
함수이름() # 함수 호출
def hello():
print('Hello, world')
hello()
## 매개변수(입력값)만 있는 함수
<형식>
def 함수이름(매개변수1, 매개변수2):
수행할 코드
함수이름(인수1, 인수2)
def add(a, b):
print(a + b)
add(1, 2)
x = 6
y = 3
add(x, y)
n1 = int(input('첫번째 수를 입력하세요: '))
n2 = int(input('두번째 수를 입력하세요: '))
add(n1, n2)
## 매개변수(입력값), 반환값(출력값)이 1개인 함수
<형식>
def 함수이름(매개변수1, 매개변수2):
수행할 코드
return 반환값(출력값)
결과함수 = 함수이름(인수1, 인수2)
def add(a, b):
return a + b
print(add(1, 2)) # 함수 호출 후 print()문으로 결과를 본다
n1 = add(10, 20)
print(n1)
## 매개변수(입력값), 반환값(출력값)이 2개 이상인 함수
<형식>
def 함수이름(매개변수1, 매개변수2):
수행할 코드(있으면)
return 반환값1, 반환값2
결과변수1, 결과변수2 = 함수이름(인수1, 인수2)
def add_sub(a, b):
return a + b, a - b
x, y = add_sub(1, 2)
print(x, y, sep=', ')
print(add_sub(10, 20))
## 디폴트 매개변수(매개변수에 초깃값 부여) - 기본 매개변수
def info(name, age, address='비공개'):
print('이름:', name)
print('나이:', age)
print('주소:', address)
info('네오', 25)
print()
info('프로도', 25, '제주도')
## 키워드 인수 : 각각의 매개변수가 어떤 용도인지 알기 어려울 때 사용
def info(name, age, address):
print('이름: ', name)
print('나이:', age)
print('주소:', address)
print()
info('라이언', 20, '대구') # 일반적인 호출 방식
info(name='어피치', age=30, address='부산') # 키워드 인수(순서상관 X)
## 가변 매개변수 : 매개변수(입력값)의 개수를 정확히 모를 때
<형식>
def 함수이름(*args):
수행할 코드
함수이름(필요한 인수만큼 입력)
def adder(*args):
print(f'{args}의 합은 {sum(args)}입니다')
adder(1, 2)
def add_mul(choice, *args): # 가변 매개변수를 맨 뒤로
if choice == 'add':
answer = 0 # 합계를 구할 변수
for i in args: # args의 개수만큼 반복
answer += i
elif choice == 'mul':
answer = 1
for i in args:
answer *= i
return answer # 결과로 나온 answer을 반환한다
a = add_mul('add', 1, 2, 3)
print(a)
b = add_mul('mul', 1, 2, 3, 4)
print(b)
Ex)
def cfmc(money, pick):
print(f'{money}원의 {pick}을 선택하셨습니다')
menu = {
'아메리카노': 1000,
'카페라떼': 1500,
'카푸치노': 2000
}
if pick not in menu:
print(f'{pick}은 판매하지 않습니다')
return money, '없는 메뉴'
elif menu[pick] > money:
print(f'{pick}은 {menu[pick]}원입니다')
return money, '금액 부족'
else:
return money-menu[pick], pick
order = input('커피를 선택하세요(아메리카노, 카페라떼, 카푸치노) >> ') # 맨 위로 가도 실행 가능
pay = int(input('얼마를 내시겠습니까 >> '))
change, coffee = cfmc(pay, order)
print(f'거스름돈 {change}원, 커피 : {coffee}')
## 지역 변수 / 전역 변수
지역 변수: 한정된 지역(함수)
전역 변수: 프로그램 전체, 예약어-global 사용
# ex)
a = 200 # 전역변수
def func1():
a = 10 # 지역 변수
print('func1 함수에서의 a의 값:', a)
def func2():
print('func2 함수에서의 a의 값:', a)
func1()
func2()
# ex) 전역 변수의 값을 변경해야 하는 경우
a = 0
def f():
global a # 전역 변수 a를 가리킨다
a = 10 # 전역 변수 a의 값을 10으로 변경
print('함수호출 전 a:', a)
f() # 함수 호출
print('함수호출 후 a:', a)
'학부 자료 > Python' 카테고리의 다른 글
[Python] 파이썬 기초 11/20, 모듈, 파일 입출력 (2) | 2023.11.07 |
---|---|
[Python] 파이썬 기초 10/20, 람다 표현식(lambda expression) (0) | 2023.11.07 |
[Python] 파이썬 기초 8/20, 시퀀스 내장 함수, 메소드 (0) | 2023.11.07 |
[Python] 파이썬 기초 7/20, 조건문 반복문 3, 리스트 내포(리스트 컴프리헨션), 내장함수 (0) | 2023.11.07 |
[Python] 파이썬 기초 6/20, 조건문 반복문 2 (0) | 2023.11.07 |