[파이썬/Python] 파이썬 독학하기 4일차 - 사용자 정의함수, 전역지역변수, 매개변수
2020. 8. 19.

주말과 공휴일에는 공부를 안하는 버릇이 또... 스터디카페라도 가야할듯

 

1.사용자 정의 함수

def 함수명 (매개변수) :
	함수내용...
    return 반환값

함수명은 변수명 규칙과 같다.

 

함수 호출하기

#큰수 찾아서 반환하는 함수
def find_max (a,b) :
	if a >= b :
    	max = a
    else :
    	max = b
    return max
    
m = find_max(1, 2)
n = find_max(10, 10)
print(m, n) # 2, 20 출력

 

인수, 반환값이 없는 함수도 만들 수 있다.

인수가 없는 경우 괄호를 빈칸으로 두기 ()

반환값이 없는 경우 return문이 없다.

 

반환값이 여러개인 경우 튜플로 묶어서 반환한다.

 

함수는 호출 전에 정의되어 있어야함.

main은 프로그램 시작점을 의미

 

 

2.전역변수와 지역변수

 

변수를 찾을 때 지역변수->전역변수 순으로 찾는다.

 

전역변수를 함수내에서 바꾸고자 하면 global선언이 필요함

def funtion() :
	a = 200
    
#main
a = 100
funtion()
print(a) #100출력

funtion의 a는 funtion함수의 지역변수이기 때문에 main의 a에 영향을 주지 않는다.

def funtion() :
	global a
	a = 200
    
#main
a = 100
funtion()
print(a) #200출력

global선언으로 funtion의 a는 전역변수이기 때문에 main의 a값을 변화시킬 수 있다.

 

 

함수에서 만든 지역변수를 전역변수로 바꿀때도 global선언을 이용한다

def funtion() :
	global a
    a = 100
    print(a) #100출력

#main
funtion()
print(a) #100출력

 

함수의 매개변수는 지역변수이다.

 

 

3.함수의 매개변수

mutable한 객체가 인수인 경우 (리스트, 집합, 사전) 원본이 변한다.

원본을 바꾸고 싶지 않다면 매개변수를 L[:] 또는 L[::]등과 같이 전달해야한다.

 

기본값이 있는 함수

함수를 호출할 때 인수를 넘겨주지 안하도 인수가 자신의 기본값을 취하는 기능

def funtion(a, b = 1) :
	return a + b

n = funtion(1)
print(n) #2출력

n2 = funtion(10, 10)
print(n2) #20출력

b에 인수를 전달하지 않으면 디폴트 밸류가 사용되고 인수를 전달하면 전달된 값이 사용된다.

주의점) 기본값이 있는 인수가 먼저 올 수 없다.

 

 

개인적으로 바쁜일이 있어가지고 함수 파트 쭉이어서 하고 싶었는데... 내일 마저 키워드인수, 가변인수, 모듈 등등 할 예정

myoskin