Python 함수
함수
- 기능
- 하나의 특별한 목적을 수행하기 위해 독립적으로 설계된 코드의 집합
함수의 필요성
- 반복적인 프로그래밍을 피할 수 있음
- 손쉽게 유지보수가 가능함
- 모듈화로 인해 전체적인 코드의 가독성이 좋아짐
# 함수 기본 구조
# def -> define 정의하다
def 함수명(매개변수1, 매개변수2):
실행문장
return 반환변수
# 더하기 기능하는 함수 함수 정의 과정
def number_sum(num1,num2):
result = num1+num2
return result
# 함수 사용하기 -> 호출
number_sum(3,10)
13
# 두 수를 입력 받아서 뺀 결과를 return하는 함수를 정의하시오
num1 = int(input('첫 번째 정수 입력>>'))
num2 = int(input('두 번째 정수 입력>>'))
def number_sub(num1,num2):
result = num1-num2
return result #이때 result는 지역변수
result = number_sub(num1,num2) #이때 result는 전역변수
print(result)
# 더 큰수에서 빼주려면 number_sub 함수안에 다음 조건문 추가
if num1>=num2:
result = num1-num2
else:
result = num2-num1
첫 번째 정수 입력>>10
두 번째 정수 입력>>3
7
# 조건문, 반복문 상황에서는 전역, 지역 구별을 크게 하지 않는다.
# (if문들의 안 result와 마지막 출력문 result)
# 함수 안과 밖의 지역과 전역변수는 구별한다.
# 함수 안과 밖
# 지역변수와 전역변수
a = '빅데이터'
def temp():
a = 1
print('함수 안:',a)
print('함수 밖:',a)
temp()
함수 밖: 빅데이터
함수 안: 1
# global 키워드 - 지역과 전역 변수를 연결하는 키워드
a = '빅데이터'
def temp():
global a
a = 1
print('함수 안:',a)
print('함수 밖1:',a)
temp()
print('함수 밖2:',a)
함수 밖1: 빅데이터
함수 안: 1
함수 밖2: 1
# 문자열을 입력받아 'ㅋ'을 제거하고 return하는 함수를 정의하시오
def s_replace(s):
result = s.replace('ㅋ','') #변수명.replace('제거할 문자열','대체할 문자열')
return result
s = input("문자열 입력 >> ")
result = s_replace(s)
result
문자열 입력 >> ㅋ을 모두 지워주세요ㅋㅋㅋㅋㅋㅋ
'을 모두 지워주세요'
독스트링(docstring)
- 함수의 설명을 작성 (shift + tab)
# 정의
def s_replace(s):
"""이 함수는 ㅋ을 찾아서 제거해주는 함수입니다."""
result = s.replace('ㅋ','')
매개변수 - 가변매개변수
- 함수 호출 시 몇개의 인수가 전달될지 알 수 없을때 사용
def 함수명(*매개변수):
실행문장
return 결과
# 더하는 기능 하는 함수
def add(*num):
print(sum(num))
# 호출 - 사용법
add(1,2,3,4,5)
15
매개변수 - 기본값 설정
def add(num1,num2=10): #num2의 값이 10으로 고정일 때
return num1+num2
add(12)
add(12,5) # 이렇게도 가능
22
17
return키워드
- 반환값은 언제나 하나
- 함수 안에서 리턴은 한번 실행
- 리턴을 만나면 함수 밖으로 나감
def add_sub(num1,num2):
return num1+num2, num1-num2
add_sub(10,5)
(15, 5)
함수 기본 형식
# 1. 매개변수 x, 리턴 x
def hi1():
print('안녕~')
a = hi1() #리턴값이 없어서 들어오는 결과가 None
print(a)
안녕~
None
# 2. 매개변수 o, 리턴 x
def hi2(name):
print(f'{name}야 안녕~')
a2 = hi2('현우')
print(a2)
현우야 안녕~
None
# 3. 매개변수 x, 리턴 o
def hi3():
return '안녕하세요!'
a3 = hi3()
print(a3)
안녕하세요!
# 4. 매개변수 o, 리턴 o
def hi4(name):
return f'{name}야 안녕~'
a4 = hi4('상희')
print(a4)
상희야 안녕~
# 모듈(라이브러리) 임포트(불러오기)
import jm_module as jm #이 모듈 불러와서 jm이라는 별칭으로 부르겠다
jm_module.hi1()
안녕~
jm_module.hi3()
'안녕하세요!'
jm.hi1()
안녕~
jm.hi2('현우')
현우야 안녕~
# hi4 함수만 불러오는 방법
from jm_module import hi4,hi2
hi4('현우')
'현우야 안녕~'
hi2('현우')
현우야 안녕~