콘텐츠로 이동

1장: 데이터 타입과 변수 — Python과 첫 대화

Python 실행 방법

Python을 실행하는 방법은 두 가지입니다.

CLI (대화형) 모드

터미널에서 python 또는 py를 입력하면 >>> 프롬프트가 뜹니다.

>>> print("Hello, World!")
Hello, World!
>>> 2 + 3
5

REPL(Read-Evaluate-Print Loop): 입력 → 계산 → 출력을 반복합니다. 즉시 결과를 확인할 수 있지만 종료하면 사라집니다.

스크립트 모드

.py 파일을 만들어서 실행합니다.

hello.py → python hello.py

파일로 저장되므로 재사용·배포·자동화에 적합합니다.

모드 특징 용도
CLI (대화형) 즉시 실행, 종료하면 사라짐 빠른 테스트
스크립트 파일로 저장, 반복 실행 가능 실제 프로그래밍

데이터 타입이란?

컴퓨터는 모든 것을 01로 저장합니다.

01000001 = (int) 65  또는  (str) 'A'

같은 비트라도 어떤 타입인지에 따라 의미가 달라집니다.

데이터 타입은 Python에게 두 가지를 알려줍니다: 1. 어떤 종류의 값인가 (숫자인지, 문자인지…) 2. 어떤 연산이 가능한가 (더할 수 있는지, 이어 붙일 수 있는지…)

Python의 주요 데이터 타입

str         문자열        "hello", "abc"
int         정수          42, -7, 0
float       실수          3.14, -0.5
bool        참/거짓        True, False
list        리스트         [1, 2, 3]
tuple       튜플           (1, 2, 3)
dict        딕셔너리        {"key": "value"}

C vs Python — 동적 타이핑

// C: 타입을 직접 선언해야 함
int A = 42;
# Python: 그냥 값을 넣으면 됨 (동적 타이핑)
A = 42

Python은 값을 보고 자동으로 타입을 결정합니다.

타입 확인: type()

print(type(-3))       # <class 'int'>
print(type(3.0))      # <class 'float'>
print(type("314"))    # <class 'str'>
print(type(4 / 2))    # <class 'float'>  ← 주의!
타입
-3 int
3.0 float
3.14 float
"314" str
"" str
4/2 float

str vs int 연산

# int: 산술 연산
print(10 + 3)    # 13
print(10 * 3)    # 30

# str: 이어 붙이기, 반복
print("10" + "3")    # 103  ← 숫자가 아니라 문자 연결!
print("10" * 3)      # 101010

변수 (Variable)

변수란?

변수는 값에 이름을 붙이는 것입니다.

A = 3
  • A: 변수 이름 (variable name)
  • =: 대입 연산자 (assignment operator)
  • 3: 값 (value) — 메모리 어딘가에 저장됨
A = 3
print(A)    # 3
A = 99      # 재대입 (rebinding)
print(A)    # 99

메모리 주소 확인: id()

A = 3
print(id(A))      # 예: 140234567890
print(hex(id(A))) # 예: 0x7f8b2c3d4e50  (16진수로 표시)

id()는 값이 저장된 메모리 주소를 돌려줍니다.

변수 이름 규칙

가능한 것:

이름 설명
_a 언더스코어로 시작
abcd 소문자
a3 문자 + 숫자
none 소문자는 키워드 아님
_1_ 언더스코어와 숫자 조합

불가능한 것:

이름 이유
ab cd 공백 불가
3a 숫자로 시작 불가
None 파이썬 예약어
True 파이썬 예약어
if, for 파이썬 예약어
a3.14 특수문자 불가

규칙 요약: - 알파벳 또는 _로 시작 - 대소문자 구분 (ageAge) - 공백, 특수문자, 파이썬 예약어 사용 불가

주요 내장 함수

print() — 출력

print("Hello, World!")     # Hello, World!
name = "지민"
print(name)                # 지민
print("이름:", name)       # 이름: 지민

함수 개념으로 보면:

f(x) = 2x
print("Hello") → 입력: "Hello" → 출력: 화면에 Hello

input() — 입력 받기

name = input("이름을 입력하세요: ")
print("안녕하세요,", name)
이름을 입력하세요: 지민
안녕하세요, 지민

input()은 항상 문자열(str)로 돌려줍니다.

age = input("나이: ")
print(type(age))     # <class 'str'>

# 숫자로 쓰려면 형 변환 필요
age = int(input("나이: "))
print(age + 1)

type() — 타입 확인

print(type(42))        # <class 'int'>
print(type(3.14))      # <class 'float'>
print(type("hello"))   # <class 'str'>
print(type(True))      # <class 'bool'>

id() — 메모리 주소

x = 10
print(id(x))      # 정수 (메모리 주소)
print(hex(id(x))) # 16진수로 표시

실습 미션

미션 1: 나를 소개하는 프로그램

이름, 나이, 좋아하는 과목을 input()으로 입력받아 출력하는 프로그램을 만드세요.

이름을 입력하세요: 지민
나이를 입력하세요: 17
좋아하는 과목: 수학
---
안녕하세요! 저는 지민입니다.
나이: 17살
좋아하는 과목: 수학

미션 2: 타입 탐정

아래 각 값의 타입을 type()으로 확인하고, 예상과 실제를 비교해보세요.

values = [-3, 3.0, 3.14, 314, "314", "", "int64", 4/2, True]
for v in values:
    print(v, "→", type(v))

미션 3: 원의 넓이

반지름을 입력받아 원의 넓이를 계산하세요.

넓이 = π × r²   (π = 3.14)
r = float(input("반지름: "))
# 여기에 코드 작성

# 반지름: 5
# 원의 넓이: 78.5

미션 4: 변수 스왑

변수 ab의 값을 서로 바꾸세요. (임시 변수를 사용하거나 Python의 튜플 방식을 써보세요)

a = 10
b = 20
# 여기에 코드 작성
print(a)    # 20
print(b)    # 10

핵심 요약

개념 설명
CLI 모드 >>> 프롬프트, 대화형 실행
스크립트 모드 .py 파일로 저장·실행
데이터 타입 값의 종류 (int, float, str, bool…)
동적 타이핑 Python이 타입을 자동으로 결정
변수 값에 이름을 붙여 메모리에 저장
print() 화면에 출력
input() 사용자 입력을 str로 받음
type() 데이터 타입 확인
id() 메모리 주소 확인