00. Python 기초¶
Python 특징
인터프리터 언어(Interpreter)
소스 코드를 컴파일하지 않고, 한 줄씩 소스코드를 읽어서 바로 실행
컴파일 언어에 비해 느릴 수 있지만 빌드 과정이 없이 바로 실행 가능함.
객체 지향 프로그래밍(Object Oriented Programming)
파이썬은 모두 객체로 이뤄져 있음.
동적 타이핑(Dynamic Typing)
변수에 별도의 타입 지정이 필요 없음.
Python 개발 환경¶
대화형 환경
Python 기본 Interpreter
Python Jupyter Notebook
스크립트 실행
.py 파일을 작성하고 IDE 혹은 Text editor 활용
Python Interpreter / IDLE
인터프리터가 대화형 모드로 동작함
프롬포트(
>>>
)에 코드를 작성하면 해당 코드가 실행됨.여러 줄의 코드가 작성되는 경우 보조 프롬포트(
...
)가 사용됨.
Python이 설치된 환경에서는 기본적으로 활용 가능하나 디버깅 및 코드 편집, 반복 실행이 어려움.
Python Jupyter Lab
웹 브라우저 환경에서 코드를 작성할 수 있는 오픈소스
Syntax Highlighting, Indentation, Tab completion 등 편의기능 제공함.
브라우저에서 코드를 실행하고 결과를 확인할 수 있음
HTML, LaTex, PNG, SVG을 바탕으로 다양한 표현이 가능함.
Markdown을 기반으로 문서를 작성할 수 있음.
기초 문법 (Syntax)¶
코드 스타일 가이드
코드를 ‘어떻게 작성할지’에 대한 가이드라인
PEP8 (https://www.python.org/dev/peps/pep-0008/) - 파이썬에서 제안하는 스타일 가이드
Google Style guide (https://google.github.io/styleguide/pyguide.html) 등 기업, 오픈소스 등에서 사용되는 스타일 가이드
주석¶
주석 (Comment)¶
한 줄 주석은 #
으로 표현합니다.
여러 줄의 주석은
한 줄 씩
#
을 사용해서 표현하거나,"""
또는'''
(여러줄 문자열, multiline string)으로 표현할 수 있습니다. (multiline은 주로 함수/클래스를 설명 (docstring)하기 위해 활용됩니다.)
# 한줄 주석
# print('hello') # 이 줄은 실행되지 않습니다.
print('world')
world
# 여러줄 주석 (multiline string)
"""
이것은
여러줄에 걸친
주석을 만드는 코드입니다.
"""
print('world')
world
def foo():
'''이 함수는 foo입니다.
docstring으로 함수나 클래스의 기능을 설명합니다.'''
print(foo.__doc__)
이 함수는 foo입니다.
docstring으로 함수나 클래스의 기능을 설명합니다.
코드 라인¶
파이썬 코드는 ‘1줄에 1문장(statment)’이 원칙입니다.
문장(statement)은 파이썬이 실행 가능(executable)한 최소한의 코드 단위입니다.
Note
기본적으로 파이썬에서는
;
을 작성하지 않습니다.한 줄로 표기할때는
;
을 작성하여 표기할 수 있습니다.
# print문을 두 번 쓸 경우
print('hello')
print('world')
hello
world
# print문 2개를 한 줄로 이어서 작성할 경우
print('hello')print('world')
File "C:\Users\User\AppData\Local\Temp/ipykernel_28272/2492589894.py", line 4
print('hello')print('world')
^
SyntaxError: invalid syntax
# ;을 통해 코드를 구분시켜 오류 해결
print('hello'); print('world')
# 하지만 위와 같이 한줄에 두 개 이상의 코드를 작성하는 작성법은 잘 쓰지 않습니다.
hello
world
줄을 여러줄 작성할 때는 역슬래시\
를 사용하여 아래와 같이 할 수 있다.
# print문을 통해 하나의 문자열을 두 줄로 작성하여 실행해봅시다.
# 아래의 코드를 실행시켜 오류 메시지를 확인해봅시다.
print('hello
world')
File "C:\Users\User\AppData\Local\Temp/ipykernel_28272/2393845461.py", line 4
print('hello
^
SyntaxError: EOL while scanning string literal
# print문을 통해 실행되는 코드 예시 작성해봅시다.
# hello 뒤에 \를 붙이고 다시 코드를 실행해봅시다.
print('hello\
world')
helloworld
# PEP-8 가이드에 따르면 여러줄 문자열은 아래와 같이 쓰는 게 관례(convention)입니다.
print("""hello
world""")
hello
world
[]
{}
()
는 \
없이도 가능합니다.
# 대괄호를 사용한 list를 만들어봅시다.
# list 대괄호 안에는 '짜장면', '짬뽕', '탕수육','군만두', '물만두', '왕만두'를 두 줄로 채워넣어 봅시다.
# 닫히는 대괄호의 위치
# (1). 첫번째 요소(짜장면)의 시작 위치
lunch1 = [
'짜장면', '짬뽕', '탕수육',
'군만두', '물만두', '왕만두',
]
# (2) 생성자(lunch2)가 시작되는 위치
lunch2 = [
'짜장면', '짬뽕', '탕수육',
'군만두', '물만두', '왕만두',
]
Note
PEP-8 가이드에 따르면, list 가 여러 줄로 작성될 때 닫히는 대괄호의 위치는
첫번째 문자(요소) 위치에 오거나
마지막 줄에서 생성자가 시작되는 첫번째 열에 위치합니다.
다른 (소, 중)괄호도 동일한 컨벤션을 따릅니다.