[Python] 11.함수(Function)
- Develop/Python
- 2020. 12. 30.
□ 사전 습득 지식 : 독 스트링(주석 묶기)
함수에는 보통 함수 명세서라 부르는 주석이 있습니다. 이곳에는 함수의 사용방법, 파라미터등을 설명합니다.
의무는 아니지만 팀으로 개발하는 소스라면 누구든지 사용할 수 있도록 이 주석을 잘 작성해두어야 합니다.
▶︎ 사용방법
위 아래로 "를 3번 입력합니다.
예제 :
"""
* 독스트링(주석) 시작
주석 내용..
주석 내용..
* 독스트링(주석) 끝
"""
■ 함수
함수 사용방법을 알아봅니다.
▶︎ 사용방법
def 함수명(파라미터)
▶︎ 예제 코드
• 예제 1 :
코드 :
# 함수 선언
def call_member(member, each_name):
"""
classroom_roaster, tuple
who_is_here, tuple
classroom_roaster(출석부)에 있는 모든 사람이
who_is_here(현재 교실에 있는 사람 목록에 들어 있는지 검사한다.
학생이 who_is_here에 있는 경우에만 그 이름을 출력한다.
Returns "출석 부르기 끝"
"""
for name in member:
if name in each_name:
print(name)
return "이름부르기 끝"
# 함수 호출
member = {"민수", "혜영", "진호", "민수"}
call = {"진호", "민수"}
print(call_member(member,call))
결과 :
진호
민수
출석부르기 끝
• 예제 2 :
코드 :
# 함수 선언
def word_length(word1, word2):
word = word1 + word2
return len(word)
# 위의 return이 수행시 아래부터 아무것도 출력되지 않습니다. 즉 의미가 없는 코드가 됩니다.
print("이 문자열은 출력되지 않습니다.")
# 함수 호출
length1 = word_length("Julian","Amber")
length2 = word_length("Robert","Ciser")
length3 = word_length("Albert","John")
# 출력
print("한명의 이름은", length1, "의 길이를 가지고 있습니다.")
print("다른사람 이름은", length2, "의 길이를 가지고 있습니다.")
print("마지막 이름은", length3, "의 길이를 가지고 있습니다.")
결과 :
한명의 이름은 11 의 길이를 가지고 있습니다.
다른사람 이름은 11 의 길이를 가지고 있습니다.
마지막 이름은 10 의 길이를 가지고 있습니다.
• 예제 3 : print로 함수 호출 및 결과 바로 출력
코드 :
def make_sentence(who, what):
full_movement = who + " " + what
return full_movement
who = "민수"
what = "집으로 가기"
print(make_sentence(who, what))
결과 :
민수 집으로 가기
• 예제 4 : return문이 없을시 기본적으로 나오는 메세지
코드 :
def non_return_test(value):
print("----------------")
print(value)
print("----------------")
# 리턴값이 없으면 마지막엔 None이 붙습니다.
print(non_return_test("No 리턴값 테스트"))
결과 :
----------------
No 리턴값 테스트
----------------
None
■ 함수의 다중값 리턴 받기
함수의 여러 리턴값을 한번에 받는 방법입니다.
▶︎ 사용방법
(a,b)= function(a,b)
▶︎ 예제 코드
코드 :
def add_sub(n1, n2):
add = n1 + n2
sub = n1 = n2
return (add, sub)
(a,b) = add_sub(3,4)
print(a,b)
결과 :
7 4
■ 함수안의 함수 사용방법
함수안에 함수를 선언하여 다루는 방법을 알아봅니다.
▶︎ 예제 코드
• 예제 1 :
코드 :
def add_one(a,b):
x = a+1
y = b+1
# 함수안에 함수를 선언합니다.
# 두번째 실행.
def mult(a,b):
return a*b
# 함수안의 함수를 호출합니다.
# 먼저 실행.
return mult(x,y)
a = 1
b = 2
x = 5
y = 6
print(add_one(x,y))
print(add_one(a,b))
print(add_one(x,a))
print(add_one(y,b))
결과 :
42
6
12
21
■ 함수를 매개변수로 사용하기
함수를 매개변수로 사용하는 방법을 알아봅니다. 파라미터 없는 함수를 넘길때는 함수뒤에 붙는 ()를 붙이면 안됩니다.
▶︎ 예제 코드
코드 :
def berger(kind_of_sandwich):
print("------")
print(kind_of_sandwich())
print("------")
# return이 없으므로 반환할게 없습니다. 그래서 결과에 보면 마지막에 None이 출력됩니다..
def bigmac():
my_bigmac = "패티2개\n상추\n소스\n피클"
return my_bigmac
def oldburger():
my_oldburger = "토마토\n패티\n양파\n특별한소스"
return my_oldburger
print(berger(bigmac))
print(berger(oldburger))
결과 :
------
패티2개
상추
소스
피클
------
None
------
토마토
패티
양파
특별한소스
------
None
■ 함수안에 함수 호출
함수안에 함수를 호출하는 방법입니다.
▶︎ 예제 코드
코드 :
def def_1():
print("Repeat test : ")
def def_2(n):
print("No", n, "times...")
def def_3(m):
print("...and no", m, "more times")
for i in range(n+m):
print("no")
return def_3
return def_2
# def_1()(2)(5)에서 맨 왼쪽 ()은 def_1함수를 호출하고 (2)는 def def_2(n) 를 대입합니다.
# (5)는 def def_3(m)를 대입합니다.
# 즉 순서대로 내부적으로 대입됩니다.
def_1()(2)(5)
결과 :
Repeat test :
No 2 times...
...and no 5 more times
no
no
no
no
no
no
no
■ print함수 확장 사용 - 1
print함수에는 sep와 end라는 파라미터가 더 있습니다. sep는 받은 value 사이에 삽입할 문자열을, end에는 마지막 value 뒤에 붙이고 싶은 value를 적어주면 반복해서 값이 출력됩니다. 참고로 end의 기본값은 newline이어서 파이썬에서는 print()함수만 실행해도 줄바꿈이 됩니다. 예제를 통해 한번 알아보도록 하겠습니다.
▶︎ 사용방법
print(문자열,...,sep = '출력 문자마다 붙일 문자', end = '마지막에 붙일 문자')
▶︎ 예제코드
코드 :
# apple1, apple2는 마지막마다 사과가 붙고 마지막인 apple3에는 나무가 붙습니다.
print('apple1', 'apple2', 'apple3', sep = ':사과', end = ':나무')
결과 :
apple1:사과apple2:사과apple3:나무
■ print 함수 format 출력
출력할 포멧을 작성해 놓고 변수나 명령의 결과에 대해 출력할 부분은 {}으로 작성해 놓습니다. 그리고 뒤에 format 함수를 이용해서 {}이 대체될 변수나 명령을 입력합니다. 값은 앞에서부터 순서대로 대입됩니다.
▶︎ 예제코드
print('출력문자 {} 출력문자 {} 출력문자 {}'.format(변수 혹은 명령어, 변수 혹은 명령어...))
▶︎ 사용방법
코드 :
name = “bob”
food = “apple”
print('{}은 {}을(를) 좋아합니다.'.format(name, food))
결과 :
bob은 사과을(를) 좋아합니다
■ print 파일 출력
print()함수는 기본적으로 objects를 텍스트 스트림 file로 출력하는 기능을 하는데, file이라는 키워드 인자에 write(string) 메서드가 포함된 파일 객체를 설정해주면 출력하는 것 뿐만 아니라 파일에 내용을 쓰는 것도 가능해집니다.
▶︎ 예제코드
코드 :
# 코드 실행후 test1.txt 파일을 열어보면 "Hello World!"가 정상적으로 입력된 것을 확인할 수 있습니다.
with open('test1.txt', 'w') as f:
print('Hello World!', file=f)
결과 :
test1.txt 파일 오픈 후 내용 확인.
■ 파이선 다른 회차
[Python] Intro : Very Quick Python : https://myinfrabox.tistory.com/169
[Python] 01.Python 준비 : https://myinfrabox.tistory.com/170
[Python] 02.Python 스크립트 작성 방법 : https://myinfrabox.tistory.com/171
[Python] 03.변수 선언 및 할당 : https://myinfrabox.tistory.com/172
[Python] 04.문자열 처리 : https://myinfrabox.tistory.com/173
[Python] 05.조건문 : https://myinfrabox.tistory.com/174
[Python] 06.반복문 : https://myinfrabox.tistory.com/175
[Python] 07.튜플(Tuple) : https://myinfrabox.tistory.com/176
[Python] 08.리스트(List) : https://myinfrabox.tistory.com/177
[Python] 09.사전(Dictionary) : https://myinfrabox.tistory.com/178
[Pytho] 10.set : https://myinfrabox.tistory.com/179
[Python] 12.클래스(Class) : https://myinfrabox.tistory.com/181
[Python] 13.외부 클래스 사용하기 : https://myinfrabox.tistory.com/182
[Python] 14.파일처리 : https://myinfrabox.tistory.com/183
[Python] 15.MySQL Database : https://myinfrabox.tistory.com/184
'Develop > Python' 카테고리의 다른 글
[Python] 13.외부 클래스 사용하기 (0) | 2020.12.30 |
---|---|
[Python] 12.클래스(Class) (0) | 2020.12.30 |
[Pytho] 10.set (0) | 2020.12.30 |
[Python] 09.사전(Dictionary) (0) | 2020.12.30 |
[Python] 08.리스트(List) (0) | 2020.12.30 |