상세 컨텐츠

본문 제목

[Python] 함수 - function

Python/이코테

by Gopythor 2022. 6. 5. 20:21

본문

728x90
반응형
  • 함수(Function)란 특정한 작업을 하나의 단위로 묶어 놓은 것을 의미합니다.
  • 함수를 사용하면 불필요한 소스코드의 반복을 줄일 수 있습니다.

함수의 종류

  • 내장 함수: 파이썬이 기본적으로 제공하는 함수
  • 사용자 정의 함수: 개발자가 직접 정의하여 사용할 수 있는 함수

함수 정의하기

  • 프로그램에는 똑같은 코드가 반복적으로 사용되어야 할 때가 많습니다.
  • 함수를 사용하면 소스코드의 길이를 줄일 수 있습니다.
    • 매개변수: 함수 내부에서 사용할 변수
    • 반환 값: 함수에서 처리된 결과를 반환

 def 함수명(매개변수):

    실행할 소스코드

    return 반환 값

 

더하기 함수 예시

def add(a,b):
    print('함수의 결과:', a+b)
#함수의 결과: 10
add(3,7)

def add(a,b):
    return a+b

def subtract(a,b):
    return a-b

result = add(3, 7)
print(result)
#10

result = subtract(3, 7)
print(result)
#-4

파라미터 지정하기

  • 파라미터의 변수를 직접 지정할 수 있습니다.
    • 이 경우 매개변수의 순서가 달라도 상관이 없습니다.
def add(a,b):
    print('함수의 결과:', a + b)
#함수의 결과: 10
add(b = 3, a = 7)

global 키워드

  • global 키워드로 변수로 지정하면 해당 함수에서는 지역 변수를 만들지 않고, 함수 바깥에 선언된 변수를 바로 참조하게 됩니다.
a = 0
def func():
    global a
    a +=1

for i in range(10):
    func()

print(a)
#10

#값을 변경하거나 새로 대입하는 것이 아니면 global을 안써줘도 된다(그대로 출력 or 참조하는 경우).

def func():
  print(a)

func()
#10
def func():
    print(a+10)
func()
#20
array = [1,2,3,4,5]
def func():
    array.append(6)
    print(array)
func()
#[1,2,3,4,5,6]
  • 전역 변수로 선언된 리스트 개체에 내부 메소드를 호출하는 것은 오류없이 수행 가능.
array = [1,2,3,4,5]
def func():
    array = [3, 4, 5]
    array.append(6)
    print(array)
func()
#[3, 4, 5, 6]
print(array)
#[1,2,3,4,5]
  • 함수 내 선언된 지역변수와 전역 변수는 별개로 출력(참조)
  • 스코프 참조
array = [1,2,3,4,5]
def func():
    global array
    array = [3, 4, 5]
    array.append(6)
func()
print(array)
#[3, 4, 5, 6]
  • 전역변수 array를 참조 호출하기 때문에, array는 변경된 값 저장.

여러 개의 반환 값

  • 파이썬에서는 여러 개의 반환 값을 가질 수 있습니다.
def operator(a,b):
    add_var = a + b
    subtract_var = a - b
    multiply_var = a * b
    divide_var = a / b
    return add_var, subtract_var, multiply_var, divide_var

a, b, c, d = operator(7, 3)
print(a, b, c, d)

람다 표현식

  • 람다 표현식을 이용하면 함수를 간단하게 작성할 수 있습니다.
    • 특정한 기능을 수행하는 함수를 한 줄에 작성할 수 있다는 점이 특징입니다.
def add(a, b):
    return a + b

#일반적인 add() 메서드 사용
print(add(3,7))
#10

#람다 표현식으로 구현한 add()메서드
print((lambda a, b: a+b)(3,7))
#10

람다 표현식 예시: 내장 함수에서 자주 사용되는 람다 함수

array = [('홍길동', 50),('이순신', 32), ('아무개', 74)]
def my_key(x):
    return x[1]

print(sorted(array, key=my_key))
print(sorted(array, key=lambda x: x[1]))
#[('이순신', 32), ('홍길동', 50), ('아무개', 74)]
#[('이순신', 32), ('홍길동', 50), ('아무개', 74)]
  • 학생을 점수 순으로 오름차순 정렬
  • 내장 함수 중, sorted 이용 가능
  • 정렬기준 명시를 함수로 가능
  • 정렬 함수는 보통 한 번 이용하므로, 람다 표현식으로 사용 하는 경우가 많음.

람다 표현식 예시: 여러 개의 리스트에 적용

list1 = [1, 2, 3, 4, 5]
list2 = [6, 7, 8, 9, 10]

result = map(lambda a, b: a + b, list1, list2)

print(list(result))
#[7, 9, 11, 13, 15]
  • map 함수는 각각의 원소에 어떠한 함수를 적용하고자 할 때 사용됨.
728x90
반응형

관련글 더보기

댓글 영역