Research Notes

[Python] Abstraction - Variable, Function 본문

Programming Language/Python

[Python] Abstraction - Variable, Function

jiachoi 2023. 7. 3. 15:58
추상화(Abstraction)
복잡한 기능을 숨기고 주요 기능에만 집중할 수 있게 해주는 개념

 

추상화의 종류로는 변수, 함수, 객체가 있다.

간단하게 말하자면 변수는 값을 저장하고, 함수는 명령들을 저장한다. (객체는 이후에 설명)


1. 변수(Variable)

변수란 값을 저장해서 쓸 수 있게 해주는 것이다.

변수가 추상화에 속하는 이유는 한 번 변수를 정의하면, 주요기능 외의 값은 알 필요가 없기 때문이다.

→ 변수를 사용하는 이유 1) 의미를 보고 이해하기 어렵다 2) 수가 너무 길다

# 변수를 사용하지 않았을때
    # 3.1415926535 라는 숫자의 의미를 이해하기 어렵다. 오타가 날 경우 다른 값이 출력된다.
print(3.1415926535 * 2)
print(3.1415926535 * 5)
print(3.1415926535 * 8)


# 변수를 사용하였을때
   # pi라는 변수에 3.1415926535라는 값을 대입해 이 값이 pi임을 지정하였다. 
pi = 3.1415926535
print(pi * 2)
print(pi * 5)
print(pi * 8)

 

※ 지정 연산자(Assignment Operator)

" = " 이 기호는 지정 연산자로 오른쪽에 있는 값을 먼저 계산해 왼쪽에 있는 값으로 대입해주는 연산자이다.

2+1 이 먼저 계산되어 3이라는 값을 가지고 이 숫자를 x라는 변수에 저장한다. 따라서 print(x)를 하면 3이 출력된다.

헷갈림주의

지정연산자 사용 예시

=> #1에서 print(x)의 값이 3으로 출력되었었기 때문에, 현재 x의 값은 3이다.

#2에서 지정연산자를 사용하여 x변수에 x+1의 값을 대입하므로

x+1의값인 4가 x변수에 대입된다

따라서 print(x)를 하면 4가 출력된다.

지정연산자 사용 예제 출력 결과

2. 함수(Function)

함수는 명령들을 보관하는 역할을 한다.

대개 동일한 내용을 반복하거나, 코드를 간단하게 쓰기 원할때 함수를 사용한다.

def 함수이름() :
    1. 실행할 문장
    2. 실행할 문장
함수이름() # 출력

 

파이썬 함수의 구조는 위와 같다. def는 define(정의)의 약자이며, 함수이름 괄호 안에 있는 파라미터(입력값)는 있을 수도 있고, 없을 수도 있다.

함수이름이 포함되는 첫 번째 줄의 끝에 콜론(:)이 들어가고, 함수내용이 있는 두 번째 줄부터는 Tab 키로 들여써야 한다. (1)번 줄은 함수의 헤더(header)에 해당되고, (2)~(3)번 줄은 함수의 바디(body)에 해당됩니다.

※ 파라미터 ( Parameter )

함수에게 정보를 주기 위한 입력값이다. 함수이름의 괄호 안에 들어간다.

hello(name) 에서 name값이 파라미터이다. 마지막 출력하는 부분에서 name 값을 "박보검"으로 주었기 때문에 결과는 Hello 박보검 으로 출력된다.

위 파라미터 사용 예시 결과

# 파라미터 사용 예제
def print_sum(a,b) :     # 파라미터 값 두개를 a, b로 지정
    print(a+b)           # 출력될 값을 a+b로 지정
print_sum(5,3)           # a=5, b=3 값으로 지정  => 출력값은 a+b인 8이 된다.

+ Optional Parameters

파라미터의 기본값을 설정해두면 함수 호출을 할 때 파라미터에 해당되는 값을 넘겨주지 않았을 경우, 그 파라미터는 기본값을 갖게 된다. 또한 Optional Parameter는 맨 마지막에 위치해야한다.

def myself(name, age, nationality = "한국"):
    print("내 이름은 %s" % name)
    print("나이는 %d살" % age)
    print("국적은 %s" % nationality)

myself("김철수", 1)            # 기본값이 설정된 파라미터를 바꾸지 않을 때
myself("김영희", 1, "미국")     # 기본값이 설정된 파라미터를 바꾸었을 때
내 이름은 김철수
나이는 1살
국적은 한국

내 이름은 김영희
나이는 1살
국적은 미국

들여쓰기 (Indentation)

파이썬에서 들여쓰기는 매우 중요한 역할을 차지한다. 들여쓰기의 단계에 따라 논리의 층위가 나뉘기 때문이다.

동일한 논리단계에 있어 들여쓰기의 정도가 같은 명령들의 집합을 블록(block)이라고 부른다.

동일한 논리단계에 있지만 들여쓰기가 맞지 않는다면 파이썬은 오류로 인식하기때문에 주의해야한다.!!

Syntactic Sugar

자주 쓰이는 표현을 더 간략하게 쓸 수 있게 해주는 문법을 syntactic sugar라고 한다.

#1
x = x + 1
#2
x += 1         #1 = #2 는 같은문장

#3
x = x + 2
#4
x += 2          #3 = #4 는 같은문장