[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[:])은 처음에 꼭 짚고 넘어가야 할 개념이다.
Comments powered by Disqus.