- 함수는 def 문으로 정의
- 함수는 기본적으로 세 가지로 구성 1) 입력 : 입력 매개변수, 생략가능 2) 처리 : 코드들 3) 출력 : 처리 결과, 생략 가능
1. 입력
def hello():
print('오우')
a = hello()
print(a)
# return 값이 없어서 print를 하게 되면 None 값이 나온다
1) 입력 매개변수
def hello(name):
print(f'{name}님 안녕하세요? 반갑습니다!')
hello('파이썬') # 파이썬님 안녕하세요? 반갑습니다!
def hello():
name = input('이름은? \n') # 입력
print(f'{name}님 안녕하세요? 반갑습니다!')
# 함수 사용
hello()
a. 입력 매개변수 기본값
- 위 함수는 입력 매개변수가 없으면 오류가 발생
- 이를 막기 위해 매개변수 = 값 형태로 기본 값 지정 가능
def hello(name='여러분'):
print(f'{name}님 안녕하세요? 반갑습니다!')
# 함수 사용
hello('홍길동') # 홍길동님 안녕하세요? 반갑습니다!
hello() # 여러분님 안녕하세요? 반갑습니다!
b. 임의의 여러 매개변수
- 일반적으로 임의의 여러 입력 매개변수가 전달된 경우는 함수 안에서 반복문을 사용해 처리해야 함
- args를 사용하게 되면 여러개의 입력값을 튜플로 함수 값을 받아 처리하겠다는 의미 → 사용자가 몇 개의 입력을 할지 모를때 사용을 하게 되는 것
def hello(*args):
print(args)
for who in args:
print(f'{who}님 안녕하세요? 반갑습니다!')
hello('홍길동', '일지매', '강우동')
# 결과
# ('홍길동', '일지매', '강우동')
# 홍길동님 안녕하세요? 반갑습니다!
# 일지매님 안녕하세요? 반갑습니다!
# 강우동님 안녕하세요? 반갑습니다!
c. 임의의 여러 매개변수와 고정 매개변수
def hello(*args, title):
for who in args:
print(f'{who}{title} 안녕하세요? 반갑습니다!')
# 함수 사용
hello('홍길동', '일지매', '강우동', title='선생님')
# 결과
# 홍길동선생님 안녕하세요? 반갑습니다!
# 일지매선생님 안녕하세요? 반갑습니다!
# 강우동선생님 안녕하세요? 반갑습니다!
2. 반환
- 함수안에서 print() 함수로 결과를 출력하는 함수는 반환되는 값이 없음
- 반환되는 값이 없는 함수의 결과값을 받아 출력하면 None이 출력
def calculate(a, b):
summ = a + b
mult = a * b
return summ, mult # 값은 튜플로 리턴된다
r1, r2 = calculate(10, 5)
print(r1) # 15
print(r2) # 20
3. 내장 함수
- abc(x) : x의 절대값을 반환
- all(x) : x의 요소 모두가 참이면 True를 반환
- any(x) : x의 요소 중 하나라도 참이면 True 반환
- chr(x) : 아스키 코드값 x에 대응하는 문자 반환
- dir(x) : x가 가지고 있는 변수나 메소드 목록을 반환
- divmod(x, y) : x를 y로 나눈 몫과 나머지를 튜플형태로 반환
- enumerate(x) : 리스트, 튜플 문자열을 받아 인덱스와 값을 반환
- eval(x) : 실행 가능한 문자열 x를 받아 문자열을 실행한 결과 반환
eval('10 + 20') # 결과 30
eval('print("ABC")') # 결과 ABC
- filter(f, x) : 함수 f에 x를 매개변수로 전달해 True인 경우만 반환
- id(x) : x의 고유 주소값을 반환
- input() : 사용자로부터 입력을 받음
- int(x) : x를 정수로 변환
- isinstance(x, y) : x가 y의 인스턴스인지 여부를 True, False로 반환
- map(f, x) : 함수 f에 x요소를 하나씩 전달해 얻은 결과를 반환
- ord(x) : 문자 x의 아스키 코드값을 반환
- pow(x,y) : x를 y번 제곱한 결과를 반환
- sorted(x) : x요소를 정렬하여 반환
- zip(x, y): x와 y 요소를 쌍으로 묶어서 반환