함수는 def 키워드, 함수명, : , 들여쓰기를 통해 선언
실습: 구구단 출력 함수가 연쇄적으로 호출되도록 함수 선언!
def gugudan2():
for i in range(1,10):
print('2 * {}: {}'.format(2, 2 * i))
gugudan3()
def gugudan3():
for i in range(1,10):
print('3 * {}: {}'.format(3, 3 * i))
gugudan4()
def gugudan4():
for i in range(1,10):
print('4 * {}: {}'.format(4, 4 * i))
gugudan2()
return 키워드를 이용하면 함수 실행 결과를 호출부로 반환 할 수 있다!
- Lambda 함수: 함수 선언을 보다 간단히
def calculator(n1, n2):
return n1 + n2
-> calculator = lambda n1,n2: n1 + n2
실습: 삼각형, 사각형, 원의 넓이를 구하는 lambda 함수를 만들어보자
triangle_area = lambda n1,n2 : n1 * n2 /2
sqaure_area = lambda n1,n2 : n1 * n2
circle_area = lambda r : r * r * 3.14
width = int(input('가로 길이 입력: '))
height = int(input('세로 길이 입력: '))
radius = int(input('반지름 길이 입력: '))
triangle_value = triangle_area(width,height)
sqaure_value = sqaure_area(width,height)
circle_value = circle_area(radius)
print(f'삼각형의 넓이: {triangle_value}')
print(f'사각형의 넓이: {sqaure_value}')
print(f'원의 넓이: {circle_value}')
* __name__ 전역변수 *
-> __name__에는 모듈 이름이 저장되거나 '__main__'이 저장된다.
-> __main__이 저장되어 있으면 프로그램의 시작 파일.
실습: 단위 환산 모듈을 만들고 cm을 mm, inch, m, ft로 변환해보자
사용자 모듈: unit_conversion
def cm_to_mm(n):
return round(n * 10, 3)
def cm_to_inch(n):
return round(n * 0.393, 3)
def cm_to_m(n):
return round(n * 0.01, 3)
def cm_to_ft(n):
return round(n * 0.032, 3)
if __name__ == '__main__':
print(f'10cm: {cm_to_mm(10)}mm')
print(f'10cm: {cm_to_inch(10)}inch')
print(f'10cm: {cm_to_m(10)}m')
print(f'10cm: {cm_to_ft(10)}ft')
---------------------------------------------
import unit_conversion as uc
if __name__ == '__main__':
input_number = int(input('길이(cm) 입력: '))
return_value = uc.cm_to_mm(input_number)
print(f'return_value: {return_value}mm')
return_value = uc.cm_to_inch(input_number)
print(f'return_value: {return_value}inch')
return_value = uc.cm_to_m(input_number)
print(f'return_value: {return_value}m')
return_value = uc.cm_to_ft(input_number)
print(f'return_value: {return_value}ft')
실습: site-packages에 약수와 소수를 리스트로 반환하는 모듈을 만들어보자.
사용자 모듈: divisor_mod
def divisor(inputNumber):
result = []
for number in rnagne(1, (inputNumber + 1)):
if inputNumber % number == 0:
result.append(number)
return result
def prime_number(inputNumber):
result = []
for number in range(2, (inputNumber + 1)):
flag = True
for n in range(2, number):
if number % n == 0:
flag = False
break
if (flag):
result.append(number)
return result
--------------------------------------------------------
from divisor_pac import divisor_mod as dm
print(f'10의 약수: {dm.divisor(10)}')
print(f'50까지의 소수: {dm.prime_number(50)}')
어려웠던 부분
return 함수 이해가 너무 어려워서 애를 먹었다. 구글에도 찾아봤는데, 사실 지금도 완전히 이해한 건지 모르겠다.. ㅎ
오늘의 소감
산 넘어 산이라고, 파이썬 기초도 어려웠는데, 파이썬 중급은 훨씬 더 어렵다. 방법은 계속 하는 거 밖에 없고, 앞으로도 그렇게 할 거지만, 뒤에 나올 내용들이 이보다 더 어렵다면, 주어진 시간 내에 정말 다 이해할 수 있을까..? 라는 걱정이 되긴 한다.. :)