웹파이썬 프로그래밍 - Function(함수) 2/2

2021. 6. 24. 12:05강의 내용 정리/웹파이썬 프로그래밍

728x90
반응형

지난 학습 복습 : Function(함수) 1/2

- 특정한 입력값이 주어졌을 때 정해진 규칙에 따라 출력값을 출력하는 것

- 수학에서의 함수와 동일하지만 프로그래밍에서의 함수는 입력이 없는 경우나, 출력이 없는 경우가 존재한다.

- 지역변수 (Local variables) : 함수 내에 존재하는 변수이다.

- 지역변수는 함수 바깥에서 사용할 수 없다. 바깥에서 사용이 가능하면 무수히 많은 함수 내의 변수 명을 사용하지 못하기 때문이다.

- 반대로 함수 바깥에 존재하는 변수이지만 입력 파라미터로 받지 않는 경우는 전역 변수(Global variables)이다.

# 함수 내에 있는 변수는 지역 변수라고 한다.

# function 정의
def quadratic(a, b, c, x):
    global global_variables  # function body
    first = a * x **2        # function body
    second = b * x           # function body 
    third = c                # function body
    return first + second + third + global_variables

global_variables = 0  


# function call
quadratic(2, 3, 4, 2) # 18
quadratic(2, 3, 4, 1.0) # 9

# quadratic()의 지역 변수 : first, second, third
# global_variables : 전역 변수의 함수 내 사용

- 내장 함수(빌트인 함수)의 경우 help() 명령어를 사용해서 함수에 관한 내용을 찾는다.

 

 

강의 내용

 

0. 질문

Q : 프로그래밍에서 실수를 계산할 때, 정확하게 표현할 수 없는 이유가 무엇인가요?

A : 컴퓨터는 모든 수를 이진수로 표현한다. 따라서 정수는 정확하게 계산할 수 있지만 실수의 경우 근사값으로 치환해서 표현한다. 따라서 실수의 경우 오차가 발생할 수 밖에 없다. 이후 컴퓨터를 통해 정확하게 수를 표현하고 계산할 필요가 생겼는데 이때, 이를 위해 '수치해석학'이라는 학문이 도입되었다.

 

만약 소수점을 정확하게 표현하고자 한다면 round()함수를 통해 소수점 자릿수를 지정한 뒤, 출력하면 된다.

0.1 + 0.3 # 0.30000000001
round(0.1+0.2, 1) # 0.3

 

 

1. 사용자 정의 함수 디자인

- 직관적으로 내용을 다 알 수 있도록 짠다.

 

1-1. 좋은 사용자 정의 함수란?

- 다음과 같은 내용을 유기적으로 작성하는 것

- 아이디어

- 함수명

- 입력 파라미터

- 리턴 값

- Function body (세부적으로 작성한다.)

 

# Documentation 예시
def days_difference(day1, day2):
    ''' (int, int) -> int  # 입력 파라미터의 데이터 타입과 리턴 값의 타입
    
    입력받은 day1과 day2의 차이를 리턴한다. # 함수에 대한 설명
    단, day1에서 day2를 뺀다.
    
    
    >>> days_difference(240, 221) # 예시
    19 
    >>> days_difference(110, 109)
    -1
    >>> days_difference(50, 50)
    0
    
    '''
    return day1 - day2

 

 

728x90
반응형