곧 공채시즌이라 이직을 위한 이력서 업데이트도 하면서 공부도 하려니 이번주는 정신이 없네요...ㅎㅎ

이번 주는 공부를 많이 못한 것 같아 아쉽습니다 🥲

매주 숙제 제출할 때 마다 족장님이 달아주시는 폭풍 칭찬이 쑥쓰럽기도 하고, 또 이번주도 꼭 해야지 라고 다짐하는 원동력이 되기도 합니당! ㅎㅎ 😎 (칭찬 조아..)

올해는 공부와 이직 두 마리 토끼를 다 잡을 수 있도록 열심히 해보겠습니다! 🫡


Chapter 05. 함수

[함수 만들기]

 

✏️ 함수 : '코드의 집합' 을 의미한다. 함수를 사용하는 것을 함수를 호출한다고 표현한다.

def 함수 이름():
      문장
# print 함수를 세번 수행하는 함수 print_test() 생성 후 호출
def print_test():
    print("안녕하세요")
    print("안녕하세요")
    print("안녕하세요")

print_test()

# 출력
안녕하세요
안녕하세요
안녕하세요

[선택 미션 : 매개변수, 기본 매개변수, 가변 매개변수에 대해 간략하게 정리하기]

 

✏️ 매개변수란?

함수를 호출할 때 괄호 사이에 들어가는 자료들을 매개변수라고 한다. 매개변수는 함수 생성 시 입력한다.

★ 함수 생성 시 매개변수를 만들면, 함수를 호출할 때 매개변수 자리에 입력한 값을 함수 내에서 사용할 수 있다.

★ 함수에 매개변수를 만들었는데, 호출 시 매개변수를 넣지 않거나 갯수를 다르게 넣은 경우 오류가 발생한다!

def 함수 이름(매개변수, 매개변수, ...):
      문장
# 매개변수 value, n 추가한 함수 생성
def print_test_number(value, n):
    for i in range(n):
        print(value)

print_test_number("테스트입니다", 3)

# 출력
테스트입니다
테스트입니다
테스트입니다

 

✏️ 가변 매개변수란?

매개변수의 개수가 변할 수 있다는 의미이며, 매개변수를 원하는 만큼 받을 수 있는 함수를 가변 매개변수 함수라고 한다.

가변 매개변수는 하나만 사용할 수 있으며, 가변 매개변수 뒤에는 일반 매개변수가 올 수 없다.

    ✔️ 가변 매개변수는 맨 뒤에 배치하고, 함수 내에서는 리스트처럼 사용한다.

def 함수 이름(매개변수, 매개변수, ... , *가변 매개변수):
      코드
def print_test_number(n, *value):
    for i in range(n):
        print(value)

print_test_number(3, "파이썬", "가변매개변수","테스트입니다")

# 출력
('파이썬', '가변매개변수', '테스트입니다')
('파이썬', '가변매개변수', '테스트입니다')
('파이썬', '가변매개변수', '테스트입니다')

 

✏️ 기본 매개변수란?

매개변수를 입력하지 않았을 경우에 대비해 매개변수에 들어갈 기본값을 지정할 수 있는데, 이를 기본 매개변수라고 한다. 

기본 매개변수 뒤에는 일반 매개변수가 올 수 없다.

def 함수 이름(매개변수매개변수=값):
      문장
def print_test_number(value, n=2):
    for i in range(n):
        print(value)

# 함수 호출 시 매개변수 n을 입력하지 않아서 기본값 2가 사용됨
print_test_number("테스트입니다")

#출력
테스트입니다
테스트입니다

✏️ 키워드 매개변수

기본적으로 가변 매개변수와 기본 매개변수 뒤에는 일반 매개변수가 올 수 없다. 파이썬에서는 매개변수 순서를 원하는 대로 입력하기 위해서 키워드 매개변수를 제공한다.

키워드 매개변수는  함수 호출 시 매개변수 이름을 지정해서 입력한다.

def 함수이름 (매개변수 a, 매개변수 b = 10):
       코드

# 함수 호출
함수이름(10, 매개변수 b = 20)  # 함수 호출 시 매개변수 이름을 지정해서 입력
def function_test(a, b=10, c=20):
        print("{}, {}, {}".format(a,b,c))

# 기본 매개변수만 사용
function_test(10,100,200)
>> 10, 100, 200

# 키워드 매개변수 사용
function_test(a=20, b = 0 , c = 10)
>> 20, 0, 10

# 키워드 매개변수 사용, 매개변수 순서 변경
function_test(c=1, a=2, b=3)
>> 2, 3, 1

# 키워드 매개변수로 일부 매개변수만 지정
function_test(9,c=11)
>> 9, 10, 11

 

★ 키워드 매개변수를 사용하여 필요한 매개변수에만 값을 전달할 수 있다.

 

[리턴]

 

함수를 실행하고 난 후 받아오는 결과를 리턴값(return value) 이라고 한다.

 

✏️ return 키워드

     ✅ 함수 내부에 사용하며, 함수를 실행했던 위치로 돌아가라는 뜻으로 함수가 끝나는 시점 의미한다.

     ✅ return 키워드만 사용 시 자료 없이 리턴하며, return 뒤에 자료를 입력하면 자료를 가지고 리턴한다.

# 자료 없이 리턴하는 예시
def function_1():
    print("첫번째 print")
    return    			# 3번 라인 까지만 수행하고 함수가 종료된다.
    print("두번째 print")

function_1()

# 출력
첫번째 print

 

# 자료를 가지고 리턴하는 예시
def function_test2():
    return 100		# 100 을 반환한다.

value = function_test2()
print(value)

# 출력
100

 

✏️ 함수의 활용

      ✅ 일반적으로 함수 내에서 값을 만들어 리턴하는 형태로 사용

def 함수(매개변수):
      변수=초기값
      # 여러가지 처리
      # 여러가지 처리
      return 변수

     

[기본 미션 : p.287 [직접 해보는 손코딩: 범위 내부의 정수를 모두 더하는 함수] 실행 후 코드가 입력된 화면 및 실행 결과 화면 캡쳐하기 ]


[함수 고급]

 

✏️ 튜플(tuple) : 리스트와 비슷한 자료형으로, 한번 결정된 요소는 바꿀 수 없다.

변수 = (데이터, 데이터, 데이터, ...)

# 주의할 점 : 요소를 하나만 가지는 튜플은 아래와 같이 선언한다!
변수 = (데이터, )
# 튜플 선언
tuple_test = (1,2,3)

print(tuple_test[0])	# 1
print(tuple_test[1])	# 2
print(tuple_test[2])	# 3

 

 ✅ 리스트와 튜플은 다음과 같은 형태로 변수를 선언하고 할당할 수 있다. 또한 튜플은 괄호를 생략할 수도 있다.

# 리스트의 요소 a,b 에 각각 1, 2 할당
[a, b] = [1, 2]

# 튜플의 요소 c,d에 각각 10,20 할당
(c,d) = (10,20)
#리스트 할당 구문
[a,b] = [1,2]
print(a)		# 1
print(b)		# 2

# 튜플 할당 구문
(c,d) = (10,20)
print(c)		# 10
print(d)		# 20

# 괄호가 없는 튜플
tuple_test = 1,2,3,4,5

print(tuple_test)		# (1, 2, 3, 4, 5)
print(tuple_test[2])		# 3

# 괄호가 없는 튜플
a,b,c = 10, 20, 30
print(a)			# 10
print(b)			# 20
print(c)			# 30

 

 ✅ 함수의 리턴에 튜플을 사용하면 여러개의 값을 리턴하고 할당할 수 있다.

# 여러개의 값 리턴
def test():
    return (10,20)

# 리턴한 값 각각 a,b에 할당
a,b = test()

print(a)	# 10
print(b)	# 20

 

✏️ 람다 : 매개변수로 함수를 전달하기 위해 간단하게 1회용 함수를 선언하는 방법

     ✅ 매개변수로 함수를 전달하기 위해 함수 구문을 작성하는 것이 번거롭기 때문에 파이썬에서 제공하는 방법

     ✅ 람다를 사용하면 코드를 깔끔하게 작성할 수 있고, 매개변수로 넣어진 함수를 파악하기도 쉽다.

lambda 매개변수 : 리턴값

 

# 람다 함수 선언
lambda_test = lambda x : x < 3

list_a = [1,2,3,4,5]

# 람다는 매개변수로 바로 넣을 수 있다.
output_a = map(lambda x : x * x, list_a)
print(list(output_a))		# [1, 4, 9, 16, 25]

+ Recent posts