[2주차] 파이썬 중급: 함수에 관하여 (지역변수, 중첩함수, lambda)

Gracie·2024년 4월 10일
0

python에서 method(함수)란?

일련의 코드블록을 그룹화하여 특정 동작을 수행하는데 사용되는 구문으로
특정 기능을 재사용하기 위해서 사용한다.


함수의 종류

1. 내장함수

	print('Hello python!')
    str = input() 
    num = int(str)
    
    listVal = [1,4,9,10]
    totalList = sum(listVal) # 24
    maxList = max(listVal) #10
    minList = min(listVal) #1
    powVal = pow(2,3) #거듭제곱 함수 > 8
    roundVal = round(3.145, 2) #반올림 함수 > 3.15

2. 사용자 함수

  • def 키워드를 사용하여 함수를 선언할 수 있음
  • 필요에 따라 매개변수를 가질 수 있고, 실행 후 결과값(return)을 반환할 수 있음
#선언부
def cal(a, b): #매개변수: a, b
	return a + b    
num1 = 3
num2 = 5
#호출부
num3 = cal(num1, num2)
#인수: num1, num2 > 매개변수 a, b에 각각 할당됨
#매개변수와 인수의 갯수는 일치해야 함
print(f'num1 + num2 = {num3}')

매개변수의 개수가 정해지지 않은 경우
매개변수 앞에 *을 이용 > 변수가 tuple형으로 할당됨

def printNum(*numbers):
    for i in numbers:
        print(i,end='')
    print('')
printNum(10) #10
printNum(10, 20) #1020
printNum(10, 20, 30) #102030

함수 실행결과 반환 (return)

  • return 키워드를 이용하면 함수 실행결과를 호출부로 반환할 수 있음
  • 함수가 return을 만나면 실행 종료
def divNum(n1, n2):
	if n % 2 == 0:
    	return '짝수'
	else:
    	return '홀수'
    return result
	print('실행 안 됨') #해당 구문 실행 안됨
print(divNum(5))

전역변수

  • 함수 밖에서 선언된 변수로, 함수 안에서 사용은 가능하지만 수정할 수 없음
num_out = 10
def printNumbers():
	num_out = 20
    print(num_out)

printNumbers() #20이 출력됨
print(num_out) #10이 출력됨

지역변수

  • 함수 안에 선언된 변수로 함수 안에서만 사용 가능
def printNumbers():
	num_in = 20
    print(num_in)
print(num_in) # 실행시 not defined 오류 발생

global 키워드

  • global을 사용하면 함수 안에서도 전역변수의 값 수정 가능
num_out = 10
def printNumbers():
	global num_out
	num_out = 20
	print(num_out)
printNumbers() #20이 출력됨
print(num_out) #20이 출력됨

중첩함수

  • 함수 안에 함수가 있는 구조
  • 내부함수는 함수 밖에서 호출할 수 없음
def out_function():
    print('out function called!')

    def in_function():
        print('in function called!')
    in_function()

out_function()
in_function() #not defined 오류 발생!!

lambda

  • lambda키워드를 사용해서 함수 선언을 간단하게 할 수 있다.
  • 코드가 간단한 함수는 lambda 사용시, 효율적으로 코딩 가능!

1) def키워드 사용

def calculator(n1, n2):
	return n1 + n2
print(calculator(10, 20) #출력값: 20

2) lambda키워드 사용

def calculator = lamda n1, n2: n1 + n2
#lamda 매개변수 : return 값
print(calculator(10, 20)) #출력값: 20
profile
비전공자의 Data Analyst 도전기 🥹✨

0개의 댓글