isinstance()
arg, kwargs, 기본 매개변수(기본 파라미터, default parameter), 키워드 매개변수 by 윤, return
print('Hello python')
str = input()
print(f'str : {str}')
numbers = [1, 2, 3, 4, 5]
numbers.sort()
print(f'numbers : {numbers}')
numbers.reverse()
print(f'numbers : {numbers}')
numbers.clear()
print(f'numbers : {numbers}')
def printUserName(name):
print(f'{name}고객님, 안녕하세요.')
printUserName('홍길동')
def addCal(n1, n2):
result = n1 + n2
print(f'n1 + n2 = {result}')
addCal(1, 2)
덧셈 연산 5회 실행
n1 = int(input('n1 입력: '))
n2 = int(input('n2 입력: '))
print(f'n1 + n2 = {n1 + n2}')
n1 = int(input('n1 입력: '))
n2 = int(input('n2 입력: '))
print(f'n1 + n2 = {n1 + n2}')
n1 = int(input('n1 입력: '))
n2 = int(input('n2 입력: '))
print(f'n1 + n2 = {n1 + n2}')
n1 = int(input('n1 입력: '))
n2 = int(input('n2 입력: '))
print(f'n1 + n2 = {n1 + n2}')
n1 = int(input('n1 입력: '))
n2 = int(input('n2 입력: '))
print(f'n1 + n2 = {n1 + n2}')
-> 함수로 구현
def addCal():
n1 = int(input('n1 입력: '))
n2 = int(input('n2 입력: '))
print(f'n1 + n2 = {n1 + n2}')
addCal()
addCal()
addCal()
addCal()
addCal()
동의어: 함수 정의
def weird_multiply(x, y):
return
weird_multiply(1, 5) # 아무것도 나오지 않음
a = weird_multiply(1, 5)
print(a) # None
def weird_multiply(x, y):
if x > 10:
return x * y
return (x + y) * 2
print(x + y)
weird_multiply(1, 5) # 12
# x값이 10을 안넘어서 if문 pass
# if문 바깥 return문인 (1+5)*2 = 12 출력
# print(x + y)는 실행안됨, 쓸모없는 코드 => return문에서 함수가 종료 되었기 때문
def weird_multiply(x, y):
if x > 10:
return x * y
print(x + y)
return (x + y) * 2
weird_multiply(12, 5) # 60
# if문의 return에서 함수가 종료됨
def weird_multiply(x, y):
if x > 10:
return x * y
c = weird_multiply(12, 5)
print(c) #60
c = weird_multiply(2, 5)
print(c) # None : 아무것도 실행되지 않고 끝난 경우
동의어: 함수 사용
def addCal():
n1 = int(input('n1 입력 : '))
n2 = int(input('n2 입력 : '))
print(f'n1 + n2 = {n1 + n2}')
addCal()
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()
def printWeatherInfo():
print('오늘 날씨는 맑습니다. 기온은 25도입니다.')
printWeatherInfo()
printWeatherInfo()
printWeatherInfo()
또 다른 함수를 호출하자!
def fun1():
print('fun1 호출!')
fun2()
def fun2():
print('fun2 호출!')
fun3()
def fun3():
print('fun3 호출!')
fun1()
fun2()
fun3()
def printTodayWeather():
pass
def printTomorrowWeather():
pass
printTodayWeather()
printTomorrowWeather()
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()
함수 호출 시 데이터를 넘겨주자!
매개변수(parameter, 파라미터, 변수)
인수(arguments, 인자)
함수 호출 시 함수에 데이터를 전달할 수 있다.
def greet():
print('안녕하세요.')
greet()
def greet(customer):
print(f'{customer} 고객님 안녕하세요.')
greet('홍길동')
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(20, 10)
인수와 매개변수 개수는 일치해야 한다
def addFun(n1, n2):
print(f'{n1} + {n2} = {n1+n2}')
addFun(10, 20)
매개변수 개수가 정해지지 않은 경우 ‘*’를 이용한다.
def printNumber(*numbers):
for number in numbers:
print(number, end='')
print()
printNumber()
printNumber(1)
printNumber(1, 2)
printNumber(1, 2, 3)
printNumber(1, 2, 3, 4)
printNumber(1, 2, 3, 4, 5)
국어, 영어, 수학 점수를 입력받고, 입력받은 점수를 이용해서 총점과 평균을 출력하는 함수를 만들어 보자.
def printScore(kor, eng, mat):
sum = kor + eng + mat
avg = sum / 3
print(f'총점: {sum}')
print(f'평균: {round(avg, 2)}')
korScore = int(input('국어 점수 입력: '))
engScore = int(input('영어 점수 입력: '))
matScore = int(input('수학 점수 입력: '))
printScore(korScore, engScore, matScore)
def printScore(*scores):
sum = 0
for score in scores:
sum += score
avg = sum / len(scores)
print(f'총점: {sum}')
print(f'평균: {round(avg, 2)}')
korScore = int(input('국어 점수 입력: '))
engScore = int(input('영어 점수 입력: '))
matScore = int(input('수학 점수 입력: '))
sciScore = int(input('과학 점수 입력: '))
hisScore = int(input('국사 점수 입력: '))
printScore(korScore, engScore, matScore, sciScore, hisScore)
함수 실행결과를 돌려주자!
def divideNumber(n):
if n % 2 == 0:
result = '짝수'
else:
result = '홀수'
return result
# if n % 2 == 0:
# return '짝수'
# else:
# return '홀수'
returnValue = divideNumber(5)
print(f'returnValue: {returnValue}')
2문
def cmToMm(cm):
result = cm * 10
return result
length = float(input('길이(cm)입력: '))
returnValue = cmToMm(length)
print(f'returnValue: {returnValue}mm')
import random
def getOddRandomNumber():
while True:
rNum = random.randint(1, 100)
if rNum % 2 != 0:
break
return rNum
print(f'returnValue: {getOddRandomNumber()}')
함수 내에서만 사용할 수 있는 변수가 있다.
함수 밖에 선언된 변수로 어디에서나 사용은 가능하지만 함수 안에서 수정할 수는 없다.
num_out = 10
def printNumbers():
print(f'num_out: {num_out}')
printNumbers()
print(f'num_out: {num_out}')
#2
num_out = 10
def printNumbers():
num_out = 20
print(f'num_out: {num_out}')
printNumbers()
print(f'num_out: {num_out}')
함수 안에 선언된 변수로 함수 안에서만 사용 가능하다.
def printNumbers():
num_in = 20
print(f'num_in: {num_in}')
printNumbers()
#2
def printNumbers():
num_in = 20
print(f'num_in: {num_in}')
print(f'num_in: {num_in}')
global을 사용하면 함수 안에서도 전역변수의 값을 수정할 수 있다.
num_out = 10
def printNumbers():
global num_out
num_out = 20
print(f'num_out: {num_out}')
printNumbers()
print(f'num_out: {num_out}')
2문
def printArea():
triangleArea = width * height / 2
squareArea = width * height
print(f'삼각형 넓이: {triangleArea}')
print(f'사각형 넓이: {squareArea}')
width = int(input('가로 길이 입력: '))
height = int(input('세로 길이 입력: '))
printArea()
totalVisit = 0
def countTotalVisit():
global totalVisit
totalVisit = totalVisit + 1
print(f'누적 방문객: {totalVisit}')
countTotalVisit()
countTotalVisit()
countTotalVisit()
countTotalVisit()
countTotalVisit()
함수 안에 또 다른 함수!
함수안에 또 다른 함수가 있는 형태이다.
def out_funtion():
print('out_function called!!')
def in_function():
print('in_function called!!')
in_function()
out_funtion()
내부 함수를 함수 밖에서 호출할 수 없다.
def out_funtion():
print('out_function called!!')
def in_function():
print('in_function called!!')
in_function()
in_function()
def calculator(n1, n2, operator):
def addCal():
print(f'덧셈 연산: {round(n1 + n2, 2)}')
def subCal():
print(f'뺄셈 연산: {round(n1 - n2, 2)}')
def mulCal():
print(f'곱셈 연산: {round(n1 * n2, 2)}')
def divCal():
print(f'나눗셈 연산: {round(n1 / n2, 2)}')
if operator == 1:
addCal()
elif operator == 2:
subCal()
elif operator == 3:
mulCal()
elif operator == 4:
divCal()
while True:
num1 = float(input('실수(n1) 입력: '))
num2 = float(input('실수(n2) 입력: '))
operatorNum = int(input('1.덧셈, 2.뺄셈, 3.곱셈, 4.나눗셈, 5.종료 '))
if operatorNum == 5:
print('Bye')
break
calculator(num1, num2, operatorNum)
함수 선언을 보다 간단하게 하자!
def calculator(n1, n2):
return n1 + n2
returnValue = calculator(10, 20)
print(f'returnValue: {returnValue}')
calculator = lambda n1, n2: n1 + n2
returnValue = calculator(10, 20)
print(f'returnValue: {returnValue}')
getTriangleArea = lambda n1, n2: n1 * n2 / 2
getSquareArea = lambda n1, n2: n1 * n2
getSircleArea = lambda r: radius * radius * 3.14
width = int(input('가로 길이 입력: '))
height = int(input('세로 길이 입력: '))
radius = int(input('반지름 길이 입력: '))
triangleValue = getTriangleArea(width, height)
squareValue = getSquareArea(width, height)
radiusValue = getSircleArea(radius)
print(f'삼각형 넓이: {triangleValue}')
print(f'사각형 넓이: {squareValue}')
print(f'원 넓이: {radiusValue}')
# 함수를 선언합니다.
def power(item):
return item * item
def under_3(item):
return item < 3
# 변수를 선언합니다.
list_input_a = [1, 2, 3, 4, 5]
# map() 함수를 사용합니다.
output_a = map(power, list_input_a)
print("# map() 함수의 실행 결과")
print("map(power, list_input_a):", output_a)
print("map(power, list_input_a):", list(output_a))
print()
# filter() 함수를 사용합니다.
output_b = filter(under_3, list_input_a)
print("# filter() 함수의 실행 결과")
print("filter(under_3, list_input_a):", output_b)
print("filter(under_3, list_input_a):", list(output_b))