🏫 배움터 🐍 Python 📗 Python 언어

🐍 Python 언어

변수·조건문·반복문·자료형·함수까지 — 파이썬 기초를 실습 코드로 익힙니다.

print("Hello, Python!")
CHAPTER 1

1. 파이썬이란?Introduction

파이썬(Python)은 1991년 귀도 반 로섬이 발표한 고급 프로그래밍 언어입니다. 이름은 그가 좋아하던 코미디 〈Monty Python's Flying Circus〉에서 따왔어요. 배우기 쉽고 읽기 좋아 전 세계에서 가장 인기 있는 언어 중 하나입니다.

Python 언어의 특징

  • 플랫폼 독립적 — Windows·Mac·Linux 어디서나 실행
  • 인터프리터 언어 — 소스 코드를 바로 실행(컴파일 불필요)
  • 객체지향 언어 — 모든 것이 객체
  • 동적 타이핑 — 실행 단계에서 변수의 자료형이 결정됨

파이썬을 쓰는 이유

Simplicity 단순함Efficiency 효율성Easy 쉬움Readability 가독성Extensibility 확장성

🥚 이스터에그 · 새 셀에 import antigravity 를 실행하면 재미있는 웹툰 페이지가 열려요.
CHAPTER 2

2. 개발 환경 만들기Setup

① Anaconda 설치

아나콘다에는 파이썬과 데이터 과학용 패키지 1,400여 개가 들어 있어, 하나씩 설치하는 수고를 덜어줍니다. 가상환경·버전 관리도 쉽죠. (설치 전 기존 Python은 삭제) anaconda.com에서 최신 버전을 받습니다.

# 설치 확인
C:\Users\user> pip list          # 설치된 패키지 목록
C:\Users\user> python -V         # 파이썬 버전 확인
C:\Users\user> pip install tensorflow   # 텐서플로 추가 설치

② Jupyter Notebook

시작 메뉴에서 Jupyter Notebook을 실행하면 웹브라우저 방식으로 열립니다. [New] → Folder로 작업 폴더를 만들고, [New] → Python3로 새 노트를 만든 뒤 셀에 코드를 쓰고 Ctrl+Enter 또는 Shift+Enter로 실행합니다.

구글 Colab · 설치 없이 브라우저만으로 파이썬을 쓸 수 있는 무료 클라우드 환경입니다. 이 교재의 예제 대부분을 Colab에서 바로 실행할 수 있어요.
CHAPTER 3

3. 연산자와 기초Operators

종류연산자
산술+ - * / · //(몫) %(나머지) **(제곱)
논리and(&) or(|) not
관계> >= < <= ==(같다) !=(다르다)
포함in(포함) not in(미포함)
실습 1 자료형에 따라 + 의 의미가 다르다
print(20 + 20)        # 숫자 → 덧셈
print("20" + "20")    # 문자열 → 이어붙이기
print([20] + [20])    # 리스트 → 합치기
실행결과40 2020 [20, 20]
실습 2 여러 연산자 한눈에 보기
print("3+5*2 =", 3+5*2)
print("3.14//2 =", 3.14//2)   # 몫
print("3%2 =", 3%2)          # 나머지
print("3**2 =", 3**2)        # 제곱 = pow(3,2)
print("5<10 =", 5<10)
print("not(1==2) =", not(1==2))
print("'a' in 'abcd' =", 'a' in 'abcd')
실행결과3+5*2 = 13 3.14//2 = 1.0 3%2 = 1 3**2 = 9 5<10 = True not(1==2) = True 'a' in 'abcd' = True
실습 3 입력받아 대화하기 · f-문자열
print("심심이 : 이름을 알려주세요")
name = input()
print(f'{name} : 반가워 내 이름은 {name}이야')
print(f'심심이 : {name}님 반갑습니다')
해설
  • input()으로 키보드 입력을 문자열로 받아 name에 저장
  • 따옴표 앞에 f를 붙이면 { } 안의 값을 문자열에 끼워 넣는 포매팅이 된다

❑ 인덱스(index)와 슬라이싱

문자열·리스트는 위치(인덱스)로 값을 꺼낼 수 있습니다. 0부터 시작(정방향), 뒤에서부터는 -1(역방향)입니다.

실습 주민번호에서 정보 꺼내기
jumin = "770101-1233004"
print("성별 : " + jumin[7])
print("생년월일 : " + jumin[:6])     # 처음~5번
print("뒤 7글자 : " + jumin[7:])     # 7번~끝
print("뒤에서부터 : " + jumin[-7:])
실행결과성별 : 1 생년월일 : 770101 뒤 7글자 : 1233004 뒤에서부터 : 1233004
CHAPTER 4

4. 변수Variables

변수명 규칙

  • 영문자·숫자·밑줄(_) 사용 · 첫 글자는 숫자 불가
  • 대·소문자 구분 (변수 Aa는 다름)
  • 한글도 가능 · 예약어(keyword)는 사용 불가
  • 남들도 이해하기 쉬운 의미 있는 이름을 쓰자
실습 type · id · del
i = 1
while i <= 5:
    print(i, end=' ')
    i += 1
print()
print(type(i))    # 자료형
print(id(i))      # 식별자(메모리 주소)
del(i)            # 변수 삭제
실행결과1 2 3 4 5 <class 'int'> 1835321344
해설
  • end=' '는 줄바꿈(\n) 대신 한 칸 띄우기
  • 파이썬 변수는 선언 없이 값을 대입하는 순간 만들어진다
CHAPTER 5

5. 조건문if · elif · else

조건이 참일 때만 실행합니다. 파이썬은 들여쓰기(indent)로 코드 블록을 구분해요.

실습 1 홀수·짝수 판별
a = int(input("정수를 입력하세요 "))
if a % 2 == 0:
    print("짝수")
else:
    print("홀수")
해설
  • a % 2가 0이면 짝수, 아니면(else) 홀수
실습 2 나이대 출력 (elif 여러 개)
나이 = int(input("나이를 입력하세요 "))
if 20 <= 나이 < 30:
    print("20대")
elif 30 <= 나이 < 40:
    print("30대")
elif 40 <= 나이 < 50:
    print("40대")
else:
    print("10대 이하이거나 60대 이상입니다.")
💡 변수명은 한글도 OK · 위 예제처럼 나이 같은 한글 변수도 쓸 수 있어요(가독성을 위해 보통 영어를 권장).
CHAPTER 6

6. 반복문for · while

❑ range() — 숫자 시퀀스 만들기

  • range(a) → 0 이상 a 미만
  • range(a, b) → a 이상 b 미만
  • range(a, b, c) → a부터 c 간격 (예: range(10,0,-2) → 10,8,6,4,2)
실습 1 1~100 홀수의 합
hap = 0
for i in range(1, 101, 2):   # 1,3,5,…,99
    hap += i
print(hap)
실행결과2500
실습 2 break — 10 넘으면 멈추기
li = [1,2,3,4,5,6,7,8,9,10,11,12,13]
hap = 0
for x in li:
    if x > 10:
        break          # 반복 즉시 탈출
    hap += x
print('hap =', hap)
실행결과hap = 55
해설
  • break는 가장 가까운 반복문 하나만 빠져나온다
  • continue는 아래를 건너뛰고 다음 반복으로
실습 3 while — 정답 맞힐 때까지
ans = "강서"
guess = ""
while ans != guess:
    guess = input("최고의 영재교육 센터는? ")
print("당신은 똑똑이!! ^^")
🎯 도전 · 시도 횟수를 제한하는 변수를 추가해, 3번 틀리면 종료되게 바꿔보세요.
CHAPTER 7

7. 자료형List · Tuple · Dict · Set

파이썬의 대표 자료구조 4가지. 각각 순서·수정 가능 여부가 다릅니다.

자료구조순서(인덱스)수정생성
List 리스트있음가능[][1.2,'hi',3,True]
Tuple 튜플있음불가()(1.2,'hi',3)
Set 집합없음가능set(){1,2,3} 중복X
Dict 딕셔너리없음*가능{}{'국어':89}

① 리스트(List)

실습 리스트 메서드 활용
stuff = list()
stuff.append('book')      # 끝에 추가
stuff.append(99)
some = [1,1,2,3,5,8,13]
print(8 in some)          # 포함 여부
print(len(some), max(some), sum(some))
friends = ['Song','Cali','John']
friends.sort()             # 정렬
print(friends)
실행결과True 7 13 33 ['Cali', 'John', 'Song']
해설 — 함수 vs 메서드
  • 함수: len() max() sum() — 괄호에 자료를 넣어 사용
  • 메서드: .append() .sort() — 자료 뒤에 점(.)을 찍어 사용
실습 슬라이싱 · insert · extend
cities = ['서울','대전','대구','부산']
print(cities[0:3])         # 0~2번
cities.insert(2, '제주')    # 2번 위치에 삽입
cities.extend(['평양','개성'])  # 여러 개 추가
print(cities[::2])          # 2칸 간격
print(cities[::-1])         # 역순
슬라이싱 형식 · 변수[시작:끝:증감] — 끝 인덱스는 포함하지 않아요. append는 통째로, extend는 원소 하나씩 넣습니다.

② 튜플(Tuple) — 못 바꾸는 리스트

실습 튜플의 특징
num = (1, 9, 2)
print(num[0], max(num))
# num[1] = 30   → 오류! 튜플은 값 변경 불가
one = ('one',)     # 원소 1개면 콤마 필수
print(type(one))
실행결과1 9 <class 'tuple'>
해설
  • 튜플은 리스트보다 빨리 생성되고 메모리를 적게 쓴다
  • 바뀌면 안 되는 값(좌표·설정 등)에 적합

③ 딕셔너리(Dictionary) — key:value

실습 단어 개수 세기
counts = dict()
names = ['kim','park','moon','ryu','kim','moon']
for name in names:
    counts[name] = counts.get(name, 0) + 1
print(counts)
실행결과{'kim': 2, 'park': 1, 'moon': 2, 'ryu': 1}
해설
  • get(키, 기본값) — 키가 있으면 그 값을, 없으면 기본값(0)을 돌려줌
  • .keys() .values() .items()로 키/값/쌍을 꺼낸다

④ 집합(Set) — 중복 없음

실습 집합 연산 · 중복 제거
s1 = {1,2,3,4,4,5}   # 중복은 자동 제거
s2 = {1,2,3,5,8}
print(s1 & s2)   # 교집합
print(s1 | s2)   # 합집합
print(s1 - s2)   # 차집합

my_list = ['A','B','B','A']
print(list(set(my_list)))   # 리스트 중복 제거
실행결과{1, 2, 3, 5} {1, 2, 3, 4, 5, 8} {4} ['A', 'B']
CHAPTER 8

8. 파이썬다운 코드Pythonic Code

문자열 분리·결합

실습 split · join · map
score = '100, 92, 84, 78, 99'
score = score.split(',')        # 문자열 → 리스트
score = list(map(int, score))    # 각 원소를 int로
print(score)

favorite = ["love","dream","song"]
print('-'.join(favorite))         # 리스트 → 문자열
실행결과[100, 92, 84, 78, 99] love-dream-song

List Comprehension — 리스트를 한 줄로

실습 조건이 붙은 리스트 만들기
li = [i for i in range(11) if i % 2 == 0]
print(li)

# 피타고라스 방정식 해 찾기 (x<y<z)
pyth = [(x,y,z) for x in range(1,30)
                for y in range(x,30)
                for z in range(y,30)
                if x**2 + y**2 == z**2]
print(pyth[:3])
실행결과[0, 2, 4, 6, 8, 10] [(3, 4, 5), (5, 12, 13), (6, 8, 10)]

zip · enumerate

실습 두 리스트를 나란히 · 번호 붙이기
남주 = ['로미오','이몽룡','백석']
여주 = ['줄리엣','성춘향','자야']
for i, (a, b) in enumerate(zip(남주, 여주)):
    print(i, a, b)
실행결과0 로미오 줄리엣 1 이몽룡 성춘향 2 백석 자야
해설
  • zip은 여러 리스트를 같은 위치끼리 묶고, enumerate는 번호(인덱스)를 함께 준다
실습 소수(prime) 구하기 — Comprehension
prime = [i for i in range(2,50)
              if all(i%j != 0 for j in range(2,i))]
print(prime)
실행결과[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
CHAPTER 9

9. 함수Functions

자주 쓰는 코드나 큰 프로그램을 작은 블록으로 묶는 것이 함수입니다. def로 정의해요.

매개변수 vs 인수 · 매개변수(parameter)는 함수가 받는 변수, 인수(argument)는 호출할 때 넘기는 값입니다. return으로 결과를 함수 밖으로 돌려줍니다.
실습 1 return 있는 함수 vs 없는 함수
# return이 없는 경우
def plus_print(a, b):
    print(a + b)

# return이 있는 경우
def times_return(a, b):
    return a * b

plus_print(3, 4)                 # 7 출력만
print(times_return(3, 4))         # 12
print(times_return(3, ['Python']))  # 리스트도 곱셈됨!
실행결과7 12 ['Python', 'Python', 'Python']
실습 2 부호 판별 함수
def sign(x):
    if x > 0:   return '양수'
    elif x < 0: return '음수'
    else:      return '0'

for x in [-1, 0, 1]:
    print(sign(x))
실행결과음수 0 양수
실습 3 지역변수 vs 전역변수
x = "전역변수"
def func_01():
    x = "지역변수"   # 함수 안에서만 유효
    print(x)
def func_02():
    print(x)          # 전역변수 사용

func_01()
func_02()
print(x)
실행결과지역변수 전역변수 전역변수
해설
  • 전역변수와 이름이 같은 지역변수를 선언하면 함수 안에서는 지역변수가 우선
실습 4 소인수분해 + 예외처리
def 소인수분해(n):
    인수 = []
    나눔수 = 2
    while 나눔수 <= n:
        if n % 나눔수 == 0:
            인수.append(나눔수)
            n = n / 나눔수
        else:
            나눔수 += 1
    print(인수)

if __name__ == '__main__':   # 프로그램 시작점
    N = int(input("자연수 N: "))
    try:
        소인수분해(N)
    except Exception as e:
        print(e)
해설
  • __name__ == '__main__' — 이 파일을 직접 실행할 때만 동작하는 시작점
  • try / except — 오류가 나도 프로그램이 멈추지 않게 예외 처리
CHAPTER 10

10. 심화 · 라이브러리Advanced

기초를 익혔다면, 원본 교재의 이 주제들로 확장할 수 있습니다. (필요하면 각 단원도 이 교재처럼 상세하게 만들어 드립니다.)

주제내용
모듈·패키지import로 남이 만든 기능 가져오기, math·random 등 표준 라이브러리
코딩 테스트알고리즘 문제 풀이 (정렬·탐색·재귀 등)
웹 크롤링HTML 태그를 분석해 웹 데이터 수집 (BeautifulSoup)
데이터 분석NumPy(배열·수치연산) · Pandas(표 데이터) · Matplotlib(그래프)
딥러닝TensorFlow 환경 구축과 프로그래밍, Colaboratory 활용
암호소수·소인수분해를 이용한 공개키 암호(RSA)의 원리
수학이 궁금하다면? AI·딥러닝의 수학 원리는 🧮 AI 수학 강의에서 직접 조작하며 배울 수 있어요.

🐍 여기까지가 Python 언어 기초입니다.

배운 걸 직접 코드로 실행해 보는 게 가장 빠른 공부예요.
구글 Colab이나 Jupyter를 열고 위 예제들을 하나씩 따라 쳐보세요!