이 글에서는 파이썬 프로그래밍의 기초 문법들을 소개하며, 변수, 데이터 타입, 연산자, 조건문, 반복문, 함수, 리스트, 딕셔너리, 모듈, 예외처리, 파일 입출력 등에 대해 예제와 함께 간단히 설명 하도록 한다.
변수와 자료형(데이터 타입)
변수(Variable)는 데이터 값의 식별자이다. 파이썬에서는 변수를 선언할 때 별도의 타입 지정이 필요하지 않는다. 다만 대입하는 값에 따라 타입이 정해진다. 변수를 정의하고 데이터를 저장하면 추후에 변수를 통해 데이터를 참조할 수 있다.
# 변수 선언
x = 10
# 데이터 타입
int_var = 10
float_var = 3.14
str_var = "Hello, World!"
bool_var = True
기본 자료형
파이썬에서 제공하는 기본 자료형은 다음 표와 같이 Scalar Type과 Data Structure로 나눌 수 있다.
Scalar Types(단일값) | Data Structure (복수값) |
숫자 (정수: int / 실수: float) | 리스트 (list) |
문자열(str) | 딕셔너리(dict) |
불(bool) | 튜플(tup) |
None | 세트(set) |
type()
함수는 변수의 자료형을 파악할 때 사용된다.
print(type(2028))
<class 'int'>
print(type("안녕하세요"))
<class 'str'>
형 변환(type casting)
파이썬에서 형변환은 자료형 이름을 이용하여 형변환을 할 수 있다.
int_num = 9
float_num = float(int_num)
print(type(float_num))
<class 'float'>
연산자
기본 연산(산술)
파이썬은 기초적인 산술 연산을 모두제공한다.
+
: 더하기 연산-
: 빼기 연산*
: 곱하기 연산/
: 나누기 연산/
/ : 정수 나누기 연산 (파이썬3에서 추가됨)%
: 모듈러 연산(나머지)**
: 거듭제곱 연산
이 기본 연사들에 =
를 붙이면 변수에 바로 연산된 값이 할당 된다.(복합 대입 연산)
[입력]
a = 10
a += 2
print(a)
[출력]
12
파이썬은 하나 이상의 연산자가 수식에 나타나면 연산자 우선순위 규칙을 따르는데, 괄호는 가장 높은 순위를 가져서 괄호 안의 수식이 먼저 계산된다. 따라서, 헛갈리는 경우 괄호를 사용하여 가독성을 높이는 것이 좋다.
4 * (26 - 9)
(4 + 5) ** (9 - 5)
(9 + 54) / 6
논리 연산
and
: And 연산or
: Or 연산not
: Not 연산
포함 연산
포함 연산은 해당 값이 iterable
한 두 번재 인수에 포함되는지 여부를 반환한다. 그 결과 값은 bool
형이다.
in
: 해당 값이 포함되는지 여부를 반환not in
: 반대 논리를 수행
포함 연산의 결과 값은 bool
형이다.
비교 연산
비교 연산은 두 인자가 같은 값을 가지는지 여부를 반환한다. 연산 결과는 bool
이다. (bool
은 True/False
값을 갖는다.)
- <
- >
- >=
- <=
- ==
- !=
객체 비교
객체 비교 연산은 두 인자가 같은 객체를 가리키는지 여부를 반환한다.
is
is not
조건문 (if)
파이썬 조건문은 제시된 조건이 맞으면 코드 블록을 실행하고, 아니면 실행하지 않는다. 코드 블록은 들여쓰기를 하여 정렬한다. 들여쓰기는 조건문 뿐만 아니라, 반복문, 함수에서도 동일하게 들여쓰기를 하여 코드 블럭을 표현한다. 아래 코드와 같이 들여쓰기 오류가 있는 경우, 문법 오류로 처리된다.
if condition:
statement 1
statement 2
statement 3
조건이 하나면 if문, 조건이 2개면 if-else문, 조건이 3개 이상 여러개일경우, if-elif-else문 을 사용한다.
# if문
if x > 5:
print("x는 5보다 큽니다.")
elif x == 5:
print("x는 5입니다.")
else:
print("x는 5보다 작습니다.")
반복문(for, while)
반복문은 동일한 코드를 여러번 반복해서 실행하고자 할때 사용한다. 반복문은 아래 예제 코드 처럼 for문과 while문을 사용할 수 있다.
# for문
for i in range(5):
print(i)
# while문
while x > 0:
print(x)
x -= 1
for문
for문의 기본 구조는 “for
변수 in
범위:”로 표현한다.
[입력]
any_list = [0, 1, 2, 3, 4]
for val in any_list:
print(val)
[출력]
0
1
2
3
4
while문
while문은 특정 조건을 만족하는 동안 반복을 계속 수행한다. 기본 구조는 “while
조건:”으로 표현한다.
[입력]
num = 0
while (num < 10):
num += 2
print(num)
[출력]
2
4
6
8
10
함수 정의와 호출
함수란 어떤 input을 넣었을 때, 기능을 수행한 결과를 ouput으로 내보내는 것을 의미한다. 함수를 사용하는 목적은 반복적으로 사용하는 기능을 함수로 표현하여 재사용성을 증가시키고, 코드 가독성을 높이기 위함이다. 아래 코드는 함수 정의와 호출의 기본 구조를 보여준다.
[입력]
# 함수 정의
def greet(name):
return "안녕하세요, " + name + "님!"
# 함수 호출
message = greet("홍길동")
print(message)
[출력]
안녕하세요, 홍길동님!
리스트와 딕셔너리
리스트와 딕셔너리는 여러 개의 데이터를 담을 수 있는 자료형이다. 리스트는 기본 자료형의 나열이고, 딕셔너리는 키(key)와 값(value) 쌍으로 구성된 자료형이다.
# 리스트
numbers = [1, 2, 3, 4, 5]
fruits = ["사과", "바나나", "오렌지"]
# 딕셔너리
person = {
"이름": "홍길동",
"나이": 30,
"직업": "개발자"
}
리스트(list
)
리스트는 보통 관련된 값들을 모아서 하나의 값으로 취급하는 자료형이다. 리스트는 [대괄호]
를 사용하여 생성하고, 각각의 데이터는 콤마(,)를 사용하여 구분한다.
[입력]
list4 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list4.append(10)
print(list4)
[출력]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
딕셔너리(dictionary
)
딕셔너리는 키(key)와 값(value)쌍으로 구성된 항목들의 집합으로, {중괄호}
를 사용하여 {키:값, 키:값, …} 형태로 입력하여 생성한다.
[입력]
dictionary1 = {"대한민국":"서울", "프랑스":"파리", "중국":"베이징"}
dictionary1.keys()
[출력]
dict_keys(['대한민국', '프랑스', '중국'])
모듈과 패키지
한 번 구현한 파이썬 코드를 다른 파이썬 파일의 코드에서 공유해서 사용 할 수 있도록 모듈(module)로 활용한다. 하나의 모듈이 독립적으로 제공되기도 하지만, 보통 다른 모듈과 함께 하나의 모음집으로 제공되는데 이를 패키지(package)라 한다.
사용할 때는 아래와 같이 import
후에 사용된다.
# 모듈 임포트
import math
result = math.sqrt(16)
# 패키지 사용
from urllib.request import urlopen
response = urlopen("https://www.example.com")
예외처리
파이썬 코드를 수행하다보면 오류를 만나게 되는데, 이러만 오류를 처리하는 방법으로 예외처리를 한다.
오류 예외 처리 방법은 try-except
문을 사용한다. 아래 코드는 divide by zero 예외처리하는 부분이다.
try:
result = 10 / 0
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
파일 입출력
프로그램에서 입력을 받을 때 사용자가 직접 입력하는 방식을 사용할 수도 있으나, 파일을 통한 입출력을 하는 경우 번번히 입력을 할 필요가 없다. 아래 코드들은 파일 쓰기/읽기 간단한 예제이다.
# 파일 쓰기
with open("파일명.txt", "w") as f:
f.write("안녕하세요!")
# 파일 읽기
with open("파일명.txt", "r") as f:
content = f.read()
print(content)