1. 함수
▶ 함수를 호출(할때 괄호 내부에 여러가지 자료를 넣음 : 이것이 매개변수) > 나오는 결과 : 리턴값
▶ 함수를 선언(정의) >>>> 함수 호출(불러오기)
a. def 함수 이름 (매개변수): def_함수를 정리한다는 의미, 고정 함수이름_함수를 만드는, 함수의 변수
문장
def print_3_times(): #함수의 선언(정의)↓
print("안녕")
print("안녕")
print("안녕") #함수의 선언(정의)↑
print_3_tiems() #함수 호출
b. 매개변수 Parameter, 인수 argument
- Parameter : the variable listed inside the parentheses in the function definition.
▶인풋으로 제공되는 데이터 중 하나, 함수를 정의할때 소괄호 안에 들어가는 변수.
▶입력으로 전달된 값을 받는 변수로 사용함. ex. def test(value)
- Argument : the value that is sent to the function when it is called.
▶인풋으로 제공되는 여러 데이터들, 매개변수로 전달해주는 데이터
▶함수를 호출할때 전달하는 입력값
※ TypeError : 함수를 호출할때 매개변수, 인수를 넣지 않거나 덜넣거나 더 많이 넣으면 에러뜸
2. 매개변수
2-a. 가변 매개변수 / Arbitrary Arguments / *args
▶인수를 모두 받을 수 있는 함수,
▶가변 매개변수 뒤에는 일반 매개변수가 올 수 없음.
▶가변 매개변수는 하나만 사용할 수 있음.
2-b. 기본 매개변수 / Default Parameter Value
▶매개변수 = 값
▶매개변수를 입력하지 않았을 경우 매개변수에 들어가는 기본값
▷입력했다면 다시 설정해준 값으로 덮어져버림.
▶뒤에는 일반 매개변수가 올 수 없음.
def print_n_times(*v,n=2): # '*v'가 가변매개변수
#n번 반복합니다.
for i in range(n):
#values는 리스트처럼 활용합니다.
for value in v:
print(value)
#단순한 줄바꿈
print()
#함수 호출합니다.
print_n_times("안녕하세요","즐거운","파이썬프로그래밍",n=3) #'n=3'가 기본 매개변수
2-a&b. when (기본 매개변수, 가변 매개변수)
def print_n_times(n=2, *values):
#n번 반복합니다.
for i in range(n):
#values는 리스트처럼 활용합니다.
for value in values:
print(value)
#단순한 줄바꿈
print()
#함수를 호출합니다
print_n_times("안녕하세요", "즐거운", "파이썬")
▶기본 매개변수의 의미가 사라짐. = 오류남: 왜냐면 range는 숫자만 받는데 인수가 "안녕하세요"니까
▷ 하지만 인수를 숫자로 하거나 n이 들어가는 range를 str을 받을 수 잇는 걸로 바꾼다면 실행은 되겠지
2-b&a. when (가변매개변수, 기본 매개변수)
def print_n_times(*values, n=2):
#n번 반복합니다.
for i in range(n):
#values는 리스트처럼 활용합니다.
for value in values:
print(value)
#단순한 줄바꿈
print()
#함수를 호출합니다
print_n_times("안녕하세요", "즐거운", "파이썬")
▶ *values가 가변 매개변수이기 때문에 인수값을 다 받아서 3가지 모두 받음.
▶range(n) 이기 때문에 n=2이므로 2번 돌리게됨.
2-c. 그래서 두개다 돌리고 싶다면? 키워드 인수/ keyword Arguments
▶매개변수 이름을 지정해서 입력하는 인수(key랑 value 둘다 보낼수 있음 key=value)
def print_n_times(*values, n=2):
#n번 반복합니다.
for i in range(n):
#values는 리스트처럼 활용합니다.
for value in values:
print(value)
#단순한 줄바꿈
print()
#함수를 호출합니다
print_n_times("안녕하세요", "즐거운", "파이썬", n=3)
▶ 맨 마지막 줄 n=3 이 바로 이것 / n을 새로 값을 정해줌
3. 리턴, return value : 함수를 실행한 후 나온 결과
3-a. 함수 내부에서는 return 키워드를 사용할 수 있음.
▶ 함수를 실행했던 위치로 돌아가거나 함수가 끝나는 위치로 가거나 : 만나면 함수가 종료됨.
#함수 정의
def return_test():
print("A위치입니다.")
return #리턴함다
print("B위치입니다.")
#함수 호출
return_test()
'B위치입니다'는 앞에 return 때문에 실행안함. A위치까지만 실행하고 종료.
3-b. 자료와 함께 리턴 : 자료를 가지고 돌아감
#함수 정의
def return_test():
return 100
#호출
value = return_test()
print(value)
▶ 함수호출 2줄이 print(return_test()) 랑 같지만 권장은 안함
: 왜냐하면 이렇게 하면 함수가 위로 올라가서 3번 일하게 되어 시간이 오래걸림. 하지만 변수로 잡으면 1번만 함수 일함
3-c. 아무것도 리턴하지 않았을때 : None 출력, 파이썬에서는 "없다"임.
4. 기본적인 함수 활용
def 함수(매개변수):
변수 = 초깃값
#여러 가지 처리
#여러 가지 처리 ( 여러번 ㄱㄴ)
return 변수
▶ 주로 이러한 형태로 작성됨.
#함수 선언
def sum_all (start,end):
#변수 선언
output= 0
#반복문을 돌려 숫자를 더합니다.
for i in range(start, end +1):
output += i
#리턴함다
return output
#함수 호출
print("0 to 100:", sum_all(0,100))
print("50 to 100:", sum_all(50, 100))
#기본매개변수, 키워드 매개변수 활용해봄
def sum_all (start=0, end=100, step=1):
output = 0
for i in range(start, end+1, step):
output += i
return output
print("A.", sum_all())
▶ 맨 마지막 줄 sum_all() 빈칸으로 적어도 매개변수가 다 채워져있기때문에 ㄱㅊㄱㅊ
▶ 예시 하나더
def mul(*values):
output = 1
for i in values:
output *= i
print(output)
return output
print(mul(5,7,9,10))
▶ 중간에 print(output)이 있어서 하나하나 곱해질때마다 진행사항이 보임.
▶ 초기값 설정할때 덧셈식은 0, 곱셈식은 1