2021. 6. 19. 02:09ㆍ강의 내용 정리/웹파이썬 프로그래밍
지난 학습 복습 : Variables(변수)
- 변수의 이름은 직관적으로 이해하기 쉬운 것으로 짓는다.
* 이때 변수 명의 처음이 숫자이거나 언더바(_)를 제외한 다른 기호들이 들어가면 오류가 발생한다.
ex) 123obj(x), hello!(x), no-way(x), no_way(o)
- 변수의 assignment와 equality를 구분하자.
* 파이썬에서 같다를 의미하는 연산자는 ==이고, 값을 할당할때는 =를 사용한다.
- 변수 만들면 타입을 포함한 값이 컴퓨터 메모리 어딘가에 저장된다.
- 이때 변수는 해당 컴퓨터 메모리의 주소 값을 저장한다.
강의 내용
1. 함수란?
- 특정한 입력값이 주어졌을 때 정해진 규칙에 따라 출력값을 출력하는 것
- 수학에서의 함수와 동일하다.
* f(x) = 3x + 2일때, x에 2의 값이 주어지면 f(x)는 8이된다.
** 단 수학에서의 함수와 다른 점은 프로그래밍에서의 함수는 입력이 없어도 출력이 가능하다는 점과 입력이 있더라도 출력이 없을 수 있다는 점이다.
# 프로그래밍에서의 함수
## 입력이 없어도 출력하는 경우
def say():
return 'hello'
say()
# 입력이 있어도 출력하지 않는 경우
def nothing(x):
return None
nothing(10)
1-1. 파이썬 내장함수
- 수학과 관련된 함수
# 절대값
abs(-9) # 9
# 제곱
pow(3,2) # 9
# 반올림
round(4.3) # 4
# 이중 함수 구문
pow( abs(-2), round(4.3) ) # 16
# 음수의 반올림
round(-3.5) # -4
- 파이썬 데이터 타입과 관련된 함수
# int
int(4.3) # 4
# float
float(4) # 4.0
# bool
bool(0) # False
# str
str(1) # '1'
- 내장 함수에 대해 알고싶다면 쓸 수 있는 함수
print(help(pow))
"""
Help on built-in function pow in module builtins:
pow(base, exp, mod=None)
Equivalent to base**exp with 2 arguments or base**exp % mod with 3 arguments
Some types, such as ints, are able to use a more efficient algorithm when
invoked using the three argument form.
"""
1-2. 파이썬 사용자 정의 함수
- 사용자 정의 함수
#def 함수명(입력 파라미터):
# return 결과값
def convert_to_celsius(fahrenheit):
return (fahrenheit - 32) * 5/9
convert_to_celsius(212) # 100.0
# 추가적으로 위의 함수명은 잘 짠 케이스이다.
# - 입력 파라미터를 받아 celsius로 바꾸는 것이기 때문에 conver_to_celsius(fahrenheit)로 사용
- 지역변수 (Local variables) : 함수 내에 존재하는 변수이다.
- 지역변수는 함수 바깥에서 사용할 수 없다.
- 반대로 함수 바깥에 존재하는 변수이지만 입력 파라미터로 받지 않는 경우는 전역 변수(Global variables)이다.
- 전역변수는 입력 파라미터로 받거나 global 함수를 사용하지 않는 이상 함수 내에서 사용이 불가능하다.
# 함수 내에 있는 변수는 지역 변수라고 한다.
# 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 : 전역 변수의 함수 내 사용
cf) 변수명 이름 짓기에 추가되는 조건
* 예약어는 변수명으로 사용할 수 없다.
** 예약어란 프로그래밍 언어에서 자주 사용하는 함수명이다.
*** 추가로 몇몇 내장 함수의 경우 변수명으로 사용할수는 있지만 이를 사용할 경우 해당 내장 함수는 사용할 수 없다.
#예약어를 변수명으로 사용하는 경우
#def = 4 (x)
내장함수를 변수명으로 사용하는 경우
str = 4
# str(4)는 사용불가
1-3. 함수와 관련된 에러
- 함수를 사용하다보면 여러가지 에러가 발생할 수 있다.
- TypeError : 입력 파라미터의 개수가 맞지 않았을 때 발생
- NameError : 지역변수를 호출했을 때 발생
1-4. 전역 변수
- 함수 내에서 만든 변수는 함수 바깥에서는 확인할 수 없다.
- 프로젝트를 진행하다보면 무수히 많은 함수를 사용할텐데 지역변수를 함수 바깥에서 확인할 수 있게되면 변수를 사용하는데 어려움을 겪게되기 때문에 전역변수는 함수 내에서만 사용할 수 있다.
1-5. 함수 호출(Function Calls)
- 컴퓨터 메모리에 함수가 저장되고 주소값이 저장된다.
- 해당 함수 내에도 전역 변수와 리턴 값이 존재하기 때문에 이에 대해서도 메모리 공간은 별도로 할당된다.
- 함수를 호출할 때에도 함수 바디 부분을 한줄 한줄, 변수를 호출한 것과 같이 주소값을 통해서 계산한다.
'강의 내용 정리 > 웹파이썬 프로그래밍' 카테고리의 다른 글
웹파이썬 프로그래밍 - 조건문(Conditional statement) (0) | 2021.07.08 |
---|---|
웹파이썬 프로그래밍 - Boolean (0) | 2021.07.06 |
웹파이썬 프로그래밍 - String(문자열) (0) | 2021.06.29 |
웹파이썬 프로그래밍 - Function(함수) 2/2 (0) | 2021.06.24 |
웹파이썬 프로그래밍 - Variables(변수) (0) | 2021.06.16 |