파이썬 중급: 값의 처리와 변수
- 프로그래밍 언어(특히 파이썬)은 모든 것을 값으로 처리함
- 값을 사용 및 재활용하려면 값을 변수에 저장해야 함
1. 리터럴(Literal)
- 리터럴(Literal): 프로그래밍 언어로 작성된 코드에서 값을 대표하는 용어
- 파이썬에서는 모든 것을 값으로 처리하며
- 이러한 값은 정수, 부동 소수점 숫자, 문자열, 불린(Boolean, True/False) 등의 객체로 평가, 관리하고
- 이를 통해 결과를 출력함
1
1.1
“문자열”
- 주어진 모든 값이 그대로 실행(?)되고 그대로 결과가 되어 출력되는 것을 확인할 수 있음
1.2 표현식(Expression)
- 표현식(Expression)
- 프로그래밍 언어가 해석하는 하나 이상의 명시적인 값, 상수, 변수, 연산자들의 조합
- 뒤에서 배울 함수(Function)도 실행하면 하나의 값이 되므로 함수를 조합하는 것도 표현식으로 인식함
- 여러 개의 값을 하나로 묶어서 처리하기 위한 방법
- 리터럴은 단순히 하나의 값을 처리함
- 표현식을 평가(?)해서 실행할 때는
- 우선순위 및 연관규칙에 따라 해석하여 실행되며
- 평가 결과는하나의 값인 리터럴로 표현됨
- 표현식을 표시하기 위해서는 다음의 요소가 필요함
- 피연산자(Operand): 일반적인 리터럴 값
- 연산자(Operator): 피연산자를 평가하거나 계산하기 위한 요소
- 단항 연산자(Unary): 하나의 연산자와 피연산자를 묶어서 처리하는 연산자
- 이항 연산자(Binary): 하나의 연산자와 두 개의 피연산자를 묶어서 처리하는 연산자
- 여러 개의 표현식은 괄호로 묶어서 처리
- 표현식의 처리 순서
- 좌측에서 우측으로
- 괄호를 만나면 최우선으로 처리
- 프로그래밍 언어가 해석하는 하나 이상의 명시적인 값, 상수, 변수, 연산자들의 조합
3 + 4
“문자” + “열”
1.3 조건식(Condition Expression)
- 조건식(Condition Expression)
- 표현식 중에서 특정 조건문 등에 제한적으로 사용되는 것
- 주로 if문이나 while문과 같은 특정 구문에서 사용되며, 조건이 평가되면 참(True)/거짓(False)의 결과로 처리됨
- 조건의 판단이 필요한 경우에는 조건식을 사용하여 참(True)/거짓(False)으로 평가 후 처리하는 것이 좋음
- 파이썬에서는 다른 프로그래밍 언어와 달리 if구문과 같은 일반적인 조건문외에도 간결한 조건식을 활용하는 경우가 많음
bool(“”)
if “”: print(“True”) else: print(“False”)
- if의 조건식(““)을 평가하면 False가 되므로 실행결과는 False임
2. 이름(Name)의 처리
- 파이썬 내의 객체들이 값으로 처리되고 난 후, 그 값들을재사용하기 위해서는 이름(Name)을 사용함
- 프로그램의 작성이란
- 값을 저장하고
- 필요한 경우 저장된 값을 읽어와서 계산한 후
- 다시 저장해서 처리한다는 것
- 이러한 값들의 변화를 저장, 관리하는 기준이 필요함 $\rightarrow$ 파이썬에서는 네임스페이스(Namespace)를 만들어서 관리
- 네임스페이스(Namespace)
- 모듈 단위로 이름을 관리할 수 있는 영역. 이름이 바인딩된 상태의 영역을 나타냄
- 파이썬에서 프로그램을 작성하는 기준이 모듈이므로 모듈단위
- 지역(Local)/전역(Global)/내장(Built-In) 네임스페이스의 3가지로 구성됨
- 지역 네임스페이스(Local Namespace):함수 내부에서 바인딩된 이름
- 전역 네임스페이스(Global Namespace):코드블록이 속한 모듈의 최상위 네임스페이스. 모듈 전체에서 사용가능
- 내장 네임스페이스(Built-in Namespace): 파이썬 인터프리터가 시작할 때 생성되어 실행이 중단되기 전까지 유지되며 내장 모듈의 이름을 포함함
- 네임스페이스는 독립적으로 생성되고 유지되며, 서로 다른 네임스페이스에서 동일한 변수나 함수 이름을 가질 수 있음
- 네임스페이스와 유효범위를 이해하면 파이썬 프로그래밍에서 변수와 함수의 사용을 더욱 효율적으로 관리할 수 있음
- 네임스페이스로 사용하는 이름은 프로그램 전체에서 유일해야 함
- 모듈 단위로 이름을 관리할 수 있는 영역. 이름이 바인딩된 상태의 영역을 나타냄
- 네임스페이스(Namespace)
- 이름을 구별해야 하므로 식별자(identifier)라는 개념을 사용함
- 각 이름을 구별할 수 있도록 프로그램 내에서 식별자 별로 의미를 부여해서 지정함
- 이름(식별자)으로 지정하는 요소
- 변수(Variables), 함수(Function), 클래스(Class), 모듈(Module), 패키지(Package) 등
- 변수를 제외하면 모두 객체로 사용됨 $\rightarrow$ 값으로 관리됨
- 파이썬은 변수, 함수, 클래스 등에 대한 이름을 구별하지 않음 $\rightarrow$ 명명규칙을 명확히 해서 각각을 이름으로 식별할 수 있어야 함
2.1 예약어(Keyword)
- 예약어(Keyword): 개발자가 직접 정의할 수 없고 파이썬 내부 문법규칙에서만 사용할 수 있도록 정의된 것
2.1.1 Keyword 모듈을 이용한 예약어 확인
import keyword import pprint
pprint.pprint(keyword.kwlist, width=60, compact=True)
print(keyword.kwlist)
2.1.2 Pretty print(pprint)
import pprint
help(pprint.pprint)
2.1.3 keyword로 변수를 정의할 경우
- 문법 오류로 처리
in = 1
2.1.4 모듈 내에 식별자 이름이 중복될 경우
- 동일한 모듈 내에서 동일한 이름으로 변수, 함수를 지정하면 동일한 이름으로 처리, 사용되므로 명확한 에러가 발생하지 않음
- 이 이름을 호출해서 사용할 때 실행상의 예외(Run-time Error)나 다른 처리 결과가 발생함
import sys
print(type(sys)) sys = 100 print(type(sys))
2.2 명명 규칙(Name Convention)
- 변수, 함수, 클래스, 모듈, 패키지 등 다양한 이름에 대한 명명 규칙을 처리하는 규약을 제공하고 관행적으로 이를 따라 이름을 정의하면 이름 간의 충돌을 예방할 수 있음
2.2.1 파이썬 권장 명명 규칙: 모듈, 패키지
- 모듈
- 모듈 이름은 짧아야 함
- 전부 소문자로 작성할 것을 권장함
- 가독성을 위해서 밑줄(_, Under Bar)를 사용할 수 있음
- 패키지
- 패키지 이름은 짧아야 함
- 전부 소문자로 작성할 것을 권장함
- 밑줄 사용을 권장하지 않음
2.2.2 파이썬 권장 명명 규칙: 클래스
- 클래스의 이름은 Capitalized Words 형식을 따르며 카멜 표기법(Camel Case)도 사용 가능함
- Capitalized Words 형식
- 모든 단어의 첫 글자를 대문자로 표기하고 나머지 글자는 소문자로 표기함
- 띄어쓰기 없이 단어를 이어붙임
- 예: DailyUserTable
- Camel Case
- 모든 단어의 첫 글자를 대문자로 표기하고 나머지 글자는 소문자로 표기하되, 첫 번째 단어는 소문자로 시작함
- 띄어쓰기 없이 단어를 이어붙임
- 예: dailyUserTable
- Snake 표기법(= Under Score / Under Bar 표기법)
- 모든 글자를 소문자료 표기하고 단어 사이에 밑줄 문자 (_)를 사용하여 이름을 작성함
- 주로 변수명이나 함수명을 작성할 때 사용되며, 가독성을 높이기 위해 단어를 구분하는데 유용함
- 예: daily_user_table
- 클래스의 이름을 위한 표기법으로는 권장하지 않음
- Capitalized Words 형식
- Exception은 클래스이므로
- 다른 클래스와 동일하게 Capitalized Words 형식을 적용하되
- 맨 뒤는 “Error”로 끝내는 것을 권장함
2.2.3 파이썬 권장 명명 규칙: 상수, 변수, 함수, 메서드
- 변수, 함수와 메서드의 이름은 원칙적으로 소문자로 표기함
- 가독성을 위해 밑줄 문자 단어(스네이크 표기법)로 쓰는 것을 권장함
- 보호 속성이 요구될 때는 맨 앞에 ‘_‘(Leading Underscore)를 추가적으로 붙임
- 키워드와 동일한 변수명일 때는 맨 뒤에 ‘_‘(Leading Underscore)를 추가적으로 붙임
- 비공개 속성일 때는 맨 앞에 ‘__‘(Double Underscore)를 붙임
- 스페셜 속성일 때는 앞과 뒤에 ‘__‘(Double Underscore)를 붙임
- 모듈에서 정의되는 상수는 모두 대문자로 작성함(All Capitalized Words 형식)
2.3 변수(Variables)
- 파이썬에서의 변수는
- 선언 시에 특정한 자료형을 배정하지 않음
- 단순히 값을 보관하는 장소가 아니라 값들의 임시 저장 장소로만 사용함
- 프로그램 내에서는
- 변수는 이름으로 구별하고
- 변수에는 값인 객체가 저장된 메모리 주소인 레퍼런스를 보관함
- 레퍼런스만 저장하므로 자료형의 종류과 관계없이 쉽게 관리가 가능함
- 레퍼런스만 저장하므로 자료형의 종류과 관계없이 쉽게 관리가 가능함
- 변수의 정의
- 변수에 이름을 부여할 때 처음 글자는 반드시 문자(알파벳, 한글도 포함)나 밑줄 문자가 위치함
- 두 번째부터는 문자, 숫자, 밑줄 문자를 조합해서 구성할 수 있음
- 별도의 초기화 문법이 제공되지 않으므로 변수가 정의되면 이 변수에 반드시 어떠한 값이라도 할당해야 함
3. 주석의 표기
주석 표시하기
’’’ 여러줄 주석(따옴표 3개) print(“Hello Python!”) for i in range(5) : print(“i =>”, i) ‘’’