Day 1. 점프 투 파이썬 - 자료형

채원·2025년 7월 2일

점프 투 파이썬

목록 보기
1/5

개요

파이썬에는 다음과 같은 자료형이 존재한다.

  • 숫자형
  • 문자열
  • 리스트
  • 튜플
  • 딕셔너리
  • 집합

여기서는 각각의 자료형에 대해서 설명한다.


숫자형

숫자형에는 다음과 같은 종류가 존재한다.

  • 정수형
  • 실수형 : 다음과 같은 표현이 가능하다.
>>> a = 4.24E10
>>> a = 4.24e-10
  • 8진수와 16진수 : 각각 다음과 같이 표현한다.
# 8진수
>>> a = 0o177
>>> print(a)
127

# 16진수
>>> a = 0x8ff
>>> b = 0xABC
>>> print(b)
2748

이러한 숫자형 자료형을 연산자를 통해 연산 가능하다. 연산자는 산술 연산자복합 연산자로 나뉜다.

  • 산술 연산자 : +, -, *, /, ** (제곱), %, // (몫)
  • 복합 연산자 : +=, -=, *=, /=, //=, %=, **=

문자열

문자열은 ', ", ''', """로 표현할 수 있다.

# 한 줄 문자열
a = ‘Hello’
b = “Python”

# 여러 줄 문자열
c = ‘’‘여러 줄 문자열’’’
d = “”“여러 줄 문자열”””

이러한 문자열은 연산자를 통해 연산 가능하다. 연산자는 연결/반복 연산자포매팅 방법으로 나뉜다.

  • 연결 연산자 : + (문자열 이어 붙이기)
  • 반복 연산자 : * (문자열 반복)
  • 문자열 길이 구하기 : len(문자열)
  • 문자열 인덱싱 : "Python"[0]'P', "Python"[-1]'n'
  • 문자열 슬라이싱 : "Life is too short"[0:4]'Life'

문자열 포매팅에는 다음과 같은 방법이 있다.

  • % 포매팅
“I eat %d apples.” % 3
  • format() 메서드
“I eat {} apples”.format(3)
“I ate {0} apples and {1} oranges”.format(3, 5)
  • f-string (Python 3.6+)
name = “철수”
age = 20
f”My name is {name} and I am {age} years old.”

문자열 관련 함수는 다음과 같다.

“hobby”.count(‘b’)       # 2
“hobby”.find(‘b’)        # 2
“hobby”.index(‘b’)       # 2
“,”.join([‘a’,‘b’,‘c’])  # ‘a,b,c’
“hi”.upper()             # ‘HI’
“HI”.lower()             # ‘hi’
“   hi   “.strip()       # ‘hi’
“Life is short”.replace(“short”, “long”)  # ‘Life is long’
“a:b:c:d”.split(’:’)     # [‘a’, ‘b’, ‘c’, ‘d’]

리스트

리스트는 대괄호 []로 감싸서 표현한다.

a = [1, 2, 3]
b = [‘a’, ‘b’, ‘c’]
c = [1, 2, [‘a’, ‘b’]]  # 리스트 안에 리스트

리스트는 다양한 연산과 메서드를 사용할 수 있다.

  • 인덱싱 : a[0]1, c[2][0]'a'
  • 슬라이싱 : a[1:][2, 3]
  • 덧셈 : [1, 2] + [3, 4][1, 2, 3, 4]
  • 반복 : [1, 2] * 2[1, 2, 1, 2]
  • 길이 구하기 : len(a)3

리스트 값 수정/삭제도 가능하다.

a = [1, 2, 3]
a[2] = 4          # [1, 2, 4]
del a[1]          # [1, 4]

리스트 관련 함수는 다음과 같다.

a = [1, 3, 2]

a.append(4)       # [1, 3, 2, 4]
a.sort()          # [1, 2, 3, 4]
a.reverse()       # [4, 3, 2, 1]
a.index(3)        # 1
a.insert(1, 100)  # [4, 100, 3, 2, 1]
a.remove(100)     # [4, 3, 2, 1]
a.pop()           # [4, 3, 2]
a.count(2)        # 1
a.extend([5, 6])  # [4, 3, 2, 5, 6]

튜플

튜플은 리스트와 유사하지만 수정, 삭제가 불가능한 자료형이다. 소괄호 ()를 사용한다.

t1 = (1, 2, 3)
t2 = (‘a’, ‘b’, ‘c’)
t3 = (1, 2, (‘a’, ‘b’))

요소가 1개인 튜플은 쉼표를 반드시 붙여야 한다.

t4 = (1,)     # 올바른 튜플
t5 = (1)      # 그냥 정수형

튜플도 인덱싱, 슬라이싱, 연산이 가능하다.

  • 인덱싱 : t1[0]1
  • 슬라이싱 : t1[1:](2, 3)
  • 덧셈 : t1 + t2(1, 2, 3, 'a', 'b', 'c')
  • 반복 : t2 * 2('a', 'b', 'c', 'a', 'b', 'c')
  • 길이 구하기 : len(t1)3

하지만, 요솟값을 변경할 수 없기 때문에 sort, insert, remove, pop과 같은 내장 함수는 존재하지 않는다.

딕셔너리

딕셔너리는 키(key)와 값(value) 쌍으로 데이터를 저장하는 자료형이다. 중괄호 {}를 사용하며, 각 쌍은 :로 구분한다.

a = { ‘name’: ‘철수’, ‘age’: 20 }
b = { 1: ‘one’, 2: ‘two’ }
c = { ‘a’: [1, 2, 3] }

딕셔너리 사용 방법

  • 값 참조 : a['name']'철수'
  • 새로운 항목 추가 : a['school'] = 'ABC'
  • 기존 값 수정 : a['age'] = 21
  • 항목 삭제 : del a['name']

딕셔너리 관련 함수

a = { ‘name’: ‘철수’, ‘age’: 20, ‘school’: ‘ABC’ }

a.keys()        # dict_keys([‘name’, ‘age’, ‘school’])
a.values()      # dict_values([‘철수’, 20, ‘ABC’])
a.items()       # dict_items([(‘name’, ‘철수’), (‘age’, 20), (‘school’, ‘ABC’)])
a.get(‘name’)   # ‘철수’
a.get(‘height’) # None (오류 발생 안 함)
‘name’ in a     # True
‘height’ in a   # False

a.clear()       # 모든 항목 삭제

get()은 존재하지 않는 키에 접근해도 오류가 나지 않음. 기본값을 줄 수도 있음:
a.get('height', '없음')'없음'

집합 (Set)

집합은 중복을 허용하지 않고, 순서가 없는 자료형이다. set() 함수나 중괄호 {}를 사용해 만든다.

s1 = set([1, 2, 3])
s2 = {1, 2, 3}
s3 = set(“hello”)  # 중복 제거됨 → {‘e’, ‘h’, ‘l’, ‘o’}

집합의 특징

  • 중복 자동 제거
  • 순서가 없어 인덱싱 불가 (리스트나 튜플로 변환 필요)

집합 연산

s1 = set([1, 2, 3, 4])
s2 = set([3, 4, 5, 6])

s1 & s2    # 교집합 → {3, 4}
s1 | s2    # 합집합 → {1, 2, 3, 4, 5, 6}
s1 - s2    # 차집합 → {1, 2}
s1 ^ s2    # 대칭차집합 → {1, 2, 5, 6}

집합 관련 함수

s = set([1, 2, 3])
s.add(4)          # 원소 추가 → {1, 2, 3, 4}
s.update([5, 6])  # 여러 원소 추가 → {1, 2, 3, 4, 5, 6}
s.remove(3)       # 특정 원소 제거 → {1, 2, 4, 5, 6}

불 자료형은 True, False 두 가지 값만을 가진다. 첫 글자는 반드시 대문자로 써야 한다.

a = True
b = False

비교 연산의 결과

비교 연산자는 항상 불 값을 반환한다.

1 < 2     # True
3 == 3    # True
1 != 2    # True
4 > 7     # False

불 연산자

  • and : 둘 다 참일 때만 참
  • or : 둘 중 하나라도 참이면 참
  • not : 참 → 거짓, 거짓 → 참
True and False     # False
True or False      # True
not True           # False
not False          # True

자료형의 참/거짓 판별

다음 값들은 거짓(False) 으로 취급된다.

  • None
  • 0 (정수형, 실수형 모두)
  • '' (빈 문자열)
  • [], {}, () (빈 리스트, 딕셔너리, 튜플)

그 외의 값들은 모두 참이다.

bool(0)        # False
bool(””)       # False
bool([])       # False
bool(123)      # True
bool(“hello”)  # True

배운 점

  • 문자열 선언, 포매팅이 이렇게 다양하게 가능하구나... 특히 포매팅은 f-string 방식을 통해서 하는 코드를 많이 봤는데, 사실 아직도 잘 못 외웠다ㅎ 이번 기회에 제대로 사용할 수 있도록 익혀야겠다.
  • 튜플, 딕셔너리, 셋 - 리스트는 아는데, 저 셋에 대해서는 이름만 알고 어떻게 선언하는지, 어떤 특징을 가지고 있는지 잘 몰랐다. 이번에 알게 되어서 상황에 따라서 잘 사용할 수 있을 것 같다. (상수 -> 튜플, map -> 딕셔너리 같은 식으로)
  • 자료형의 참, 거짓 관련 부분에서 파이썬에서는 이런 규칙을 가지고 있다는 것을 배웠다. 이 또한 문제를 풀 때 잘 활용할 수 있을 것 같다.
profile
학부생

0개의 댓글