본문 바로가기
Programming/Python

파이썬 함수

by Tarake 2024. 8. 25.

함수의 기본


def myfunction():
    print("Hello")

함수는 파이썬에서 제공하지만 사용자가 직접 만들어서 사용할 수 있습니다.

 

myfunction()

함수는 선언만 해서는 사용할 수 없습니다. 그래서 함수를 사용하기 위해서는 함수를 호출해야 합니다.

 

def myfunction(args):
    print(args)

myfunction("Emil")

함수는 호출하면서 데이터를 전달할 수 있습니다. 이를 매개변수라고 합니다.

def myfunction(*kids):
    print(kids[2])

myfunction("Emil", "Tobias", "Linus")

매개변수는 선언한 매개변수의 수 만큼 함수를 호출할 때 제공해야합니다. 많거나 적어서는 오류가 발생하는데 *매개변수는 가변 매개변수로 리스트 형식으로 매개변수를 받아옵니다.

def myfunction(child3, child2, child1):
    print(child3)

myfunction(child1 = "Emil", child2 = "Tobias", child3 = "Linus")

매개변수는 함수에서 선언한 순서대로 입력되지만 사용자가 순서를 정해줄 수 있습니다.

def myfunction(**kid):
    print(kid["lname"])

myfunction(fname = "Tobias", lname = "Refsnes")

함수의 전달되는 개수를 모를 때는 ** 두 개를 사용해서 전달 받을 수 있습니다.

def myfunction(country = "Norway"):
    print(country)
  
my_function("India")
my_function()

매개변수에 값을 지정할 수 있습니다. 매개변수를 전달받았을 경우에는 전달받은 매개변수를 사용하고 전달받지 못하면 선언한 매개변수의 값을 사용합니다.

def myfunction(food):
    for x in food:
        print(x)

fruits = ["apple", "banana", "cherry"]

myfunction(fruits)

리스트 튜플 셋 딕셔너리 같은 자료구조를 매개변수로 전달할 수 있습니다. 함수 내부에서 동일한 데이터 유형으로 처리됩니다.

def myfunction(x):
    return 5 * x

print(myfunction(3))

함수는 return문을 사용해서 값을 반환할 수 있습니다.

def myfunction():
    pass

함수의 경우 내용을 비우면 오류가 발생할 수 있습니다. 이를 해결하기 위한 키워드로 pass를 사용하면 함수만 선언되고 아무런 동작도 하지 않습니다.

 

변수의 스코프


변수는 지역 변수와 전역 변수가 존재합니다.

 

지역 변수

한정된 지역에서만 사용되는 변수로 함수 내에서 선언된 변수는 다른 함수에서는 사용할 수 없습니다.

 

전역 변수

함수 밖에서 선언된 변수로 어느 함수에서나 접근과 사용이 가능한 변수입니다.

 

global 예약어

함수 안에서 선언한 변수를 전역 변수처럼 사용할 수 있게 해주는 예약어 입니다.

def fun():
    global a
    a = 10

def fun2():
    print(a)

함수 안에서는 지역 변수처럼 사용하지만 함수가 끝나면 전역 변수가 됩니다. 따라서 fun2()에서 a를 사용해도 오류가 발생하지 않습니다.

모듈


모듈은 함수의 집합으로 만든 함수를 다른 프로그램에서도 사용할 수 있습니다.

# 모듈 파이썬 파일 A.py
def fun1():
    pass
def fun2():
    pass

이런식으로 저장된 파이썬 파일을  다른 파이썬 파일에서 호출이 가능합니다.

# B.py 파일
import A
fun1()
fun2()
# C.py 파일
import A
fun1()
fun2()

이런 형식으로 다른 파이썬 파일을 불러와 함수를 사용할 수 있습니다.

 

모듈의 종류

모듈은 표준 모듈, 사용자 정의 모듈, 서드 파티 모듈로 나눌 수 있습니다.

표준 모듈은 파이썬에서 제공하는 모듈이고, 사용자 정의 모듈은 직접 만들어서 사용하는 모듈, 서드 파티 모듈은 회사나 단체에서 제공하는 모듈입니다.

 

패키지


모듈은 하나의 파이썬 파일에 함수가 여러 개가 들어간 것이라면 패키지는 여러 개의 모듈을 모아둔 폴더라고 할 수 있습니다. 

from 패키지명.모듈명 import 함수명

패키지를 호출할 때는 위의 형식으로 호출합니다.

 

람다 Lambda


lambda arguments : expression

x = lambda a : a + 10
print(x(5))
x = lambda a, b : a * b
print(x(5, 6))

람다 함수는 작은 익명 함수입니다.

람다 함수는 인수를 아무리 많이 받아도 되지만, 표현식은 하나만 가질 수 있습니다.

 

출처

W3school

 

W3Schools.com

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

 

'Programming > Python' 카테고리의 다른 글

파이썬 상속  (0) 2024.08.25
파이썬 문자열  (0) 2024.08.25
파이썬 리스트, 튜플, 딕셔너리  (0) 2024.08.25
파이썬 기초구문  (0) 2024.08.25