3. 기본 문법 배우기
우리가 영어를 배울 때 문법을 배우는 것처럼, 컴퓨터 언어에도 문법이 있습니다. 이번 챕터에서는 파이썬의 간결하고 직관적인 문법을 간단한 예제를 통해 쉽게 배워보겠습니다.
3.1 변수와 데이터 타입
변수는 데이터를 저장하기 위한 이름입니다. 수학에서 문자 x가 숫자 10을 나타낼 때처럼, 프로그래밍에서도 변수는 특정 값을 저장하는 역할을 합니다.
데이터 타입은 변수에 저장되는 값의 종류를 의미합니다. 예를 들어, 숫자, 문자열, 참/거짓 등이 데이터 타입의 예시입니다. 파이썬은 변수에 데이터가 저장될 때 자동으로 타입을 결정합니다. 아래의 예시를 봅시다.
# 변수 선언 및 데이터 저장
x = 10 # 정수형(int)
y = 3.14 # 실수형(float)
name = "Alice" # 문자열(str)
is_active = True # 불리언(bool)
3.1.1 정수형 (int)
정수형은 정수를 나타내는 데이터 타입입니다. 음수, 양수 모두 사용할 수 있습니다.
- 예시:
10
,-5
,0
age = 25 # 나이를 나타내는 정수형 변수
count = -10 # 음수 값도 가능합니다
3.1.2 실수형 (float)
실수형은 소수점이 있는 숫자를 나타냅니다. 정밀한 계산을 할 때 유용합니다.
- 예시:
3.14
,-2.7
,0.0
pi = 3.14159 # 원주율을 나타내는 실수형 변수
temperature = -5.5 # 온도를 나타내는 변수
3.1.3 문자열 (str)
문자열은 문자들의 집합으로, 따옴표 ('
또는 "
)로 감싸서 표현합니다. 문자열이라는 말이 생소하지만 “한 글자 보다 더 긴 것” 이라고 생각하시면 됩니다.
- 예시:
"Hello"
,"Python"
,'A'
greeting = "Hello, World!" # 문자열 변수
greeting = 'Hello, World!' # 문자열 변수 (작은 따옴표를 사용해도 같은 값)
문자열 포매팅
문자열을 만드는 여러 가지 방법이 있습니다:
나중에 더 다룰테지만 문자열 안에 아래와 같이 변수를 사용할 수도 있습니다.
name = "Wonie"
greeting = f"안녕, 내 이름은 {name}야" # 변수를 문자열 안에 사용
print(greeting) # 안녕, 내 이름은 Wonie야
3.1.4 불리언 (bool)
불리언은 True
또는 False
두 가지 값만을 가질 수 있는 타입입니다.
- 예시:
True
,False
is_logged_in = True # 로그인 상태를 나타내는 불리언 변수
if (is_logged_in):
print("이미 로그인 하셨습니다.")
불리언을 사용하는 예시는 나중에 조건문 챕터에서 더 자세히 다룰 예정입니다.
3.1.5 리스트 (list)
리스트는 여러 개의 항목을 순서대로 저장할 수 있는 데이터 타입입니다. 다양한 타입의 값을 함께 저장할 수 있습니다.
- 예시:
[1, 2, 3]
,['apple', 'banana', 'cherry']
,[1, 'Hello', True]
fruits = ['apple', 'banana', 'cherry'] # 과일 목록을 저장하는 리스트
numbers = [1, 2, 3, 4, 5] # 숫자 목록
mixed = [1, "Hello", True] # 다양한 타입의 값을 같은 리스트에 저장할 수 있음
3.1.6 튜플 (tuple)
튜플은 리스트와 비슷하지만, 값이 변경되지 않는 불변 데이터 타입입니다.
- 예시:
(1, 2, 3)
,('apple', 'banana')
coordinates = (10, 20) # x, y 좌표
colors = ('red', 'green', 'blue') # 색상 목록
어라? 튜플과 리스트가 굉장히 비슷하죠? 둘 중 하나만 있어도 될 것 같은데 왜 다른 데이터 타입으로 나눠져 있을까요? 리스트와 튜플의 사용 방법과 차이점에 대해서는 리스트와 튜플 챕터에서 좀 더 자세히 다루겠습니다.
3.1.7 딕셔너리 (dict)
딕셔너리는 키-값 쌍으로 데이터를 저장하는 데이터 타입입니다. 각 키는 고유 (unique) 해야하며, 키를 통해 값을 불러올 수 있습니다.
- 예시:
{'name': 'Alice', 'age': 25}
,{'apple': 3, 'banana': 5}
person = {'name': 'Alice', 'age': 25} # 사람의 정보 저장
print(person['name']) # Alice ('name' 키로 'Alice' 라는 값을 불러옴)
inventory = {'apple': 3, 'banana': 5} # 과일 재고 목록
print(inventory['apple']) # 3 ('apple' 키로 3 이라는 값을 불러옴)
3.1.8 집합 (set)
집합은 중복되지 않는 고유한 값들의 모음입니다. 순서는 보장되지 않습니다.
- 예시:
{1, 2, 3}
,{'apple', 'banana', 'cherry'}
- 언제 사용할까?: 중복을 제거하고 고유한 값들만 저장하고 싶을 때 사용합니다.
unique_numbers = {1, 2, 3, 3, 4} # 중복된 3은 하나로 합쳐짐
fruits = {'apple', 'banana', 'cherry'} # 과일 목록
딕셔너리와 집합 또한 아주 비슷하죠? 딕셔너리와 집합의 사용 방법과 차이점에 대해서는 딕셔너리와 집합 챕터에서 좀 더 자세히 다루겠습니다.
3.1.9 None 타입 (NoneType)
None
은 아무런 값을 가지지 않는 것을 의미합니다. 주로 변수를 초기화할 때 사용됩니다.
- 예시:
None
- 언제 사용할까?: 아직 값이 정해지지 않았음을 명시적으로 나타낼 때 사용합니다.
data = None # 아직 값이 정해지지 않은 변수
3.1.10 타입 변환
파이썬에서는 데이터 타입을 변환할 수 있는 다양한 방법을 제공합니다. 이를 통해 변수의 타입을 변경할 수 있습니다.
int()
: 정수형으로 변환float()
: 실수형으로 변환str()
: 문자열로 변환bool()
: 불리언으로 변환
x = 10
y = 3.14
z = "123"
# 정수형으로 변환
print(int(y)) # 3
print(int(z)) # 123
# 실수형으로 변환
print(float(x)) # 10.0
# 문자열로 변환
print(str(x)) # "10"
# 불리언으로 변환
print(bool(x)) # True
print(bool(0)) # False
3.2 출력하기
파이썬에서 출력을 할 때는 print()
함수를 사용합니다. 위의 예시들에서 몇번 등장 했죠? 이 함수는 괄호 안에 전달된 값을 화면에 출력해 줍니다. 예를 들어, 아래 코드를 실행하면 “Hello, World!”가 화면에 출력됩니다.
print("Hello, World!")
# Hello World 가 화면에 출력 됨
또한, 여러 개의 값을 콤마로 구분하여 print()
함수로 출력할 수도 있어요. 이 경우, 각 값은 공백으로 구분되어 출력됩니다.
name = "Alice"
age = 25
print("이름:", name, "나이:", age)
# 이름: Alice 나이: 25 가 화면에 출력 됨
3.3 기본 연산자
파이썬은 사칙연산을 위한 다양한 연산자를 제공합니다. 기본적인 연산자에는 덧셈, 뺄셈, 곱셈, 나눗셈 등이 있습니다.
# 기본 연산자 예제
a = 15
b = 4
print(a + b) # 덧셈: 19
print(a - b) # 뺄셈: 11
print(a * b) # 곱셈: 60
print(a / b) # 나눗셈: 3.75
print(a // b) # 몫: 3
print(a % b) # 나머지: 3
print(a ** b) # 제곱: 15의 4승 (50625)
3.3.1 비교 연산자
비교 연산자는 두 값을 비교하는 데 사용됩니다. 결과는 항상 True
또는 False
가 됩니다.
==
: 두 값이 같은지 비교!=
: 두 값이 다른지 비교>
: 왼쪽 값이 큰지 비교<
: 왼쪽 값이 작은지 비교>=
: 왼쪽 값이 크거나 같은지 비교 (항상=
가 뒤에 오는 것을 기억하세요)<=
: 왼쪽 값이 작거나 같은지 비교
x = 10
y = 20
print(x == y) # False
print(x != y) # True
print(x > y) # False
print(x < y) # True
print(x >= y) # False
print(x <= y) # True
비교 연산자를 잘못된 데이터 타입에 사용하려고 하면 에러가 나게 됩니다.
name = "Wonie"
b = 4
print(name > b) # 에러: 문자열에는 비교 연산자를 사용할 수 없습니다.
3.3.2 논리 연산자
논리 연산자는 불리언 값들을 조합하여 논리적인 판단을 내릴 때 사용합니다.
and
: 두 조건이 모두 참일 때True
or
: 두 조건 중 하나라도 참이면True
not
: 조건의 반대 값 반환
x = True
y = False
print(x and y) # False (y 가 거짓이기 때문에)
print(x or y) # True (x 가 참이기 때문에)
print(not x) # False (x 가 참이기 때문에)
논리 연산자의 사용법은 나중에 조건문 챕터에서 더 자세히 다룰 예정입니다.
3.3.3 연산자 우선순위
파이썬에서는 연산자에도 우선순위가 있습니다. 우선순위가 높은 연산자가 먼저 계산됩니다. 괄호를 사용하여 우선순위를 명시적으로 지정할 수 있습니다.
- 우선순위가 높은 연산자:
**
(제곱),*
,/
,//
,%
(곱셈, 나눗셈, 몫, 나머지) - 우선순위가 낮은 연산자:
+
,-
(덧셈, 뺄셈)
a = 2
b = 3
c = 4
print(a + b * c) # 14 (b * c 먼저 계산)
print((a + b) * c) # 20 (a + b 먼저 계산)
3.4 변수 이름 규칙
변수를 정의할 때는 다음과 같은 규칙을 지켜야 합니다:
- 변수 이름은 문자나 밑줄(
_
)로 시작해야 합니다. - 변수 이름은 영문자, 숫자, 밑줄을 포함할 수 있습니다.
- 대소문자를 구별합니다 (
age
와Age
는 다른 변수입니다).
# 유효한 변수 이름
my_variable = 5
_myVariable = 10
variable2 = 15
한글변수 = 30
# 유효하지 않은 변수 이름 (숫자로 시작하면 안 됨)
2variable = 20 # 오류 발생
3변수 = 30 # 오류 발생
3.5 주석 사용하기
주석 (영어로 “코멘트”) 은 코드에 대한 설명을 추가할 때 사용합니다. 위의 예시에서 몇번 봤듯이 파이썬에서는 #
을 사용하여 주석을 작성합니다. 주석은 코드에 영향을 미치지 않으며, 코드를 이해하기 쉽게 만듭니다.
# 이 코드는 두 수의 합을 계산합니다
x = 5
y = 10
print(x + y) # 출력: 15
3.6 들여쓰기 규칙
파이썬에서는 들여쓰기가 매우 중요합니다. 들여쓰기를 통해 코드 블록을 구분합니다. 일반적으로 공백 4칸을 사용하여 들여쓰기를 합니다.
if True:
print("들여쓰기 예제")
if True:
print("중첩된 들여쓰기 예제")
이제 파이썬의 기본 문법과 변수, 데이터 타입, 연산자들을 어떻게 사용하는지 알아봤습니다. 다음 챕터에서는 리스트와 튜플에 대해서 더 알아봅시다.