- 파이썬의 함수는 수학의 함수와 동일하다.
- input → 함수 → output
- 함수는 파이썬에서 기본으로 제공하는 내장함수와
- 사용자가 직접 선언하는 사용자 함수가 있다.
- 함수는 특정 기능을 재사용하기 위해서 사용한다.
def addCall():
n1 = int(input('n1 입력 : '))
n2 = int(input('n2 입력 : '))
print(f'n1 + n2 = ({n1 + n2})')
addCall()
- 함수 선언
- 함수는 def 키워드, 함수명, :, 들여쓰기를 이용해서 선언한다.
- 함수는 대부분 동사(기능을 알아볼 수 있는)로 작명
-실습1
오늘 날씨를 출력하는 함수를 선언하고 3번 호출해보자.
def printWeatherInfo():
print('오늘 날씨는 맑습니다. 기온은 25도 입니다.')
printWeatherInfo()
printWeatherInfo()
printWeatherInfo()
-실습2
정수 두 개를 입력하면 곱셈과 나눗셈 연산 결과를 출력하는 함수를 만들고 호출해보자.
def calFun():
n1 = int(input('n1 입력 : '))
n2 = int(input('n2 입력 : '))
print(f'n1 * n2 = {n1 * n2}')
print(f'n1 / n2 = {round(n1 /n2, 2)}')
calFun()
calFun()
- 함수 내에서 또 다른 함수를 호출할 수 있다.
- pass를 이용해서 실행문을 생략할 수 있다.
def printTodayWheather():
pass
printTodayWheather()
-실습1
다음과 같이 구구단 출력 함수가 연쇄적으로 호출되도록 함수를 선언해보자.
def guguDan2():
for i in range(1, 10):
print('2 * {} = {}'.format(i, 2 * i))
guguDan3()
def guguDan3():
for i in range(1, 10):
print('3 * {} = {}'.format(i, 3 * i))
guguDan4()
def guguDan4():
for i in range(1, 10):
print('4 * {} = {}'.format(i, 4 * i))
guguDan5()
def guguDan5():
for i in range(1, 10):
print('5 * {} = {}'.format(i, 5 * i))
guguDan2()
- 함수 호출 시 함수에 데이터를 전달할 수 있다.
- 인수와 매개변수 개수는 일치해야 한다.
- 매개변수 개수가 정해지지 않은 경우 '*'를 이용한다.
인수와 매개변수
def greet2(customer): # customer 은 매개변수, 매개변수는 함수 안에서만 사용 가능하다
print(f'{customer} 고객님 안녕하세요.')
greet2('홍길동') # '홍길동'은 인수
greet2('박찬호')
def greet3(customer1, customer2): # customer 은 매개변수, 매개변수는 함수 안에서만 사용 가능하다
print(f'{customer1} 고객님과 {customer2} 고객님 안녕하세요.')
greet3('홍길동', '박찬호')
def calculator(n1, n2):
print(f'{n1} + {n2} = {n1 + n2}')
print(f'{n1} - {n2} = {n1 - n2}')
print(f'{n1} * {n2} = {n1 * n2}')
print(f'{n1} / {n2} = {n1 / n2}')
calculator(10, 20)
매개변수 개수가 정해지지 않은 경우 '*'를 이용한다.
def printNumber(*numbers):
for number in numbers:
print(number, end = '')
print()
printNumber() # 인수가 없는 경우
printNumber(10) # 인수가 1개인 경우
printNumber(10, 20) # 인수가 2개인 경우
printNumber(10, 20, 30) #인수가 3개인 경우
- 실습
국어, 영어, 수학 점수를 입력받고, 입력받은 점수를 이용해서 총점과 평균을 출력하는 함수를 만들어 보자.
def printScore(kor, eng, mat):
sum = kor + eng + mat
avg = sum / 3
print(f'총점 : {sum}')
print('평균 : %.2f' % avg)
korScore = int(input('국어 점수 입력: '))
engScore = int(input('영어 점수 입력: '))
matScore = int(input('수학 점수 입력: '))
printScore(korScore, engScore, matScore)
- return 키워드를 이용하면 함수 실행 결과를 호출부로 반활할 수 있다.
- 함수가 return을 만나면 실행을 종료한다.
def calculator(n1, n2):
result = n1 + n2
return result # 함수 호출부로 실행 결과를 반환한다
returnValue = calculator(20, 10)
print(f'returnValue: {returnValue}')
print(calculator(30, 30))
# 함수가 return을 만나면 실행을 종료한다.
def divideNumber(n):
if n % 2 == 0:
return '짝수' # 함수 실행 종료 및 결과 반환
else:
return '홀수' # 함수 실행 종료 및 결과 반환
returnValue = divideNumber(6)
print(f'returnValue : {returnValue}')
- 실습1
사용자가 길이(cm)를 입력하면 mm로 환산한 값을 반환하는 함수를 만들어보자.
userLength = float(input('길이(cm) 입력 : '))
def changeCmMm(n):
return n * 10
print(changeCmMm(userLength),'mm')
- 실습2
1부터 100까지의 정수 중에서 홀수인 난수를 반환하는 함수를 선언하자.
import random
def getOddRandomNumber():
while True:
rNum = random.randint(1, 100)
if rNum % 2 != 0:
break
return rNum
print(f'returnValue : {getOddRandomNumber()}')
이 글은 제로베이스 데이터 취업 스쿨의 강의자료 일부를 발췌하여 작성되었습니다.