본문 바로가기
IT & AI/AI 지식

파이썬(Python) 자료형과 변수 쉽게 배우기

by 빛나는해커 2024. 11. 13.

1. 파이썬(Python)이란?

  • 파이썬(Python)은 1991년에 귀도 반 로섬(Guido van Rossum)이 개발한 프로그래밍 언어이다.
  • 간결하고 읽기 쉬운 문법 덕분에 초보자와 숙련된 개발자 모두에게 사랑받는 언어다.
  • 웹 개발, 데이터 분석, 인공지능, 게임 개발 등 다양한 분야에서 사용된다.
  • 파이썬의 인기는 그 강력한 확장성과 쉽게 접근할 수 있는 학습 자원 덕분에 꾸준히 증가하고 있다.

2. 파이썬(Python)의 특징

  1. 파이썬은 인간다운 언어이다.
    파이썬은 마치 사람이 일상에서 사용하는 언어처럼 자연스럽게 작성할 수 있도록 설계되었다. 코드의 가독성이 매우 높아, 처음 프로그래밍을 배우는 사람들도 쉽게 이해할 수 있다.
  2. 문법이 쉬워 빠르게 배울 수 있다.
    파이썬은 복잡한 문법을 최소화하고, 직관적인 구조를 통해 초보자도 빠르게 배울 수 있다. 이는 특히 교육용 언어로서 파이썬의 인기를 높이는 주요한 이유다.
  3. 무료이지만 강력하다.
    파이썬은 오픈 소스 라이선스에 따라 무료로 제공되지만, 그 기능은 매우 강력하다. 여러 방면에서 사용할 수 있는 수많은 라이브러리와 프레임워크가 파이썬의 능력을 확장해 준다.
  4. 간결하다.
    파이썬은 "코드는 읽는 사람이 쓰는 사람보다 많다"라는 철학을 기반으로 설계되었다. 따라서 파이썬 코드는 간결하고 명확하여 유지보수가 용이합니다.
  5. 프로그래밍을 즐기게 해 준다.
    파이썬의 간결함과 직관적인 문법은 프로그래밍의 진입 장벽을 낮춰주고, 개발자들이 코드를 작성하는 것 자체를 즐기게 만들어준다.
  6. 개발 속도가 빠르다.
    파이썬은 코드를 간결하게 작성할 수 있어 다른 언어들에 비해 개발 속도가 매우 빠르다. 이는 특히 스타트업이나 프로토타입 개발 등에서 큰 장점이 된다.

3. 파이썬(Python): 자료형

(1) 숫자형

  • 파이썬에서 숫자형은 정수(int), 실수(float), 복소수(complex)로 나눌 수 있다.
  • 예를 들어, 정수는 a = 10과 같이, 실수는 b = 3.14와 같이 사용할 수 있다. 복소수는 c = 1 + 2j와 같은 형태로 표현된다.
# 숫자형 예시
integer_value = 10      # 정수형
float_value = 3.14      # 실수형
complex_value = 1 + 2j  # 복소수형
print(integer_value, float_value, complex_value)
  • 숫자형을 다룰 때 자주 사용하는 연산자로는 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/), 몫(//), 나머지(%), 거듭제곱(**) 등이 있다.
  • 예를 들어, 5 + 3은 8을, 10 // 3은 3을 반환한다.
# 숫자형 연산자 예시
addition = 5 + 3          # 덧셈
subtraction = 10 - 4      # 뺄셈
multiplication = 7 * 2    # 곱셈
division = 15 / 3         # 나눗셈
floor_division = 10 // 3  # 몫
modulus = 10 % 3          # 나머지
exponentiation = 2 ** 3   # 거듭제곱
print(addition, subtraction, multiplication, division, floor_division, modulus, exponentiation)

 

(2) 문자열 자료형

  • 문자열은 문자들의 집합으로, 작은따옴표(')나 큰따옴표(")로 감싸서 만든다.
  • 예를 들어, 'Hello'나 "World"처럼 사용할 수 있다.
# 문자열 예시
string1 = 'Hello'
string2 = "World"
print(string1, string2)
  • 문자열 안에 작은따옴표나 큰따옴표를 포함하려면, 서로 다른 따옴표를 사용하는 것이 가장 간단하다.
  • 예를 들어, "Python's strength"처럼 큰따옴표로 감싸면 작은따옴표를 사용할 수 있다.
# 작은따옴표 포함 예시
quote = "Python's strength is its readability."
print(quote)
  • 여러 줄로 구성된 문자열은 작은따옴표나 큰따옴표 세 개를 연속으로 사용하여 표현할 수 있다.
# 여러 줄 문자열 예시
multi_line_string = """
이것은 여러 줄의 문자열입니다.
여러 줄로 작성할 수 있습니다.
"""
print(multi_line_string)
  • 문자열은 덧셈 연산자를 이용해 합칠 수 있고, 곱셈 연산자를 이용해 반복할 수 있다.
# 문자열 연산 예시
concatenation = 'Hello' + ' ' + 'World'
repetition = 'Python! ' * 3
print(concatenation)
print(repetition)
  • 문자열에서 특정 위치의 문자에 접근하는 것을 인덱싱이라고 하며, 일부 문자열을 추출하는 것을 슬라이싱이라고 한다.
# 문자열 인덱싱과 슬라이싱 예시
s = "Python"
first_character = s[0]    # 인덱싱
substring = s[1:4]        # 슬라이싱
print(first_character)    # 출력: 'P'
print(substring)          # 출력: 'yth'
  • 문자열 포매팅은 문자열 내에 변수의 값을 삽입하는 것을 의미한다.
  • 파이썬에서는 여러 가지 문자열 포매팅 방법이 있다. %를 사용한 문자열 포맷팅 방법이 있으며, 포맷 코드로 데이터의 유형을 지정할 수 있다.
# %를 사용한 문자열 포매팅
name = "Alice"
age = 25
formatted_string = "Hello, %s. You are %d years old." % (name, age)
print(formatted_string)
  • 포맷 코드를 사용하여 다양한 데이터 타입을 문자열에 삽입할 수 있다.
# 포맷 코드와 숫자 사용 예시
pi = 3.141592
formatted_string = "The value of pi is approximately %.2f." % pi
print(formatted_string)
  • format() 메서드를 사용하여 문자열에 값을 삽입할 수도 있다.
# format() 함수 사용 예시
name = "Bob"
age = 30
formatted_string = "Hello, {}. You are {} years old.".format(name, age)
print(formatted_string)
  • Python 3.6부터는 f-string을 사용하여 더 간편하게 포매팅할 수 있다.
# f-string 사용 예시
name = "Charlie"
age = 35
formatted_string = f"Hello, {name}. You are {age} years old."
print(formatted_string)
  • 문자열과 관련된 다양한 함수들이 있다.
  • 예를 들어, len() 함수는 문자열의 길이를 반환하고, upper() 함수는 문자열을 대문자로 변환한다.
# 문자열 관련 함수 예시
s = "python"
length = len(s)          # 문자열 길이 반환
uppercase = s.upper()    # 문자열을 대문자로 변환
print(length)            # 출력: 6
print(uppercase)         # 출력: 'PYTHON'

 

(3) 리스트 자료형

  • 리스트는 여러 개의 값을 순서대로 저장하는 자료형이다.
  • 리스트는 대괄호([])를 사용하여 생성하며, 서로 다른 자료형의 값들도 포함할 수 있다.
# 리스트 생성 예시
my_list = [1, 2, 3, "Python", 3.14]
print(my_list)
  • 리스트도 문자열처럼 인덱싱과 슬라이싱이 가능하다.
# 리스트 인덱싱과 슬라이싱 예시
my_list = [10, 20, 30, 40, 50]
print(my_list[0])    # 인덱싱: 10
print(my_list[1:3])  # 슬라이싱: [20, 30]
  • 리스트는 + 연산자를 사용해 결합하거나, * 연산자를 사용해 반복할 수 있다.
# 리스트 연산 예시
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined_list = list1 + list2
repeated_list = list1 * 2
print(combined_list)   # 출력: [1, 2, 3, 4, 5, 6]
print(repeated_list)   # 출력: [1, 2, 3, 1, 2, 3]
  • 리스트의 요소는 인덱스를 사용하여 수정하거나, del 키워드를 사용하여 삭제할 수 있다.
# 리스트 수정 및 삭제 예시
my_list = [10, 20, 30]
my_list[1] = 200       # 수정
print(my_list)         # 출력: [10, 200, 30]
del my_list[0]         # 삭제
print(my_list)         # 출력: [200, 30]
  • 리스트에는 요소 추가(append()), 요소 삽입(insert()), 요소 제거(remove()) 등의 다양한 함수가 있다.
# 리스트 관련 함수 예시
my_list = [1, 2, 3]
my_list.append(4)      # 요소 추가
my_list.insert(1, 100) # 특정 위치에 요소 삽입
my_list.remove(2)      # 특정 값 제거
print(my_list)         # 출력: [1, 100, 3, 4]

 

(4) 튜플 자료형

  • 튜플은 여러 개의 값을 순서대로 저장하는 자료형으로, 리스트와 매우 비슷하지만, 튜플의 값은 변경할 수 없다.
  • 튜플은 소괄호(())를 사용하여 생성한다.
# 튜플 생성 예시
tuple_example = (1, 2, 3, "Python", 3.14)
print(tuple_example)
  • 튜플은 불변(immutable) 자료형이기 때문에, 생성한 후에는 값을 변경하거나 삭제할 수 없다.
  • 만약 변경을 시도하면 오류가 발생한다.
# 튜플 값 변경 시도 예시
tuple_example = (1, 2, 3)
# tuple_example[0] = 100  # 오류 발생: TypeError: 'tuple' object does not support item assignment
  • 튜플도 리스트처럼 인덱싱과 슬라이싱이 가능하다.
  • 하지만 수정이 불가능하다는 점에서 차이가 있다.
# 튜플 인덱싱과 슬라이싱 예시
tuple_example = (10, 20, 30, 40, 50)
print(tuple_example[1])    # 출력: 20
print(tuple_example[1:4])  # 출력: (20, 30, 40)

 

(5) 딕셔너리 자료형

  • 딕셔너리는 키(key)와 값(value)의 쌍으로 이루어진 자료형이다.
  • 딕셔너리는 중괄호({})를 사용하여 생성하며, 키를 이용해 값을 빠르게 조회할 수 있다.
# 딕셔너리 생성 예시
my_dict = {"name": "Alice", "age": 25, "city": "Seoul"}
print(my_dict)
  • 딕셔너리는 각 키와 그에 대응하는 값을 콜론(:)으로 구분하며, 여러 개의 키-값 쌍은 쉼표(,)로 구분한다.
# 딕셔너리 생성 예시
person = {"name": "Bob", "age": 30, "job": "Developer"}
print(person)
  • 딕셔너리에 새로운 키-값 쌍을 추가하거나 기존 키-값 쌍을 삭제할 수 있다.
# 딕셔너리 쌍 추가 및 삭제 예시
person = {"name": "Charlie", "age": 28}
person["city"] = "New York"  # 키-값 쌍 추가
del person["age"]              # 키-값 쌍 삭제
print(person)                   # 출력: {'name': 'Charlie', 'city': 'New York'}
  • 딕셔너리의 값을 조회하려면 키를 사용한다.
  • 딕셔너리의 키는 고유해야 하며, 리스트와 달리 순서에 의존하지 않는다.
# 딕셔너리 값 조회 예시
person = {"name": "David", "age": 22, "city": "London"}
print(person["name"])  # 출력: David
  • 딕셔너리에는 키-값 쌍을 조회하거나 키 리스트를 얻는 등의 다양한 함수가 있다.
# 딕셔너리 함수 예시
my_dict = {"name": "Eve", "age": 35}
print(my_dict.keys())    # dict_keys(['name', 'age'])
print(my_dict.values())  # dict_values(['Eve', 35])
print(my_dict.items())   # dict_items([('name', 'Eve'), ('age', 35)])

 

(6) 집합 자료형

  • 집합(set)은 중복되지 않는 값을 저장하는 자료형으로, 수학에서의 집합과 유사한 연산을 지원한다.
  • 집합은 중괄호({})를 사용하여 생성한다.
# 집합 생성 예시
my_set = {1, 2, 3, 4, 5}
print(my_set)
  • 집합은 중복된 값을 허용하지 않으며, 순서가 없다. 따라서 인덱싱을 사용할 수 없다.
  • 그러나 값 추가, 삭제 등의 연산은 가능하다.
# 집합 값 추가 및 삭제 예시
my_set = {1, 2, 3}
my_set.add(4)     # 값 추가
my_set.remove(2)  # 값 삭제
print(my_set)     # 출력: {1, 3, 4}
  • 집합은 수학적 연산인 교집합(&), 합집합(|), 차집합(-) 등을 지원한다.
# 집합 연산 예시
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
intersection = set1 & set2  # 교집합
union = set1 | set2         # 합집합
difference = set1 - set2    # 차집합
print(intersection)         # 출력: {3, 4}
print(union)                # 출력: {1, 2, 3, 4, 5, 6}
print(difference)           # 출력: {1, 2}
  • 집합에는 값 추가(add()), 값 제거(remove()), 모든 값을 지우는(clear()) 등의 다양한 함수가 있다.
# 집합 함수 예시
my_set = {1, 2, 3}
my_set.clear()  # 모든 값 지우기
print(my_set)   # 출력: set()

 

(7) 불(boolean) 자료형

  • 불(boolean) 자료형은 참(True)과 거짓(False) 두 가지 값만을 가질 수 있다.
  • 보통 조건문에서 자주 사용된다.
# 불 자료형 예시
a = True
b = False
print(a, b)
  • 파이썬에서는 다양한 자료형이 참(True)이나 거짓(False)으로 평가될 수 있다.
  • 예를 들어, 빈 리스트나 0은 거짓으로 간주된다.
# 참과 거짓 예시
print(bool(1))       # 출력: True
print(bool(0))       # 출력: False
print(bool([]))      # 출력: False
print(bool([1, 2]))  # 출력: True
  • 불 자료형은 논리 연산자인 and, or, not을 사용하여 연산할 수 있다.
# 불 연산 예시
a = True
b = False
print(a and b)  # 출력: False
print(a or b)   # 출력: True
print(not a)    # 출력: False

 

(8) 변수 

  • 변수는 데이터를 저장하는 공간이다. 즉, 자료형의 값을 저장하는 공간이다.
  • 수는 = 연산자를 사용하여 값을 할당한다.
# 변수 생성 예시
x = 10
y = "Hello"
print(x, y)
  • 변수는 데이터를 저장하고 참조할 수 있는 이름이다.
  • 변수 이름은 문자, 숫자, 밑줄(_)로 구성될 수 있으며, 숫자로 시작할 수 없다.
# 변수 이름 예시
age = 25
_name = "Alice"
print(age, _name)
  • 리스트를 단순히 = 연산자로 복사하면 참조가 복사되므로 원본 리스트가 변경될 수 있다.
  • 이를 방지하려면 copy() 메서드를 사용해야 한다.
# 리스트 복사 예시
original = [1, 2, 3]
copied = original.copy()
copied[0] = 100
print(original)  # 출력: [1, 2, 3]
print(copied)    # 출력: [100, 2, 3]
  • 여러 변수를 한 줄에 만들거나, 여러 값을 한꺼번에 할당할 수 있다.
# 여러 변수 할당 예시
a, b, c = 1, 2, 3
x = y = z = 100
print(a, b, c)  # 출력: 1 2 3
print(x, y, z)  # 출력: 100 100 100

파이썬 자료형 및 변수 소개