Post

[Python] 개념 자료형 연산 조건문

📌 들어가며

오늘부터 파이썬을 새롭게 배우기 시작했다. 처음 보는 언어지만 Java보다 직관적이고 사람과 닮아 있어 배우기 쉬웠다. 이번 글에서는 파이썬 소개부터 자료형(리스트·튜플·딕셔너리·Set), 변수와 주소값, 연산·조건문까지 정리한다.


1. 파이썬이란?

1990년 귀도 반 로섬이 개발한 인터프리터 언어(≠ 컴파일러). 코미디 쇼 제목에서 따왔다. 교육용으로도, 실무에서도 널리 쓰인다. (구글 소프트웨어의 50% 이상, 인스타그램·드롭박스 등)

특징설명
인간다운 언어문법이 쉽고 직관적
무료지만 강력개발 속도 빠름
활용 분야GUI(pyqt), 웹(flask/django), 수치연산(Numpy), 데이터분석(Pandas), DB 등

2. 기본 자료형

파이썬은 자바와 달리 선언 시 자료형을 붙이지 않는다. 값을 보고 스스로 판단한다.

1
2
3
4
5
6
7
8
9
a = 5           # 정수 (세미콜론·자료형 없음)
b = 'Hello'     # 문자열
c = "python's"  # 홑따옴표 출력 → 쌍따옴표로 감싸거나 \' 사용

# 삼중 따옴표: 줄바꿈 그대로 표현
a = '''
Hello
World
'''

3. 리스트

배열과 유사하며 수정·삽입·삭제 가능. 대괄호 [ ]로 정의.

1
2
3
4
5
6
7
a = [1, 2, 3]
a[0]        # 인덱싱 → 1
a[1:3]      # 슬라이싱 → 인덱스 1,2

[1,2,3] + [4,5,6]   # 연결
[1,2,3] * 3         # 반복 → [1,2,3,1,2,3,1,2,3]
len(a)              # 길이

주요 메소드:

메소드역할
append(v)맨 뒤에 하나 추가
extend([...])리스트를 이어붙임 (+연산 유사)
insert(i, v)i 위치에 삽입
remove(v)값으로 삭제(첫 번째)
pop()마지막 값을 빼내옴(제거+반환)
sort() / reverse()오름차순 / 역순
index(v) / count(v)위치 / 개수

💡 append([5,6])[5,6]하나의 원소로 넣지만, extend([5,6])은 원소들을 이어붙인다.


4. 튜플 · 딕셔너리 · Set

튜플 — 수정 불가

리스트와 비슷하나 수정·삭제 불가(immutable). 소괄호 (). 상수 같은 값에 사용.

1
t1 = (1,)   # 원소 1개일 때도 쉼표 필수

딕셔너리 — key-value

자바 HashMap처럼 key로 value를 저장·조회. 중괄호 {}.

1
2
grade = {'pey': 10, 'juliet': 9}
grade['pey']   # 10

💡 key는 중복 불가. 그래서 key에는 (수정 가능한) 리스트는 못 들어가고, (수정 불가한) 튜플은 가능하다. 주요 메소드: keys(), values(), items(), clear(). in으로 존재 여부(bool) 확인.

Set — 중복 없음, 순서 없음

중복 불가 + 순서 없음(인덱싱 불가). 중복 제거 필터로 활용.

1
2
3
4
5
6
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
s1 & s2    # 교집합 (intersection)
s1 | s2    # 합집합 (union)
s1 - s2    # 차집합
s1.add(4); s1.update([5,6]); s1.remove(2)

5. 변수와 주소값 (중요)

변수는 값이 있는 메모리 위치(주소값)를 가리킨다. id()로 주소값을 확인한다.

1
2
a = [1, 2, 3]
b = a          # 같은 주소를 가리킴 → a==b는 True
1
2
3
a = [1, 2, 3]
b = a[:]        # 값만 복사 (다른 주소)
a[1] = 4        # a만 바뀜, b는 그대로 → a==b는 False

💡 b = a같은 리스트를 가리키지만, b = a[:](또는 copy())는 값만 복사한 다른 리스트다. 그래서 원본 수정이 사본에 영향을 주지 않는다.

다중 대입 & 스왑:

1
2
3
a, b = ('python', 'great')   # 언패킹
a = b = 'python'             # 같은 값
a, b = b, a                  # 스왑 (임시 변수 불필요!)

슬라이싱·join 활용:

1
2
3
4
5
hong = '881120-1073484'
hong[:6]    # '881120'
hong[7:]    # '1073484'

' '.join(['Life','is','too','short'])   # "Life is too short"

6. 조건문과 연산자

비교(< > == != >= <=)·논리(and or) 연산자는 다른 언어와 같다.

1
2
3
4
5
6
7
8
9
10
pocket = ['paper', 'cellphone', 'money']
if 'money' not in pocket:   # not in도 가능 (bool)
    print("택시")
else:
    print("걷기")

# elif = else if
if 'money' in pocket:  print('택시')
elif card:             print("택시")
else:                  print("걷기")

boolean 활용while a:는 a에 값이 있으면 True:

1
2
3
a = [1, 2, 3, 4]
while a:            # 리스트가 빌 때까지
    print(a.pop())

📝 정리

1
2
3
4
5
6
7
8
파이썬 기초
├─ 자료형    자료형 선언 없음 (값으로 판단)
├─ 리스트    [ ] 수정 O, append/extend/insert/pop
├─ 튜플      ( ) 수정 X (원소 1개는 쉼표)
├─ 딕셔너리   { } key-value (key 중복 X, 튜플 가능)
├─ Set       중복 X 순서 X, 교/합/차집합
├─ 변수      주소값 가리킴, b=a vs b=a[:]
└─ 스왑      a, b = b, a
개념한 줄 정의
리스트 vs 튜플수정 가능 vs 불가
딕셔너리key로 value 조회
Set중복 없는 집합
b=a vs b=a[:]같은 주소 vs 값 복사

파이썬은 정말 “인간과 가까운” 언어다. 자료형을 스스로 판단하고, a, b = b, a로 스왑까지 한 줄이다. 다만 변수가 주소값을 가리킨다는 점(b=a vs b=a[:])은 처음에 꼭 짚고 넘어가야 할 개념이다.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.