1. 파이썬(Python)이란?
- 파이썬(Python)은 1991년에 귀도 반 로섬(Guido van Rossum)이 개발한 프로그래밍 언어이다.
- 간결하고 읽기 쉬운 문법 덕분에 초보자와 숙련된 개발자 모두에게 사랑받는 언어다.
- 웹 개발, 데이터 분석, 인공지능, 게임 개발 등 다양한 분야에서 사용된다.
- 파이썬의 인기는 그 강력한 확장성과 쉽게 접근할 수 있는 학습 자원 덕분에 꾸준히 증가하고 있다.
2. 파이썬(Python)의 특징
- 파이썬은 인간다운 언어이다.
파이썬은 마치 사람이 일상에서 사용하는 언어처럼 자연스럽게 작성할 수 있도록 설계되었다. 코드의 가독성이 매우 높아, 처음 프로그래밍을 배우는 사람들도 쉽게 이해할 수 있다. - 문법이 쉬워 빠르게 배울 수 있다.
파이썬은 복잡한 문법을 최소화하고, 직관적인 구조를 통해 초보자도 빠르게 배울 수 있다. 이는 특히 교육용 언어로서 파이썬의 인기를 높이는 주요한 이유다. - 무료이지만 강력하다.
파이썬은 오픈 소스 라이선스에 따라 무료로 제공되지만, 그 기능은 매우 강력하다. 여러 방면에서 사용할 수 있는 수많은 라이브러리와 프레임워크가 파이썬의 능력을 확장해 준다. - 간결하다.
파이썬은 "코드는 읽는 사람이 쓰는 사람보다 많다"라는 철학을 기반으로 설계되었다. 따라서 파이썬 코드는 간결하고 명확하여 유지보수가 용이합니다. - 프로그래밍을 즐기게 해 준다.
파이썬의 간결함과 직관적인 문법은 프로그래밍의 진입 장벽을 낮춰주고, 개발자들이 코드를 작성하는 것 자체를 즐기게 만들어준다. - 개발 속도가 빠르다.
파이썬은 코드를 간결하게 작성할 수 있어 다른 언어들에 비해 개발 속도가 매우 빠르다. 이는 특히 스타트업이나 프로토타입 개발 등에서 큰 장점이 된다.
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
'IT & AI > AI 지식' 카테고리의 다른 글
C 언어 연산자와 제어문 총정리 (0) | 2024.11.18 |
---|---|
C 언어 기본 개념과 프로그램 구조, 변수, 상수, 데이터 입력과 출력 (1) | 2024.11.17 |
파이썬 활용 (2): 클로저, 제너레이터, 정규 표현식 (2) | 2024.11.15 |
파이썬 활용 (1): 클래스, 모듈, 패키지, 예외처리 (0) | 2024.11.14 |
파이썬(Python) 제어문과 입출력 정리 (1) | 2024.11.14 |