함수
내장 함수: 파이썬에서 기본으로 제공하는 함수
사용자 함수: 사용자가 직접 선언
def fun1():
print('fun1 호출!')
fun2()
print('fun2 호출 후에 실행!!')
def fun2():
print('fun2 호출!')
fun3()
def fun3():
print('fun3 호출!')
fun1()
->
fun1 호출!
fun2 호출!
fun3 호출!
fun2 호출 후에 실행!!
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 printNumber(*numbers):
print(type(numbers))
printNumber()
<class 'tuple'>
def printNumber(*numbers):
for number in numbers:
print(number, end='')
printNumber()
printNumber(10)
printNumber(10,20)
printNumber(10,20,30)
->
101020102030
Return 함수 실행 종료 및 함수 실행 결과를 호출부로 반환
def divideNumber(n):
if n % 2 == 0:
return '짝수'
print('짝수입니다.')
else:
return '홀수'
returnValue = divideNumber(5)
print(f'returnValue: {returnValue}')
return 이후 구문은 실행x (ex. print(‘짝수입니다.’)는 출력x)
*연습문제: 1부터 100까지의 정수 중 홀수인 난수를 반환하는 함수 선언
import random
def getOddRandomNumber():
while True:
rNum = random.randint(1, 100)
if rNum % 2 != 0:
break #rNum이 홀수이면 빠져나옴
return rNum
print(f'returnValue: {getOddRandomNumber()}')
전역 변수: 함수 밖에 선언된 변수,
어디에서나 사용 가능하지만 함수 안에서 수정할 수는 없음
num_out = 10 #함수 밖에 선언된 전역변수
def printNumbers():
num_out = 20 #수정된 것이 아니라 아예 다른 것(like 동명이인..)
print(f'num_out: {num_out}') #함수 내부에서만 유효한 지역변수
printNumbers()
print(f'num_out: {num_out}') #처음의 전역변수가 출력(=10)
지역변수 함수 안에 선언된 변수, 함수 안에서만 사용 가능
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}')
totalVisit = 0
def countTotalVisit():
global totalVisit
totalVisit = totalVisit + 1
print(f'누적 방문객: {totalVisit}')
countTotalVisit()
countTotalVisit()
countTotalVisit()
countTotalVisit()
countTotalVisit()
->
누적 방문객: 1
누적 방문객: 2
누적 방문객: 3
누적 방문객: 4
누적 방문객: 5
중첩함수 함수 안에 또 다른 함수가 있는 형태, 함수 안에서만 사용 가능
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()
if operator ==2:
subCal()
if operator ==3:
mulCal()
if operator ==4:
divCal()
while True:
num1 = int(input('실수(n1) 입력: '))
num2 = int(input('실수(n2) 입력: '))
operatorNum = int(input('1. 덧셈 2. 뺄셈 3. 곱셈 4. 나눗셈 5. 종료'))
if operatorNum == 5:
print('Bye~')
break
calculator(num1, num2, operatorNum)
lambda 함수선언을 보다 간단하게 할 수 있다
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
getCircleArea = lambda r: r * r * 3.14
width = int(input('가로 길이 입력: '))
height = int(input('세로 길이 입력: '))
radius = int(input('반지름 길이 입력: '))
triangleValue = getTriangleArea(width, height)
squareValue = getSquareArea(width, height)
circleValue = getCircleArea(radius)
print(f'삼각형 넓이: {triangleValue}')
print(f'사각형 넓이: {squareValue}')
print(f'원 넓이: {circleValue}')
📌2월 시작은 무리였나 싶지만 .. 중꺾마의 정신을 되새기자😂
3월아 어서와라 제발!