다시 사용하기 위해서 미리 선언 그리고 나중에 호출
반복되는 부분을 캐치하고 함수를 만들어보자
함수 선언부가 호출부보다 위쪽에 있어야 함
- def greet(name): # 여기서 선언부 name은 **매개변수**라고 함
print(f"hello, {name}")
- greet("hannah") # 여기서 호출부 **hannah**는 인자값 또는 인수라고 함
def add(a, b): # **선언부 a, b (매개변수 : parameter)**
return a + b
result = add(1, 2) # **호출부 1,2 (인자, 인수 : argument)**
return은 값을 돌려주기 위해서 씀 (이 값을 사용하고 싶을 때)
보통 변수에 실행 결과를 담아서 사용
반면 print는 값을 보여주기만 함
def greet(name="Guest"): **# name값이 비어서 실행된다면 Guest룰 name으로 줘라**
print(f"Hello, {name}")
greet("Hannah") # Hello, Hannah
greet() # Hello, Guest
쓰는 이유: 받을 인수의 값이 여러 개인데, 정해져있지 않을 때
def add(a, b, c):
return a + b + c
result = add(1,2,3)
3개의 값만 넣을 수 있음
def add_(*nums):
return sum(*nums)
add_(1, 2)
add_(1, 2, 3)
add(1, 2) 이것도 되고, add(1, 2, 3) 이것도 됨
즉, 개수가 상관 없어짐
def introduce(**kwargrs): # 딕셔너리 형태
print(kwargrs)
introduce(name = "Kim", age = 20, classes = "A") # 값을 여러개 넣을 수 있음
딕셔너리 형태의 가변인자라고 보면 됨
연습할 때 함수를 보고 이 함수 가변인자로 바꿀 수 있나를 보는 습관을 만들면 좋음
return "kim", 20 이렇게 return에 여러 개의 값이 들어갈 수도 있음
x = 15 # 수정을 잘 하지 않는 값 (전역변수)
def func():
x = 10 # 범위가 함수 내부가 됨 (지역변수)
print(x) # 10 (함수 내부 값)
print(x) # 15 (함수 외부 값)
바깥의 변수를 가져와서 변경이 가능
count = 0 # 전역변수 count
def increase():
global count # count는 함수 밖의 전역변수임을 선언
count += 1 # 밖의 count를 값을 1 증가 시켜서 1이 됨
def decrease():
global count
count -= 1
global 키워드를 쓰면 업데이트가 가능하지만, 전역변수는 함수 내부에서 수정하지 않는 것이 좋다.
미리 선언 하고 다른 파일에서 사용하고 싶을 때 사용 가능