파이썬 기초
이 글은 파이썬의 기초를 설명합니다.
YouTube Video
"Hello World!" 실행하기
1print("Hello World!")
파이썬의 변수
파이썬에서 변수란 프로그램 내에서 데이터를 저장하고 사용하는 이름이 지정된 저장 공간입니다. 변수는 다양한 데이터 타입을 저장할 수 있으며 필요에 따라 재할당할 수 있습니다. 아래에서는 파이썬 변수의 기본적인 사용법을 보여주는 여러 샘플 코드를 제공합니다.
1# 1. Assigning values to variables
2# Integer type variable
3age = 25
4print("Age:", age) # Output: Age: 25
5
6# Floating-point type variable
7height = 175.5
8print("Height:", height, "cm") # Output: Height: 175.5 cm
9
10# String type variable
11name = "Taro"
12print("Name:", name) # Output: Name: Taro
13
14# Boolean type variable
15is_student = True
16print("Are you a student?", is_student) # Output: Are you a student? True
17
18# 2. Assigning values to multiple variables simultaneously
19# You can assign multiple variables at once
20x, y, z = 5, 10, 15
21print("x =", x, ", y =", y, ", z =", z) # Output: x = 5 , y = 10 , z = 15
22
23# 3. Updating the value of a variable
24# The value of a variable can be updated by reassignment
25age = 26
26print("Updated age:", age) # Output: Updated age: 26
27
28# 4. Updating multiple variables at once
29# Example of swapping values between variables
30a, b = 1, 2
31a, b = b, a
32print("a =", a, ", b =", b) # Output: a = 2 , b = 1
33
34# 5. Type conversion
35# Type conversion allows operations between different types
36count = "5" # String "5"
37count = int(count) # Convert to integer type
38print("Handling count as an integer:", count * 2) # Output: Handling count as an integer: 10
39
40# Conversion to floating-point number
41pi_approx = "3.14"
42pi_approx = float(pi_approx)
43print("Approximation of pi:", pi_approx) # Output: Approximation of pi: 3.14
위와 같이, 파이썬의 변수는 유연하게 사용할 수 있습니다. 변수는 타입을 지정하지 않고 사용할 수 있으며 필요에 따라 재할당할 수 있습니다. 또한, 타입 변환을 사용하여 다양한 데이터 타입 간에 쉽게 전환할 수 있습니다.
파이썬의 데이터 타입
파이썬은 여러 가지 기본 데이터 타입을 제공합니다. 아래에서는 각 데이터 타입에 대한 설명과 샘플 코드를 제공합니다.
정수 타입
정수 타입은 소수점이 없는 정수를 처리하는 데 사용됩니다.
1# Example of integer type
2x = 10
3print(x) # Output: 10
4print(type(x)) # Output: <class 'int'>
부동소수점 타입
부동소수점 타입은 소수점이 있는 숫자를 처리하는 데 사용됩니다.
1# Floating Point Number Example
2y = 3.14
3print(y) # Output: 3.14
4print(type(y)) # Output: float
문자열 타입
문자열 유형은 문자들의 시퀀스를 나타냅니다. 문자열은 작은따옴표 '
또는 큰따옴표 "
로 감쌀 수 있습니다.
1# Example of String
2s = "Hello, World!"
3print(s) # Output: Hello, World!
4print(type(s)) # Output: <class 'str'>
불리언 유형
불리언 유형은 true(True
)와 false(False
) 두 가지 값을 가질 수 있습니다.
1# Example of Boolean
2b = True
3print(b) # Output: True
4print(type(b)) # Output: <class 'bool'>
리스트 유형
리스트 유형은 여러 요소를 저장할 수 있는 변경 가능한 시퀀스이며, 요소는 서로 다른 데이터 유형으로 구성될 수 있습니다.
1# Example of List
2lst = [1, 2, 3, "four", 5.0]
3print(lst) # Output: [1, 2, 3, 'four', 5.0]
4print(type(lst)) # Output: <class 'list'>
튜플 유형
튜플은 여러 요소를 포함할 수 있는 시퀀스로, 생성된 이후에는 내용물을 수정할 수 없습니다.
1# Example of Tuple
2tup = (1, "two", 3.0)
3print(tup) # Output: (1, 'two', 3.0)
4print(type(tup)) # Output: <class 'tuple'>
딕셔너리 유형
딕셔너리 유형은 키-값 쌍을 보유하는 컬렉션입니다. 키는 고유해야 합니다.
1# Example of Dictionary
2dct = {"one": 1, "two": 2, "three": 3}
3print(dct) # Output: {'one': 1, 'two': 2, 'three': 3}
4print(type(dct)) # Output: <class 'dict'>
세트 유형
세트 유형은 고유한 요소를 보유하는 컬렉션입니다. 중복된 값은 포함될 수 없습니다.
1# Example of Set
2st = {1, 2, 2, 3}
3print(st) # Output: {1, 2, 3}
4print(type(st)) # Output: <class 'set'>
이 데이터 유형들은 Python에서 데이터 처리를 위해 일반적으로 사용되는 기본 유형들입니다. 적절히 사용하면 프로그램에서 다양한 요구를 충족할 수 있습니다.
Python 개요
Python은 1991년에 Guido van Rossum이 개발한 고급 프로그래밍 언어입니다. Python의 설계 철학은 '단순성', '명확성', '가독성'을 중시하여 직관적이고 작성과 이해가 용이한 코드를 제공합니다. 아래는 Python의 주요 기능에 대한 개요입니다.
-
가독성과 단순성:
- 명확한 구조와 자연어에 가까운 표현 방식으로 초보자도 배우기 쉬운 언어입니다.
- 블록은 들여쓰기로 정의되며, 이는 코드를 자동으로 포맷하고 가독성을 높입니다.
-
풍부한 라이브러리와 프레임워크:
- 풍부한 표준 라이브러리를 제공하여 많은 작업을 쉽게 수행할 수 있습니다.
- 수치 계산(NumPy), 데이터 분석(Pandas), 기계 학습(scikit-learn, TensorFlow), 웹 개발(Django, Flask) 등 여러 분야에 특화된 라이브러리와 프레임워크가 제공됩니다.
-
다용성:
- Python은 스크립팅 언어로도, 완전한 기능의 애플리케이션 개발용 언어로도 적합합니다. 웹 애플리케이션, 데스크톱 애플리케이션, 과학 계산, 기계 학습, 데이터 분석, IoT 등 다양한 응용 분야에서 사용됩니다.
-
크로스 플랫폼:
- 플랫폼에 독립적이며 Windows, macOS, Linux를 포함한 다양한 운영 체제에서 실행할 수 있습니다.
-
오픈 소스 및 커뮤니티:
- Python은 활발한 커뮤니티가 지원하는 오픈 소스 프로젝트입니다. 이로 인해 빈번한 업데이트, 라이브러리 개발 및 지원이 이루어집니다.
-
동적 타이핑 및 자동 메모리 관리:
- 동적 타이핑은 변수 유형 선언을 할 필요가 없어 개발 속도를 높여줍니다.
- 가비지 컬렉션은 자동 메모리 관리를 수행하여 메모리 관리를 간소화합니다.
이러한 특징 덕분에 Python은 교육, 산업, 학계 등 다양한 분야에서 널리 사용됩니다.
파이썬의 이스케이프 문자
파이썬에서는 문자열 안에 특정 제어 문자나 특별한 의미를 가진 문자를 포함하기 위해 이스케이프 문자를 사용합니다. 이스케이프 문자는 일반적인 문자열에 특정 의미를 추가하기 위해 사용되는 특수한 기호입니다. 파이썬의 이스케이프 문자에 대해 자세히 알아봅시다.
이스케이프 문자의 기초
파이썬에서는 이스케이프 문자가 역슬래시(\
)를 사용해 정의됩니다. 이스케이프 문자는 일반 문자열 안에서 특정 동작을 나타냅니다. 예를 들어, \n
은 줄 바꿈을, \t
는 탭 간격을 나타냅니다.
다음과 같이 이스케이프 문자가 포함된 문자열을 정의할 수 있습니다:.
1# Example of escape characters
2print("Hello\nWorld") # A newline is inserted after "Hello"
3
4# Output:
5# Hello
6# World
주요 이스케이프 문자 목록
파이썬에서 사용되는 주요 이스케이프 문자는 다음과 같습니다:.
\\
: 역슬래시 자체를 나타냅니다.\'
: 문자열에 작은따옴표를 포함합니다.\"
: 문자열에 큰따옴표를 포함합니다.\n
: 줄 바꿈\t
: 탭\r
: 캐리지 리턴 (줄의 처음으로 이동)\b
: 백스페이스\f
: 폼 피드 (페이지 구분)\a
: 경고음 (벨)\v
: 수직 탭\N{name}
: 유니코드 데이터베이스에서 이름으로 지정된 문자\uXXXX
: 16비트 유니코드 문자 (4자리 16진수로 지정)\UXXXXXXXX
: 32비트 유니코드 문자 (8자리 16진수로 지정)\xXX
: 16진수로 지정된 문자
일반적으로 사용되는 이스케이프 문자 예시
이스케이프 문자를 사용하는 구체적인 예시입니다.
큰따옴표와 작은따옴표
문자열에 큰따옴표나 작은따옴표를 포함하려면 이스케이프 문자를 사용하세요.
1# String containing double quotes
2quote = "He said, \"Python is amazing!\""
3print(quote)
4
5# String containing single quotes
6single_quote = 'It\'s a beautiful day!'
7print(single_quote)
8
9# Output:
10# He said, "Python is amazing!"
11# It's a beautiful day!
줄바꿈과 탭
줄바꿈과 탭은 텍스트를 서식화할 때 흔히 사용됩니다.
1# Example using newline
2multiline_text = "First line\nSecond line"
3print(multiline_text)
4
5# Example using tab
6tabbed_text = "Column1\tColumn2\tColumn3"
7print(tabbed_text)
8
9# Output:
10# First line
11# Second line
12# Column1 Column2 Column3
유니코드 이스케이프 문자
파이썬에서는 유니코드 문자를 \u
또는 \U
를 사용하여 표현합니다. 이는 비영어 문자를 처리할 때 특히 유용합니다.
1# Example of Unicode escape
2japanese_text = "\u3053\u3093\u306B\u3061\u306F" # Hello in Japanese
3print(japanese_text)
4# Output:
5# こんにちは(Hello in Japanese)
특수 이스케이프 문자 사용 시 주의사항
이스케이프 문자를 사용할 때 염두에 두어야 할 몇 가지 주의사항이 있습니다.
- Raw 문자열: 문자열에 포함된 백슬래시를 그대로 표시하려면 Raw 문자열을 사용할 수 있습니다. Raw 문자열은 문자열 앞에
r
접두사를 추가하여 지정합니다.
1raw_string = r"C:\Users\name\Documents"
2print(raw_string)
3# Output:
4# C:\Users\name\Documents
Raw 문자열에서는 백슬래시가 이스케이프 문자로 해석되지 않고 있는 그대로 출력됩니다.
- 유니코드 사용: 유니코드 이스케이프 문자를 사용할 때는 지정된 16진수 코드가 정확한지 확인하세요. 잘못된 지정은 잘못된 문자 표시를 초래합니다.
백슬래시 이스케이프
문자열에 백슬래시 자체를 포함하려면 백슬래시를 두 번 사용하세요.
1# Example containing backslash
2path = "C:\\Program Files\\Python"
3print(path)
4# Output:
5# C:\Program Files\Python
고급 예시: 복잡한 문자열 서식화
복잡한 문자열을 서식화하기 위해 이스케이프 문자를 조합하는 것도 가능합니다.
1# Example of formatting a message
2message = "Dear User,\n\n\tThank you for your inquiry.\n\tWe will get back to you shortly.\n\nBest Regards,\nCustomer Support"
3print(message)
4# Output:
5# Dear User,
6#
7# Thank you for your inquiry.
8# We will get back to you shortly.
9#
10# Best Regards,
11# Customer Support
요약
파이썬의 이스케이프 문자는 문자열에 특정 제어 문자나 특수 문자를 포함하기 위한 강력한 도구입니다. 이를 사용하는 방법을 이해하고 필요에 따라 적절히 적용하면 더 유연한 문자열 처리가 가능합니다.
Python 버전
주요 Python 출시 버전과 그 특징을 간략히 살펴봅시다.
- Python 1.0 (1994)
1# Simple code that works in Python 1.0
2def greet(name):
3 print "Hello, " + name # print was a statement
4
5greet("World")
첫 번째 공식 출시판. Python의 기본 구문과 표준 라이브러리가 확립되었습니다.
- Python 2.0 (2000)
1# List comprehension
2squares = [x * x for x in range(5)]
3print squares
4
5# Unicode string (u"...")
6greet = u"Hello"
7print greet
리스트 컴프리헨션(list comprehension), 완전한 가비지 컬렉션, 유니코드 지원 시작 등 중요한 기능이 추가되었습니다. Python 2는 오랜 기간 사용되었으나 2020년에 지원이 종료되었습니다.
- Python 3.0 (2008)
1# print is now a function
2print("Hello, world!")
3
4# Unicode text is handled natively
5message = "Hello"
6print(message)
과거 호환성이 없는 대규모 업데이트. print
가 함수로 변경되었고, 유니코드(Unicode)
가 기본 문자열 유형이 되었으며, 정수형이 통합되어 Python의 일관성과 사용성이 크게 향상되었습니다. Python 3.x 시리즈는 현재 주류 버전입니다.
- Python 3.5 (2015년)
1import asyncio
2
3async def say_hello():
4 await asyncio.sleep(1)
5 print("Hello, async world!")
6
7asyncio.run(say_hello())
async
/await
구문이 도입되어 비동기 프로그래밍을 더 간단하게 작성할 수 있게 되었습니다.
- Python 3.6 (2016년)
1name = "Alice"
2age = 30
3print(f"{name} is {age} years old.") # f-string makes formatting simple
포매팅 문자열 리터럴 (f-strings) 이 추가되어 문자열 포매팅이 더 편리해졌습니다. 또한, 타입 힌트가 확장되었습니다.
- Python 3.7 (2018년)
1from dataclasses import dataclass
2
3@dataclass
4class Person:
5 name: str
6 age: int
7
8p = Person("Bob", 25)
9print(p)
데이터 클래스 (Dataclasses) 가 도입되어 구조체와 유사한 클래스를 더 쉽게 정의할 수 있게 되었습니다. async
/await
지원도 강화되었습니다.
- Python 3.8 (2019년)
1# Assignment inside an expression
2if (n := len("hello")) > 3:
3 print(f"Length is {n}")
해마 연산자 (:=) 가 추가되어 할당 표현식을 사용할 수 있게 되었습니다. 위치 전용 매개변수 (Positional-only parameters)
가 도입되어 함수 인수의 유연성이 향상되었습니다.
- Python 3.9 (2020년)
1a = {"x": 1}
2b = {"y": 2}
3c = a | b # merge two dicts
4print(c) # {'x': 1, 'y': 2}
타입 힌트가 개선되었으며, 리스트와 딕셔너리를 위한 병합 연산자 (|
) 가 추가되었습니다. 표준 라이브러리도 재구성되었습니다.
- Python 3.10 (2021년)
1def handle(value):
2 match value:
3 case 1:
4 return "One"
5 case 2:
6 return "Two"
7 case _:
8 return "Other"
9
10print(handle(2))
패턴 매칭 이 추가되어 더 강력한 조건문 작성이 가능해졌습니다. 에러 메시지가 개선되었으며, 타입 시스템이 더욱 강화되었습니다.
- Python 3.11 (2022년)
1# Improved performance (up to 25% faster in general)
2# More informative error messages
3try:
4 eval("1/0")
5except ZeroDivisionError as e:
6 print(f"Caught an error: {e}")
**중요한 성능 개선** 이 이루어져 이전 버전보다 실행 속도가 빨라졌습니다. 또한, 예외 처리와 타입 검사가 개선되었습니다.
- Python 3.12 (2023년)
1# Automatically shows exception chains with detailed traceback
2def f():
3 raise ValueError("Something went wrong")
4
5def g():
6 try:
7 f()
8 except Exception:
9 raise RuntimeError("Higher level error") # Automatically chained
10
11try:
12 g()
13except Exception as e:
14 import traceback
15 traceback.print_exception(type(e), e, e.__traceback__)
에러 메시지가 더욱 개선되었으며, 성능이 향상되었습니다. 또한, 예외 연결이 자동으로 표시되어 더 세부적인 디버깅이 가능해졌습니다. 새로운 문법 기능과 표준 라이브러리의 향상이 추가되어 개발자의 생산성이 향상되었습니다.
Python 3.x 시리즈는 계속해서 발전하고 있으며, 최신 버전에서는 성능, 타입 시스템의 개선과 새로운 기능들이 추가되고 있습니다.
위의 기사를 보면서 Visual Studio Code를 사용해 우리 유튜브 채널에서 함께 따라할 수 있습니다. 유튜브 채널도 확인해 주세요.