C
Python/입문/Lesson 02

Python 소개

30분·theory
이 챕터
1/7
Python

Python 소개

🎯 이 lesson 을 읽고 나면

이 lesson 을 다 읽고 나면 아래 3가지를 자신 있게 할 수 있습니다.

  • ✅ Python 이 AI/데이터 표준 언어가 됐는지
  • ✅ Python 3.x 기준 venv + requirements.txt 셋업
  • ✅ print / input / type / dir 4개 내장 함수

학습 목표를 체크리스트로 두고 다 답할 수 있게 되면 lesson 을 닫으세요.

Python 문법 — 5분 정리

Python은 읽기 쉬운 프로그래밍 언어입니다. "거의 한국어처럼 짧다" 가 핵심.

각 예제마다 코드 → 실행 결과 → 설명 순서로 봅니다.



0. Python 기본 자료형 — 표 한 장으로

Python 의 모든 프로그램은 "값" 으로 만들어집니다. 가장 자주 쓰는 6가지를 먼저 외워두세요.

타입표기예시언제 쓰나
int정수28, -3, 0숫자의 기본값. 거의 다 이걸로.
float실수3.14, 175.5소수점 있는 수.
str문자열"홍길동", 'hi'글자. 따옴표 필수.
bool참/거짓True, False조건 결과. 대문자 시작 주의.
list리스트[1, 2, 3]순서 있는 묶음. 변경 가능.
dict사전{"name": "홍"}key→value 매핑. 이름으로 찾기.

결론: 처음엔 int · float · str · bool 4개만 알면 됩니다. list · dict 는 자료구조 섹션에서.

Java 와의 결정적 차이 — Python 은 타입 선언 X:

java
// Java — 타입 명시 필수
int 나이 = 28;
String 이름 = "홍";
python
# Python — 값 보고 자동 판단
나이 = 28        # int 로 자동 인식
이름 = "홍"      # str 로 자동 인식

이게 "Python 이 짧다" 의 1차 비밀.


1. 변수 — 이름에 값을 담는다

python
이름 = "홍길동"      # 따옴표로 감싸면 글자 (string)
나이 = 28           # 따옴표 없으면 숫자 (int)
키  = 175.5         # 소수점 있으면 실수 (float)
학생 = True         # 참/거짓 (bool)

= 는 "왼쪽 변수에 오른쪽 값을 넣는다" 의미. 수학의 등호 X.
Java 와 차이: String 이름 이런 타입 선언 필요 X — Python 이 알아서 판단.


2. 출력 print() — 화면에 보여주기

python
print("안녕!")
print("이름:", 이름)
print(f"{이름} 은 {나이} 살")

실행 결과:

code
안녕!
이름: 홍길동
홍길동 은 28 살

f"..."f-string — 중괄호 {} 안에 변수 끼워 넣는 모던 방식 (Python 3.6+).


3. 입력 input() — 사용자에게 받기

python
이름 = input("이름은? ")    # 사용자가 타이핑 + 엔터
print(f"반갑다 {이름}!")

터미널 동작:

code
이름은? 홍길동      ← 사용자 입력
반갑다 홍길동!     ← 프로그램 출력

⚠️ input()항상 글자(string) 로 받음. 숫자가 필요하면 int(input(...)) 변환.


4. 콜론 : + 들여쓰기 — Python 의 "블록" 표시

조건문·반복문·함수에 들어가기 전, Python 만의 블록 표시법 을 먼저 알아야 합니다.

Java 는 중괄호 { }, Python 은 콜론 : + 들여쓰기 4칸:

java
// Java
if (조건) {
    System.out.println("참");
}
python
# Python
if 조건:                # ← 콜론 필수
    print("참")         # ← 들여쓰기 4칸 = 블록 안

다음 키워드 뒤엔 반드시 콜론:

python
if 조건:           # if / elif / else 뒤
for i in range(5): # for / while 뒤
def 인사():        # def (함수) 뒤
class 사람:        # class 뒤
try:               # try / except / finally 뒤

콜론 잊으면 SyntaxError:

python
if 점수 >= 90    # ❌ 콜론 없음 → SyntaxError: expected ':'
    print("A")

콜론은 "왼쪽:오른쪽 짝" 표시에도 사용:

python
사람 = {"이름": "홍길동"}    # dict — key:value
숫자들[1:4]                  # 슬라이싱 — 시작:끝
def 더하기(a: int) -> int:   # 타입 힌트 — 변수:타입

→ 콜론 = "다음 줄부터 블록" 또는 "왼쪽:오른쪽 짝" 신호.


5. 조건문 if·elif·else — 분기

python
점수 = 85

if 점수 >= 90:
    print("A")
elif 점수 >= 80:        # else if = elif (한 글자 줄임)
    print("B")
else:
    print("C")

실행 결과: B (85 는 80 이상이라 두 번째 분기 진입)

핵심 규칙:

  • 중괄호 { } 없음 — 들여쓰기 4칸 으로 블록 구분
  • if 줄 끝에 : 콜론 필수
  • == (같음) / != (다름) / >= (이상) / <= (이하)

6. 반복문 for·while

python
# range — 숫자 순회
for i in range(1, 6):    # 1, 2, 3, 4, 5 (6 미포함!)
    print(i)

실행 결과: 1

2

3

4

5 (각 줄)

python
# 리스트 순회
과일들 = ["사과", "배", "감"]
for 과일 in 과일들:
    print(f"{과일} 한 입")

실행 결과:

code
사과 한 입
배 한 입
감 한 입

⚠️ range(1, 6) 은 1 부터 6 직전까지 (5 까지). Python 의 흔한 함정.


7. 함수 def — 같은 일을 여러 번 쓸 때

python
def 인사(이름):                  # def 함수이름(매개변수):
    return f"안녕 {이름}"        # 결과를 돌려줌

# 호출
메시지 = 인사("홍길동")
print(메시지)

실행 결과: 안녕 홍길동

문법 분해:

  • def = define (정의) 의 약자
  • (이름) = 받을 값 (매개변수). 여러 개면 (이름, 나이)
  • return = 결과를 호출한 곳에 돌려준다. 없으면 None
  • 함수 호출은 함수이름(값)() 잊으면 함수 자체를 가리킴

8. 자료구조 4가지

python
# ─ 리스트 (list) — 순서 있고 변경 가능
숫자들 = [1, 2, 3]
숫자들.append(4)        # 끝에 추가
print(숫자들)

실행 결과: [1, 2, 3, 4]

python
# ─ 튜플 (tuple) — 순서 있고 변경 X (잠금)
좌표 = (37.5, 127.0)
print(좌표[0])          # 첫 번째 = 37.5

실행 결과: 37.5

python
# ─ 딕셔너리 (dict) — key:value
사람 = {"이름": "홍길동", "나이": 28}
print(사람["이름"])
사람["직업"] = "개발자"  # 추가
print(사람)

실행 결과:

code
홍길동
{'이름': '홍길동', '나이': 28, '직업': '개발자'}
python
# ─ 세트 (set) — 중복 자동 제거
태그 = {"python", "ai", "python"}
print(태그)

실행 결과: {'python', 'ai'} (중복 'python' 사라짐)

언제 무엇을:

  • 순서 중요 + 변경 → list
  • 순서 중요 + 잠금 → tuple
  • 이름으로 찾기 → dict
  • 중복 제거 → set

9. 클래스 class — 객체 만들기

python
class 사람:
    def __init__(self, 이름, 나이):    # 생성자 — 객체 만들 때 호출
        self.이름 = 이름                # self = 자기 자신
        self.나이 = 나이

    def 인사(self):
        print(f"안녕, 나는 {self.이름} ({self.나이}살)")

# 객체 생성 + 메서드 호출
홍 = 사람("홍길동", 28)
홍.인사()

실행 결과: 안녕, 나는 홍길동 (28살)

핵심 개념:

  • __init__ = 객체 처음 만들 때 자동 호출 (Java 의 생성자)
  • self = 그 객체 자신 (Java 의 this). 모든 메서드 첫 매개변수로 필수
  • 사람("홍길동", 28) 호출 = __init__ 자동 실행

한 줄 요약

패턴키워드
변수= (타입 X)
출력print()
입력input() (글자만)
분기if·elif·else (들여쓰기 + :)
반복for in range() / for in list
함수def 이름(매개변수): return 값
자료list·tuple·dict·set
객체class + __init__ + self

이 8개 패턴이 Python 의 90%.

🐍 실행해보기 — Python 소개

위 개념을 실제로 코드로 실행해보세요. 값을 바꿔가며 어떻게 동작하는지 직접 확인하는 게 가장 빠른 학습.
✏️ Python 코드
📟 콘솔 출력
▶ 실행 버튼을 눌러보세요
🐍 Pyodide로 실제 Python 실행 — 첫 실행 시 로딩 3~5초 소요

🤖 AI 에게 이렇게 요청해보세요

이 lesson 의 개념을 알면 AI 에게 구체적으로 지시할 수 있습니다. 막연한 "고쳐줘" 가 아니라 어휘를 가진 요청 — 그게 토큰 절약의 출발점입니다.

  • "이 Python 코드에 Python 소개 개념 적용해줘"
  • "이 코드에 type hint + pytest 단위 테스트 추가해줘"
  • "Python 소개 관련 PEP 8 위반 점검해줘"

왜 이게 토큰을 줄이나

개념을 모를 땐 AI 답변을 받고도 "그게 뭐예요?" 를 다시 물어야 합니다. 그 "다시 물음" 이 토큰을 잡아먹습니다. 개념 한 번 익혀두면 대화가 한 번에 끝납니다.

먼저 읽으면 좋은 개념: Python 완전 정복
다음 추천: 자료형 (Data Types)
Python이란? - Python