Supplementary Materials

1. 자료형 (Data Type)

파이썬은 변수에 저장되는 값에 따라 자료형이 결정된다.

Python 프로그램이 다루는 모든 데이터는 자료형을 가진 객체이며, 각 객체에는 가능한 연산을 결정하는 자료형이 있다.

type()으로 객체의 자료형을 확인할 수 있다.

type(5)    # int
type(3.0)  # float

주요 스칼라 자료형

  • int (integer; 정수): 소수점 없는 숫자 (예: 100, -5)
  • float (floating-point; 실수): 소수점 있는 숫자 (예: 3.14, 10.0)
  • bool (부울): 참·거짓 (예: True, False)
  • NoneType: 값이 없음을 나타내는 특수 형식 (예: None)

주요 시퀀스 자료형

  • list (리스트)
  • tuple (튜플)
  • string (문자열): 따옴표로 감싸진 문자들의 나열 (예: "Hello", 'Python')

자료형 변환도 가능하다.

float(3)  # 3.0
int(3.9)  # 3 (소수 부분을 잘라냄)

객체의 특징

불변 객체 (Immutable)

  • 정수, 실수, 문자열, 튜플 등은 한 번 생성되면 값을 변경할 수 없음
  • (값이 바뀌면 새로운 객체가 생성됨)

가변 객체 (Mutable)

  • 리스트, 딕셔너리 등은 값을 변경 가능함

2. 표현식과 연산자

객체와 연산자를 결합하면 표현식이 된다.

  • 모든 표현식은 값과 자료형을 가진다.
  • 표현식은 계산되어 하나의 값을 만든다.

연산자

기호연산자사용례결괏값복합 연산자
*곱셈2*714*=
**지수(power)2**7128-
/실수 나눗셈7/41.75/=
//정수 나눗셈7//41-
&나머지7%43%=

산술 연산자

  • 사칙연산 +, -, *, / (나눗셈, 실수 결과)
  • ** (거듭제곱/지수)
  • // (정수 나눗셈, 몫)
  • % (나머지)

연산 우선순위

  • 기본적으로 괄호 () → 거듭제곱 ** → 곱셈·나눗셈 *, / → 덧셈·뺄셈 +, - 순으로 계산된다.
  • 같은 우선순위의 연산은 일반적으로 왼쪽부터 수행된다.

표현식

표현식의미
i + j덧셈
i - j뺄셈
i * j곱셈
i / j나눗셈, 결과는 float
i % j나머지
i ** j거듭제곱

cf.

import math를 통해 삼각함수, 제곱근, 로그함수 등을 사용할 수도 있다.

  • math.sqrt(9.0), math.log(1.0)

3. 변수와 할당

변수 할당은 이름과 값을 연결하는 동작이며 수학의 등식과 다르다.

할당 연산

할당 연산자 = (Assignment Operator; 또는 대입 연산자)

  • =는 수학의 등식이 아니라, 오른쪽 값을 왼쪽 이름에 연결하는 할당 연산자이다.
pi     = 3.14159
radius = 2.2
area   = pi * radius**2

다중 할당

  • x = y = z = 0 (여러 변수 초기화)
  • x, y = 10, 20

값 교환

  • x, y = y, x (파이썬 특유의 편리한 기능)

복합 대입 연산자

  • +=, -=, *=, /=
  • (예: x += yx = x + y와 동일)

변수

변수 (Variable)

  • 변수를 사용하면 값을 저장하여 재사용할 수 있고, 나중에 코드를 쉽게 변경할 수 있다.
  • 컴퓨터의 메모리 공간에 이름을 붙이는 것이다.
  • 별도의 선언 없이, 변수에 값을 할당(=)하면 자동으로 생성된다.
  1. 프로그래밍의 변수는 수학의 미지수와 다르다.
radius = radius + 1
  • 이는 방정식을 푸는 것이 아니라 현재 radius 값을 읽어 1을 더한 뒤, 결과를 다시 radius에 할당한다는 뜻이다.
  1. 또한 radius를 변경해도 이미 계산된 area는 자동으로 바뀌지 않는다.
area = pi * radius**2
radius = radius + 1
 
# area는 이전 radius로 계산한 값을 그대로 유지
area = pi * radius**2  # 다시 계산해야 갱신됨

작동 원리

  • 변수는 실제 값을 저장하는 상자라기보다는, 객체(값)가 저장된 메모리 주소를 가리키는(참조하는) 이름표에 가깝다.
  • id(변수) 함수를 통해 객체의 주소값을 확인할 수 있다.

이름 규칙

  • 숫자로 시작 불가 (영문자 또는 밑줄 문자로 시작)
  • 영문자, 숫자, 밑줄(_) 사용 가능
  • 대소문자 구별
  • 공백 포함 불가 (공백이 구분자), 특수 기호 사용 불가, 예약어(키워드) 사용 불가

Case

  • 낙타체(CamelCase): myNewCar (단어의 첫 글자를 대문자로)
  • 뱀체(Snake_case): my_new_car (단어 사이를 밑줄로 연결)
  • 보통 변수는 낙타체로, 상수는 대문자로 작성한다.

4. 기타

주석 (Comment)

  • # 뒤의 내용은 실행되지 않으며, 코드 설명이나 임시 비활성화 용도로 사용

상수 (Constant)

  • 관례적으로 대문자로 이름을 지어 변하지 않는 값임을 표시
  • (예: PI = 3.14, TAX_RATE)

5. 문자열 (String)

표현

  • 문자열은 문자, 숫자, 공백 등을 따옴표로 감싼 값이다.
    • 큰따옴표("...") 또는 작은따옴표('...')로 감싼다.
    • 여러 줄은 삼중 따옴표(""" 또는 ''')를 사용한다.
hi = "hello there"
name = "ana"

연산

  • 덧셈 +: 문자열을 연결한다.
    • 문자열 연결 시 공백이 자동으로 추가되지 않으므로 " "를 직접 넣어야 한다.
  • 곱셈 *: 문자열을 반복한다.
    • (예: "Hello" * 3 "HelloHelloHello")
greeting = hi + " " + name
silly = hi + " " + name * 3
  • 인덱싱: 문자열 내부의 특정 문자에 접근 (0부터 시작, -1은 마지막 문자)
  • 특수 문자(이스케이프): \n (줄바꿈), \t (탭) 등
  • 형 변환: 숫자와 문자열은 직접 연산 불가. str(), int(), float() 함수를 사용하여 변환해야 함

cf. 문자열 포매팅

  • 직접 넣기: “I eat“, variable, “apples.“
  • f-문자열 포매팅: f“나의 이름은 {variable}입니다.”
  • 문자열 포맷 코드: “I eat %d apples.” % 3
  • format 함수: “I eat {variable} apples.“.format(3)

cf. 문법 오류

문법 오류(SyntaxError)

  • 문자열의 따옴표 누락, 닫는 따옴표 없음 (SyntaxError: invalid syntax)
  • Print처럼 대문자 사용 (파이썬은 대소문자 구분)

6. 입출력

출력

print() 함수

  • 계산 결과를 화면에 출력할 때 사용한다.
print(3 + 2)  # 5

+로 연결하려면 숫자를 문자열로 변환해야 한다.

x_str = str(x)
print("my fav num is " + x_str)

콤마(,)를 사용하여 여러 값을 나열하여 출력할 수 있다.

x = 1
# 문자열과 숫자를 함께 출력
print("my fav num is", x, ".", "x =", x)

형식화된 출력

  • f-string, % 서식 지정자 등을 사용해 소수점 자리수 등을 조절 가능

입력 input()

사용자로부터 데이터를 입력받을 때 사용한다.

text = input("Type anything... ")

input()의 결과는 항상 문자열을 반환한다. 숫자로 계산하려면 형 변환이 필요하다.

num = int(input("Type a number... "))
print(5 * num)

예를 들어 "3"을 그대로 5배 하면 "33333"이지만, int("3")을 5배 하면 15이다.