함수란?
특정한 기능을 수행하는 프로그램 단위이다.
파이썬에서의 함수는 사용자 정의 함수와 내장 함수로 나누어진다.
함수 선언 및 호출
# 함수 선언
def a ():
print("hello") # 들여쓰기 주의
a() # 함수 호출
# "hello"
파이썬에서 함수 선언 할 때 주의점은 들여쓰기다. 함수를 선언하고 함수에 포함될 코드는 들여쓰기를 사용하여 작성한다.
다른 언어에서도 마찬가지지만, 함수 정의와 호출은 다르다.
함수를 def ~~를 하면 함수를 만들고, 선언 하는 것으로, 실행이 되지 않는다.
선언한 함수를 실행하기 위해서는 호출을 해야하는 데, 호출을 하는 방법은 함수명() 이다.
함수의 인자 이용
기본적인 인자는 아래와 같이사용한다.
# 리턴이 있는 함수 선언
def add(a, b):
return a + b
result = add(3, 2) # 결과를 result에 저장
print(result) # 5
인자 값이 넘어오지 않을 경우의 기본 인자 값을 설정 할 수도 있다.
def self (name = "피노"):
return "안녕하세요! 저의 이름은 " + name + " 입니다. "
# 인자가 없는 호출
print(self()) # 안녕하세요! 저의 이름은 피노 입니다.
# 인자가 있는 호출
print(self("감자")) # 안녕하세요! 저의 이름은 감자 입니다.
인자의 순서도 지정이 가능하다.
def self (name, dream):
return name + "의 꿈은 " + dream + " 입니다."
print(self(dream = "개발자", name = "피노"))
# 피노의 꿈은 개발자 입니다.
가변인자 *args
가변인자란 인자의 개수가 변할 수 있거나 미정이라는 것이다.
가변 인자를 사용하게 되면, 인자는 튜플로 넘어온다.
def student(*names):
for a in names:
print("팀원 : " + a)
student("피노")
print("---------------")
student("철수", "영희")
print("---------------")
student(*["철수","영희", "맹구"])
# 팀원 : 피노
# ---------------
# 팀원 : 철수
# 팀원 : 영희
# ---------------
# 팀원 : 철수
# 팀원 : 영희
# 팀원 : 맹구
*의 의미는 튜플이나 리스트를 풀어서 가변 인자 형태로 변경하는 것으로, 함수 선언에서 가변 인자를 받고 싶다면 *를, 함수 호출 때, 리스트 인자로 넣고 싶다면 리스트 앞에도 *를 붙이면 된다
임의의 키워드 인자 **kwargs
딕셔너리를 인자로 받고 싶을 때 사용한다.
# 딕셔너리를 받는 함수 sports
def sports(**sports):
for key in sports:
# key를 기준으로 순회하며, key를 이용한 value 추출도 가능
print(key + " : " + sports[key])
sportsList = {"구기" : "축구", "격투기" : "복싱", "맨몸" : "수영"}
sports(**sportsList)
# 구기 : 축구
# 격투기 : 복싱
# 맨몸 : 수영
지역 변수와 전역 변수
지역 변수는 함수 내부에서 선언된 함수를 의미하며, 함수 밖에서 사용이 되지 않는다.
name = "피노" # 전역 변수 name
def hello ():
name = "김인후" # 지역 변수 name
print(name)
hello() # 김인후
'Language > Python' 카테고리의 다른 글
[Python] 람다 함수 (0) | 2022.06.12 |
---|---|
[Python] 딕셔너리 (0) | 2022.06.12 |
[Python] 리스트(2) (0) | 2022.06.06 |
[Python] 리스트(1) (0) | 2022.06.06 |
[Python] requests와 json을 이용한 http 통신하기. (0) | 2022.06.04 |