파이썬 시작하기
Python 3 Fundamentals 과정에 오신 걸 환영합니다.
목차:*
- 파이썬 소개
- 파이썬의 특징
- 파이썬의 장단점
- 파이썬을 사용하는 분야
- 변수와 자료형
- 변수의 개념
- 변수의 선언과 초기화
- 숫자형 자료형
- 문자열 자료형
- 불리언 자료형
- None 자료형
- 연산자
- 산술 연산자
- 비교 연산자
- 논리 연산자
- 비트 연산자
- 조건문
if
문- if-else문
- if-elif-else문
- 반복문
- while문
- for문
- 함수
- 함수의 개념
- 함수의 정의와 호출
- 매개변수와 반환값
- 함수의 종류
- 리스트와 튜플
- 리스트의 개념
- 리스트의 인덱싱과 슬라이싱
- 리스트의 연산
- 리스트의 메서드
- 튜플의 개념
- 딕셔너리와 세트
- 딕셔너리의 개념
- 딕셔너리의 키와 값
- 딕셔너리의 메서드
- 세트의 개념
- 세트의 연산과 메서드
- 파일 입출력
- 파일의 개념
- 파일 열고 닫기
- 파일 쓰기
- 파일 읽기 with 구문을 사용한 파일 입출력
- 예외 처리
- 예외의 개념
- try-except 문
- try-except-else 문
- try-except-finally 문
1. 파이썬 소개
파이썬은 인터프리터 언어로, 대화형으로 사용할 수 있으며, 다양한 운영체제에서 동작하는 고수준의 프로그래밍 언어입니다.
파이썬의 가장 큰 장점은 다양한 라이브러리와 프레임워크가 존재하며, 이를 사용하여 다양한 분야에서 활용이 가능하다는 것입니다. 또한, 문법이 간결하고 가독성이 높아서 입문자들도 쉽게 배울 수 있다는 장점도 있습니다.
파이썬은 기본적으로 객체 지향 프로그래밍을 지원하며, 함수형 프로그래밍, 메타프로그래밍 등 다양한 프로그래밍 패러다임을 지원합니다.
파이썬은 데이터 분석, 인공지능, 웹 프로그래밍, 게임 개발, 시스템 프로그래밍, IoT 등 다양한 분야에서 활용됩니다. 특히, 인공지능 분야에서는 머신 러닝과 딥 러닝 라이브러리인 TensorFlow, PyTorch, Keras 등에서 파이썬이 가장 많이 사용되고 있습니다.
파이썬은 무료로 사용할 수 있으며, 커뮤니티가 활발하게 운영되어 다양한 정보와 도움을 받을 수 있습니다.
파이썬의 특징
- 인터프리터 언어
파이썬은 인터프리터 언어로, 코드를 실행할 때 컴파일 과정이 필요하지 않습니다. 이를 통해 개발 속도가 빠르고, 코드 수정이 용이하며, 디버깅이 쉬워집니다.
- 동적 타이핑
파이썬은 동적 타이핑 언어로, 변수를 선언할 때 데이터 타입을 미리 지정할 필요가 없습니다. 이를 통해 코딩이 편리해지며, 다양한 데이터 타입을 유연하게 처리할 수 있습니다.
- 간결한 문법
파이썬은 문법이 간결하고 가독성이 높아서, 다른 언어와 비교했을 때 적은 양의 코드로 많은 기능을 구현할 수 있습니다. 이를 통해 코드의 가독성과 유지보수성이 높아집니다.
- 다양한 라이브러리와 프레임워크
파이썬은 다양한 라이브러리와 프레임워크가 존재합니다. 라이브러리는 필요한 기능을 쉽게 구현할 수 있도록 다양한 함수와 클래스를 제공하며, 프레임워크는 특정 목적에 맞게 구성된 코드의 뼈대를 제공합니다.
- 객체 지향 프로그래밍 지원
파이썬은 객체 지향 프로그래밍을 지원합니다. 이를 통해 코드의 재사용성, 유지보수성, 확장성 등이 증가합니다.
- 다양한 플랫폼에서 동작
파이썬은 다양한 플랫폼에서 동작할 수 있습니다. Windows, Mac OS, Linux 등 다양한 운영체제에서 동작할 뿐만 아니라, 모바일 기기와 웹 브라우저에서도 동작이 가능합니다.
- 커뮤니티 활동이 활발
파이썬 커뮤니티는 굉장히 활발하며, 다양한 문제들에 대한 해결책을 제시해주는 등, 많은 도움을 받을 수 있습니다.
이상으로 파이썬의 주요 특징에 대해 간단하게 살펴보았습니다.
파이썬의 장단점
파이썬의 장단점에 대해 간단히 살펴보겠습니다.
파이썬의 장점:
- 다양한 라이브러리와 프레임워크가 존재
파이썬은 다양한 라이브러리와 프레임워크가 존재하여, 다양한 분야에서 활용이 가능합니다. 데이터 분석, 인공지능, 웹 프로그래밍, 게임 개발, 시스템 프로그래밍, IoT 등 다양한 분야에서 활용이 가능하며, 특히 인공지능 분야에서는 머신 러닝과 딥 러닝 라이브러리인 TensorFlow, PyTorch, Keras 등에서 파이썬이 가장 많이 사용됩니다.
- 문법이 간결하고 가독성이 높음
파이썬은 문법이 간결하고 가독성이 높아서, 다른 언어와 비교했을 때 적은 양의 코드로 많은 기능을 구현할 수 있습니다. 이를 통해 코드의 가독성과 유지보수성이 높아집니다.
- 높은 생산성
파이썬은 인터프리터 언어이기 때문에, 컴파일 과정이 없어 개발 속도가 빠르며, 디버깅이 쉽고, 코드 수정이 용이합니다. 또한, 문법이 간결하고 가독성이 높기 때문에 빠르게 개발할 수 있습니다.
- 객체 지향 프로그래밍 지원
파이썬은 객체 지향 프로그래밍을 지원합니다. 이를 통해 코드의 재사용성, 유지보수성, 확장성 등이 증가합니다.
- 다양한 플랫폼에서 동작
파이썬은 다양한 플랫폼에서 동작할 수 있습니다. Windows, Mac OS, Linux 등 다양한 운영체제에서 동작할 뿐만 아니라, 모바일 기기와 웹 브라우저에서도 동작이 가능합니다.
파이썬의 단점:
- 실행 속도가 느림
파이썬은 인터프리터 언어이기 때문에 실행 속도가 느리다는 단점이 있습니다. 하지만, 이러한 단점은 JIT 컴파일러 등의 기술을 사용하여 최적화할 수 있습니다.
- 메모리 관리가 어려움
파이썬은 자동으로 메모리를 관리해주기 때문에 개발자가 직접 메모리를 할당하거나 해제할 필요가 없습니다. 하지만, 이러한 메모리 관리 방식은 메모리 누수 등의 문제가 발생할 가능성이 있습니다.
- GIL(Global Interpreter Lock) 문제 파이썬은 GIL(Global Interpreter Lock)이라는 메커니즘을 사용하여, 하나의 스레드만 인터프리터에 접근할 수 있도록 제한합니다. 이로 인해 멀티코어 환경에서는 성능이 저하될 가능성이 있습니다. 하지만, 이러한 문제는 멀티프로세싱 모듈이나 멀티스레딩 모듈 등을 사용하여 해결할 수 있습니다.
이상으로 파이썬의 장단점에 대해 간단히 살펴보았습니다.
파이썬을 사용하는 분야
파이썬이 사용되는 분야에 대해 간단히 살펴보겠습니다.
- 데이터 분석
파이썬은 데이터 분석 분야에서 가장 많이 사용되는 언어 중 하나입니다. NumPy, Pandas, Matplotlib 등 다양한 라이브러리를 제공하여, 데이터 수집, 처리, 분석, 시각화 등 다양한 작업을 수행할 수 있습니다. 특히, 머신 러닝과 딥 러닝 분야에서는 TensorFlow, PyTorch, Keras 등에서 파이썬이 가장 많이 사용됩니다.
- 웹 프로그래밍
파이썬은 Django, Flask 등의 프레임워크를 제공하여, 웹 애플리케이션을 쉽게 개발할 수 있습니다. 또한, 데이터베이스와의 연동이 용이하고, 대규모 웹 서비스를 구축하는 데 적합합니다.
- 게임 개발
Pygame 등의 라이브러리를 사용하여, 파이썬으로 간단한 게임을 개발할 수 있습니다. 또한, PyOpenGL 등의 라이브러리를 사용하여 3D 게임을 개발하는 것도 가능합니다.
- 시스템 프로그래밍
파이썬은 C나 C++과 비교하면 속도가 느리지만, 시스템 프로그래밍에도 사용될 수 있습니다. 특히, 시스템 자원을 관리하거나, 다른 프로그램과의 연동이 필요한 경우에 사용됩니다.
- IoT
파이썬은 라즈베리 파이와 같은 싱글 보드 컴퓨터에서도 동작할 수 있기 때문에, IoT 분야에서도 사용됩니다. 라즈베리 파이와 같은 기기를 제어하거나, 센서 데이터를 수집하는 등의 작업을 수행할 수 있습니다.
- 교육
파이썬은 문법이 간결하고 가독성이 높기 때문에, 프로그래밍 교육 분야에서도 많이 사용됩니다. 학생들이 쉽게 배울 수 있는 구조와 라이브러리, 그리고 온라인 강좌나 문서가 많이 제공되기 때문입니다.
이상으로 파이썬이 사용되는 주요 분야에 대해 살펴보았습니다.
파이썬 버전
아래는 파이썬의 버전 및 출시 연도, 기능 및 주요 변경 사항 등을 요약한 표입니다.
버전 | 출시 연도 | 기능 및 주요 변경 사항 |
---|---|---|
1.0 | 1991 | 초기 버전 |
2.0 | 2000 | 지역변수와 전역변수, 리스트 컴프리헨션 등 추가 |
2.2 | 2001 | 대규모 프로그램에 대한 지원 개선, 그 외 기능 개선 |
2.3 | 2003 | 모듈 시스템 개선, 파이썬 3.0의 대부분 기능 추가 |
2.4 | 2004 | 데코레이터, 제네릭, f-문자열 리터럴 등 추가 |
2.5 | 2006 | with문, 데코레이터 문법 개선 등 추가 |
2.6 | 2008 | 파이썬 3.0 기능 일부 추가, 클래스 데코레이터 등 추가 |
2.7 | 2010 | 파이썬 3.0 기능 일부 추가, dict comprehension 등 추가 |
3.0 | 2008 | 파이썬 2와 하위 호환성 없는 새 버전, print 문 개선 등 추가 |
3.1 | 2009 | with문 문법 개선, f-문자열 리터럴 등 추가 |
3.2 | 2011 | 대용량 파일 처리 개선, multiprocessing 모듈 등 추가 |
3.3 | 2012 | yield from 문법 등 추가 |
3.4 | 2014 | tracemalloc 모듈, enum 모듈 등 추가 |
3.5 | 2015 | await와 async 문법 추가, 행렬 곱셈 연산자 등 추가 |
3.6 | 2016 | f-문자열 리터럴 개선, 힙 메모리 최적화 등 추가 |
3.7 | 2018 | 제네릭 함수와 타입 힌트 개선, contextvars 모듈 등 추가 |
3.8 | 2019 | assignment 표현식 등 추가 |
3.9 | 2020 | union 연산자, dict update 연산자 등 추가 |
3.10 | 2021 | match-case 구문, 파이썬 타입 힌트 개선 등 추가 |
파이썬 설치
파이썬은 공식 홈페이지에서 다운로드 및 설치가 가능합니다. 다음은 파이썬을 설치하는 간단한 방법입니다.
- 파이썬 설치 파일 다운로드
파이썬 공식 홈페이지(https://www.python.org/)에 접속하여, "Downloads" 메뉴를 클릭합니다. 이후 "Python 3.x.x"을 선택하고, 해당 버전에 맞는 설치 파일을 다운로드 받습니다.
- 설치 파일 실행
파이썬 설치 파일을 다운로드 받았으면, 파일을 실행합니다. 실행하면 "Welcome to the Python x.x.x installer"라는 창이 나타납니다.
- 파이썬 설치
창의 지시에 따라 파이썬을 설치합니다. 일반적으로 "Install Now" 버튼을 클릭하면 기본 옵션으로 설치가 진행됩니다. 설치가 완료되면, "Close" 버튼을 클릭하여 창을 닫습니다.
- 파이썬 설치 확인
Windows 운영체제에서는, "시작" 메뉴에서 "cmd"를 검색하여 명령 프롬프트를 실행합니다.
설치가 완료되면, Windows Terminal이나 명령 프롬프트를 실행합니다.
python --version
명령어를 입력하여 설치된 파이썬의 버전을 확인합니다.
그리고, "python"이라고 입력하여 파이썬을 실행합니다. 만약, 파이썬이 정상적으로 실행되면, 파이썬의 버전 정보와 함께 파이썬 대화형 인터프리터가 실행됩니다.
Mac OS나 Linux에서는, 터미널을 열고 "python"이라고 입력하여 파이썬을 실행합니다. 파이썬이 정상적으로 실행되면, 파이썬의 버전 정보와 함께 파이썬 대화형 인터프리터가 실행됩니다.
이상으로 파이썬의 설치 방법에 대해 간단하게 살펴보았습니다.
파이썬 설치 경로 확인
Windows 운영 체제에서 파이썬을 설치하면 기본적으로 C:\Program Files\Python 디렉토리에 설치됩니다. 하지만 파이썬 버전 및 설치 경로는 사용자가 선택한 옵션에 따라 달라질 수 있으므로, 다음과 같은 방법으로 파이썬 설치 경로를 확인할 수 있습니다.
- 먼저, 파일 탐색기를 엽니다.
- 상단 주소 표시줄에 C:\를 입력합니다.
- Program Files 폴더를 찾아서 엽니다.
- Python 폴더를 찾아서 엽니다. 이 폴더에는 설치된 파이썬 버전에 대한 폴더가 있습니다. 예를 들어, Python36은 파이썬 3.6 버전을 의미합니다.
- 파이썬 버전 폴더를 열면, 다양한 하위 디렉토리와 파일이 있습니다. 파이썬 인터프리터 파일인 python.exe는 해당 버전 폴더의 python.exe 파일에 있습니다.
또는, 명령 프롬프트나 PowerShell을 열어 다음과 같이 입력하여 파이썬 설치 경로를 확인할 수도 있습니다.
python --version
명령어를 입력합니다. 이 명령어는 현재 시스템에서 실행 중인 파이썬 버전을 표시합니다.where python
명령어를 입력합니다. 이 명령어는 현재 시스템에서 실행 중인 파이썬의 경로를 표시합니다.
위의 방법들 중 하나를 사용하여 파이썬 설치 경로를 찾을 수 있습니다.
파이썬 Hello World 예제
파이썬에서 Hello World를 출력하는 가장 간단한 방법은 print()
함수를 사용하는 것입니다. 다음은 Hello World를 출력하는 예제 코드입니다.
print("Hello World")
위 코드를 실행하면 "Hello World"가 출력됩니다. 파이썬은 인터프리터 언어이므로, 코드를 작성한 후 즉시 실행할 수 있습니다.
IDLE에서 Python Hello World 출력하기
Python을 처음 접하시는 분들을 위해, IDLE(파이썬 통합 개발 환경)에서 간단한 "Hello World!" 메시지를 출력하는 방법에 대해 간단히 설명해 드리겠습니다.
- 먼저, IDLE을 실행합니다. IDLE은 일반적으로 Python을 설치할 때 함께 설치됩니다.
- 새 파일을 만들기 위해 'File' 메뉴에서 'New File'을 선택하거나, 단축키 Ctrl + N을 눌러 새 파일을 만듭니다.
- 새 파일이 열리면, 다음 코드를 입력합니다.
print("Hello World!")
- 코드를 실행하려면, 'Run' 메뉴에서 'Run Module'을 선택하거나, 단축키 F5를 누릅니다.
- 출력 결과가 IDLE 셸 창에 나타납니다.
여기에서는 "Hello World!"를 출력하는 간단한 Python 코드를 작성했습니다. print() 함수는 괄호 안의 값을 콘솔에 출력합니다.
이제 IDLE에서 Python 코드를 실행하여 "Hello World!"를 출력할 수 있게 되었습니다.
터미널에서 Python 실행하기
파이썬의 기본적인 구문과 명령어를 사용하여 "Hello, World!"를 출력하는 방법에 대해 알려드리겠습니다.
먼저, 명령 프롬프트(Command Prompt)를 엽니다.
파이썬 인터프리터(Interpreter)를 시작하기 위해 "python" 또는 "python3"를 입력합니다.
python
- 파이썬 인터프리터에서 다음 코드를 입력합니다.
print("Hello, World!")
"Hello, World!"가 출력됩니다.
Hello, World!
인터프리터를 종료하려면 "exit()"를 입력합니다.
exit()
이제 파이썬에서 "Hello, World!"를 출력하는 방법을 배웠습니다. 이것은 매우 간단한 예제이지만 파이썬에서의 기본적인 문법과 함수를 사용하는 방법을 배울 수 있습니다. 이것이 도움이 되었기를 바랍니다!
print()
함수
print()
함수는 파이썬에서 가장 기본적인 출력 함수입니다. print()
함수는 인수로 전달된 값을 출력하며, 여러 개의 값을 출력할 때는 쉼표(,)로 구분합니다.
print()
함수의 기본적인 사용 방법은 다음과 같습니다.
print(출력할 값)
예를 들어, 아래 코드는 print()
함수를 사용하여 "Hello, Python!" 문자열을 출력하는 예제입니다.
print("Hello, Python!")
print()
함수는 기본적으로 문자열 값을 출력하지만, 숫자, 변수, 리스트 등 다양한 값을 출력할 수 있습니다. 예를 들어, 아래 코드는 정수와 실수 값을 출력하는 예제입니다.
x = 10
y = 3.14
print(x)
print(y)
print()
함수는 여러 개의 값을 출력할 때는 쉼표(,)로 구분합니다. 예를 들어, 아래 코드는 문자열과 숫자 값을 출력하는 예제입니다.
name = "Alice"
age = 25
print("My name is", name, "and I'm", age, "years old.")
print()
함수는 sep 인수를 사용하여 출력 값 사이의 구분자(separator)를 지정할 수 있으며, end 인수를 사용하여 출력 후의 문자열을 지정할 수도 있습니다. 예를 들어, 아래 코드는 쉼표로 구분된 문자열 값을 출력하고, 출력 값 사이의 구분자를 세미콜론으로 지정하고, 출력 후에 개행 문자열을 추가하는 예제입니다.
print("apple", "banana", "cherry", sep=";", end="\n")
print()
함수는 파이썬에서 가장 기본적인 출력 함수로, 문자열, 숫자, 변수, 리스트 등 다양한 값을 출력할 수 있습니다. 값을 출력할 때는 쉼표(,)로 구분하며, 출력 값 사이의 구분자와 출력 후의 문자열을 인수로 지정할 수 있습니다.
큰 따옴표와 작은 따옴표
파이썬에서 문자열을 정의할 때 큰 따옴표와 작은 따옴표를 모두 사용할 수 있습니다. 두 방식에는 기능적인 차이점이 없으며, 개발자의 취향이나 코드 가독성에 따라 선택할 수 있습니다.
예를 들어, 다음 두 문자열은 동일합니다:
string1 = 'Hello, World!'
string2 = "Hello, World!"
그러나 한 가지 주의할 점은, 문자열 내에 따옴표를 포함하려면 다른 종류의 따옴표를 사용하여 문자열을 묶어야 합니다. 예를 들어, 문자열 내에 작은 따옴표가 포함되어야 하는 경우 큰 따옴표로 문자열을 묶을 수 있습니다.
quote = "I'm a programmer."
반대로 문자열 내에 큰 따옴표가 포함되어야 하는 경우 작은 따옴표로 문자열을 묶을 수 있습니다.
quote = 'He said, "Hello, World!"'
또 다른 방법으로, 이스케이프 문자인 백슬래시(\
)를 사용하여 문자열 내에서 따옴표를 표시할 수 있습니다.
quote1 = 'I\'m a programmer.'
quote2 = "He said, \"Hello, World!\""
결론적으로, 파이썬에서 큰 따옴표와 작은 따옴표는 기능적인 차이가 없으며, 문자열 내에 포함되어야 하는 따옴표의 종류와 개발자의 취향에 따라 선택할 수 있습니다.
파이썬 기본 문법
파이썬에서 주석
주석은 코드에 대한 설명을 추가하거나, 코드 일부를 임시로 비활성화할 때 사용됩니다. 파이썬에서는 # 기호를 사용하여 한 줄 주석을 작성할 수 있습니다.
# 이것은 주석입니다.
print("주석은 코드 설명이나 비활성화에 사용됩니다.")
여러 줄 주석을 작성하려면, 여러 줄을 선택한 후 Ctrl + / (혹은 Cmd + / on Mac) 단축키를 사용하면 됩니다.
"""
이것은 여러 줄 주석입니다.
여러 줄을 선택한 후
Ctrl + / 단축키를 사용하면 됩니다.
"""
print("주석은 코드 설명이나 비활성화에 사용됩니다.")
위의 예제 코드에서는 한 줄 주석과 여러 줄 주석을 작성하는 방법을 보여줍니다. 한 줄 주석은 코드 라인 끝에 # 기호를 추가하여 작성합니다. 여러 줄 주석은 """ 기호를 코드 라인 앞과 뒤에 추가하여 작성합니다.
주석은 코드를 이해하고 유지보수하기 위해 매우 중요합니다. 좋은 주석을 작성하면 다른 개발자들이 코드를 이해하기 쉬워지고, 코드를 개선하기 쉬워집니다.
변수와 자료형
변수의 개념
파이썬 변수에 대해 간단히 알아보겠습니다.
파이썬에서 변수란, 값을 저장하기 위한 이름표와 같은 역할을 합니다. 변수는 값을 저장하고, 이를 다른 변수나 함수에서 참조하여 사용할 수 있습니다. 파이썬에서 변수는 변수명을 정의하고, 변수에 값을 할당하는 방식으로 사용합니다.
변수명은 영문자, 숫자, 밑줄(_)로 구성되며, 대소문자를 구분합니다. 변수명은 숫자로 시작할 수 없으며, 파이썬에서 사용되는 예약어를 변수명으로 사용할 수 없습니다. 예를 들어, 다음과 같은 변수명은 유효하지 않습니다.
1variable
if
while
변수에 값을 할당할 때는 등호(=)를 사용합니다. 예를 들어, 다음과 같은 방식으로 변수에 값을 할당할 수 있습니다.
x = 10
y = 20
위 코드에서 x와 y는 변수명이고, 각각 10과 20이라는 값을 할당한 것입니다. 변수에 할당된 값을 참조할 때는 변수명을 사용합니다. 예를 들어, 다음과 같은 방식으로 변수에 할당된 값을 출력할 수 있습니다.
print(x)
print(y)
위 코드를 실행하면, x와 y에 할당된 값인 10과 20이 각각 출력됩니다.
파이썬에서는 변수의 타입을 미리 선언하지 않아도 됩니다. 변수에 할당된 값에 따라 자동으로 타입이 결정됩니다. 예를 들어, 다음과 같이 정수형, 실수형, 문자열, 불(불리언) 값 등을 변수에 할당할 수 있습니다.
x = 10 # 정수형
y = 3.14 # 실수형
name = "John" # 문자열
flag = True # 불리언 값
이상으로 파이썬 변수에 대해 간단히 살펴보았습니다.
변수의 선언과 초기화
파이썬에서는 변수를 선언할 때 자료형을 명시하지 않습니다. 변수를 선언하고 값을 할당함으로써 초기화합니다.
변수를 선언하는 방법은 변수명 = 값
형태로 이루어집니다. 예를 들어, x = 10
과 같이 변수명 x
에 값 10
을 할당하는 것입니다.
변수명을 지을 때는 변수의 의미를 파악할 수 있도록 명확하고 간결한 이름을 지으시는 것이 좋습니다. 변수명은 알파벳과 숫자, 언더스코어(_)로 구성될 수 있습니다.
예를 들어, age = 27
과 같이 변수명 age
에 값 27
을 할당할 수 있습니다. 이후에는 age
변수를 사용하여 print(age)
와 같이 출력하거나, 다른 연산에 사용할 수 있습니다.
또한, 한 줄에 여러 개의 변수를 선언하여 초기화할 수 있습니다. 예를 들어, a, b, c = 1, 2, 3
과 같이 변수 a
, b
, c
에 각각 1
, 2
, 3
을 할당하는 것입니다.
이러한 방식으로 파이썬에서는 변수를 선언하고 초기화할 수 있습니다.
변수 삭제
파이썬에서는 del
키워드를 사용하여 변수를 삭제할 수 있습니다. del
키워드를 사용하면 변수가 가리키는 개체(object)를 메모리에서 제거할 수 있습니다.
a = 123 # 정수형 변수
b = 3.14 # 실수형 변수
c = 'Hello, World!' # 문자열 변수
print(a, b, c) # 123 3.14 Hello, World!
del a # 변수 a 삭제
del b, c # 변수 b와 c 삭제
print(a, b, c) # NameError: name 'a' is not defined
숫자형 자료형
파이썬은 다양한 숫자형 자료형을 지원하며, 주요한 숫자형 자료형으로는 정수형(int), 실수형(float), 복소수형(complex)이 있습니다.
정수형 (int
)
정수형은 양의 정수, 음의 정수, 0을 포함한 정수를 모두 표현할 수 있는 자료형입니다. 파이썬에서는 정수형을 나타낼 때에는 소수점이 없는 숫자를 사용합니다. 예를 들어, 123, -456, 0 등이 정수형입니다.
a = 123 # 양의 정수
b = -456 # 음의 정수
c = 0 # 0
실수형 (float
)
실수형은 소수점을 포함한 숫자를 나타내는 자료형입니다. 파이썬에서는 실수형을 나타낼 때에는 소수점을 사용합니다. 예를 들어, 3.14, -123.45, 0.0 등이 실수형입니다.
a = 3.14 # 양의 실수
b = -123.45 # 음의 실수
c = 0.0 # 0.0
복소수형 (complex)
복소수형은 실수부와 허수부로 이루어진 숫자를 나타내는 자료형입니다. 파이썬에서는 복소수형을 나타낼 때에는 j 또는 J를 사용합니다. 예를 들어, 3+4j, -1.2-3.4j, 4j 등이 복소수형입니다.
a = 3+4j # 실수부가 3, 허수부가 4인 복소수
b = -1.2-3.4j # 실수부가 -1.2, 허수부가 -3.4인 복소수
c = 4j # 실수부가 0, 허수부가 4인 복소수
참고로, 복수소형은 이 강의에서는 더 이상 사용하지 않습니다.
문자열 자료형
문자열은 문자, 숫자, 특수문자 등을 모두 포함한 문자의 집합을 나타내는 자료형입니다. 파이썬에서는 문자열을 작은따옴표(')나 큰따옴표(")로 둘러싸서 나타냅니다.
a = 'Hello, World!' # 작은따옴표로 나타낸 문자열
b = "Hello, Python!" # 큰따옴표로 나타낸 문자열
파이썬에서는 문자열의 일부분을 슬라이싱하여 추출할 수 있습니다. 슬라이싱은 뒤에서 좀 더 자세히 다룹니다.
a = 'Hello, World!'
b = a[0:5] # 'Hello'
파이썬에서는 문자열을 더하여 연결할 수 있습니다.
a = 'Hello, '
b = 'World!'
c = a + b # 'Hello, World!'
파이썬에서는 문자열의 곱셈 연산자를 사용하여, 문자열을 반복할 수 있습니다.
a = 'Hello'
b = a * 3 # 'HelloHelloHello'
큰따옴표와 작은따옴표 함께 사용하기
- 큰따옴표로 문자열을 감싸고, 그 안에 작은따옴표를 사용하는 방법:
sentence = "She said, 'Hello, world!'"
print(sentence)
- 작은따옴표로 문자열을 감싸고, 그 안에 큰따옴표를 사용하는 방법:
sentence = 'He replied, "How are you?"'
print(sentence)
위의 코드를 실행하면 각각의 문장에 작은따옴표와 큰따옴표가 포함된 문자열이 출력됩니다.
여러 줄 문자열
파이썬에서는 여러 줄의 문자열을 표현하는 방법이 있습니다. 이를 "Multi-line Strings" 또는 "여러 줄 문자열"이라고 합니다.
파이썬에서는 작은따옴표(''
)나 큰따옴표(""
) 세 개를 연속해서 사용하여 Multi-line Strings를 만들 수 있습니다. 예를 들어, 작은따옴표를 세 개 사용한 문자열은 아래와 같이 작성할 수 있습니다.
a = '''이것은 여러 줄의 문자열입니다.
여러 줄로 이루어져 있습니다.'''
print(a)
위 코드에서 '''
과 '''
사이에 작성한 문자열은 여러 줄로 이루어져 있습니다. print()
함수를 사용하여 Multi-line Strings를 출력하면, 여러 줄이 출력됩니다.
문자열 안에는 줄바꿈 문자('\n
')나 탭 문자('\t
') 등의 이스케이프 문자를 사용할 수 있습니다.
b = '''이것도 여러 줄의 문자열입니다.
탭 문자(\t)와 줄바꿈 문자(\n)를 사용했습니다.'''
print(b)
위 코드에서 \t
는 탭 문자를, \n
은 줄바꿈 문자를 나타냅니다.
이스케이프 시퀀스
이스케이프 시퀀스 또는 이스케이프 문자는 파이썬과 많은 다른 프로그래밍 언어에서 문자열 내에서 특수한 문자나 동작을 나타내기 위해 사용되는 문자 조합입니다. 이스케이프 문자는 백슬래시(\
)로 시작하며, 백슬래시 뒤에 오는 문자와 함께 특정 동작이나 문자를 나타냅니다.
다음은 파이썬에서의 몇몇 대표적인 이스케이프 문자들입니다:
\n
: 새 줄 (개행 문자)\t
: 탭 문자\\
: 백슬래시 자체를 나타냅니다. (예: "C:\Program Files")\"
: 큰따옴표를 나타냅니다.\'
: 작은따옴표를 나타냅니다.
예시:
print("Hello\nWorld!") # 출력: Hello
# World!
print("Hello\tWorld!") # 출력: Hello World!
print("He said, \"Hello World!\"") # 출력: He said, "Hello World!"
print('It\'s a beautiful day!') # 출력: It's a beautiful day!
print("Backslash: \\") # 출력: Backslash: \
이와 같이 이스케이프 문자는 문자열 내에서 특수 문자나 동작을 표현할 때 사용되며, 문자열을 처리할 때 자주 사용됩니다.
f-문자열
Multi-line Strings 안에는 문자열 포맷팅을 적용할 수 있습니다. f-문자열
을 사용하면 Multi-line Strings 안에서 변수를 쉽게 사용할 수 있습니다.
name = "홍길동"
age = 30
c = f'''이것은 여러 줄의 문자열입니다.
이름은 {name}입니다.
나이는 {age}살입니다.'''
print(c)
위 코드에서 f-문자열
을 사용하여 Multi-line Strings 안에 변수 값을 삽입했습니다. f-문자열
을 사용하면 변수를 더욱 쉽게 문자열에 삽입할 수 있습니다.
이상으로 파이썬에서 여러 줄의 문자열을 표현하는 Multi-line Strings에 대해 간단히 설명해보았습니다.
불(불리언) 자료형
불은 True와 False 두 가지 값 중 하나를 가지는 자료형입니다. 파이썬에서는 불리언 자료형을 나타낼 때, True와 False 키워드를 사용합니다.
NOTE
박용준 강사의 강의에서는 불
을 기준으로 불리언
용어를 혼용해서 같은 표현으로 사용하겠습니다
a = True # 참을 나타내는 불리언 값
b = False # 거짓을 나타내는 불리언 값
아직 배우지 않은 내용이지만, 불리언 자료형은 비교 연산자를 사용할 때 자주 사용됩니다. 비교 연산자는 두 값을 비교하여 True 또는 False를 반환하는 연산자입니다.
a = 10
b = 20
print(a == b) # False
print(a != b) # True
print(a < b) # True
print(a > b) # False
print(a <= b) # True
print(a >= b) # False
TIP
프로그래밍 언어에서 사용되는 "불리언" (Boolean) 개념의 유래는 19세기의 영국 수학자 George Boole의 작업에 기반합니다. George Boole은 논리적 명제를 대수적으로 표현하려는 시도로 불 대수 (Boolean algebra)라는 체계를 개발했습니다.
George Boole의 불 대수는 논리 연산 (AND, OR, NOT 등)을 정의하며, 이 연산들은 오직 두 가지 상태만을 가지는 값 (예: 참 혹은 거짓) 사이에서 수행됩니다. 이러한 대수적 표현은 논리적 명제와 추론을 정형화하고 분석할 수 있게 만들었습니다.
20세기에 들어서, 불 대수는 전기 및 전자 공학에서 디지털 회로 설계의 기초로 사용되기 시작했습니다. 특히, 논리 게이트 (예: AND 게이트, OR 게이트, NOT 게이트)는 불 대수의 원칙에 기반하여 작동합니다. 이후에, 불 대수는 컴퓨터 과학의 핵심 개념으로 자리잡게 되었습니다.
불리언 데이터 타입은 프로그래밍 언어에서 두 가지 값 (주로 True
와 False
또는 1
과 0
)만을 표현할 수 있는 데이터 타입으로 정의됩니다. 대부분의 프로그래밍 언어는 불리언 타입을 기본 제공하며, 이는 조건문, 반복문, 논리 연산 등 여러 프로그래밍 작업에서 핵심적으로 활용됩니다.
요약하면, 프로그래밍 언어에서의 불리언 개념은 George Boole의 불 대수에 기반을 두며, 이는 디지털 컴퓨팅 및 프로그래밍의 핵심적인 구성요소로 자리잡게 되었습니다.
None 자료형
None은 파이썬에서 값이 없음을 나타내는 객체입니다. None은 불리언 자료형에서 False와 같이 동작합니다. None은 NoneType 클래스의 객체이며, None은 오직 하나만 존재합니다.
다음 예시 코드는 아직 배우지 않은 if 문이 나오므로 참고용으로 보세요. None 데이터 형식을 비교할 때에는 is
연산자를 사용합니다.
a = None
if a is None:
print('a is None')
else:
print('a is not None')
is
와 is not
연산자 소개
is
와 is not
은 파이썬에서 제공하는 두 개의 항등 연산자입니다. 이들은 두 개체의 아이덴티티를 비교하는 데 사용됩니다. 여기서 아이덴티티란 개체의 메모리 내 주소를 의미합니다.
is 연산자: 두 객체가 동일한 객체인지 확인합니다.
- 예: `a is b`는
a
와b
가 동일한 객체를 참조하면True
를 반환합니다.
- 예: `a is b`는
is not 연산자: 두 객체가 동일하지 않은 객체인지 확인합니다.
- 예: `a is not b`는
a
와b
가 다른 객체를 참조하면True
를 반환합니다.
- 예: `a is not b`는
이 연산자들은 주로 None
을 검사할 때 유용하게 사용됩니다. 예를 들어, 변수가 None
인지 확인하려면 `if x is None:`과 같이 사용합니다.
하지만 is
와 is not
연산자를 값의 동등성 비교에 사용하는 것은 올바르지 않습니다. 값의 동등성 비교를 위해서는 ==
와 !=
연산자를 사용해야 합니다.
# 리스트를 두 번 할당합니다.
a = [1, 2, 3]
b = [1, 2, 3]
# a와 b는 값은 같지만, 서로 다른 메모리 주소를 가지고 있습니다.
print(a == b) # True - 값의 동등성 비교
print(a is b) # False - 항등 비교
# 동일한 객체에 대한 참조를 생성합니다.
c = a
print(a is c) # True
컬렉션
파이썬에서는 다양한 종류의 데이터를 다루기 위해 리스트, 튜플, 세트(set), 사전(dictionary) 등의 데이터 타입을 제공합니다. 이들 데이터 타입은 서로 다른 특징과 용도를 가지고 있으며, 각각의 특징을 이용하여 프로그램을 구현할 수 있습니다.
리스트(List)
리스트는 가장 일반적인 시퀀스(sequence) 자료형으로, 여러 개의 요소(element)를 담을 수 있습니다. 대괄호([])로 표시되며, 각 요소는 쉼표(,)로 구분됩니다. 리스트는 여러 가지 자료형을 포함할 수 있으며, 요소의 자료형이 일치할 필요는 없습니다. 리스트는 수정 가능한(mutable) 자료형입니다.
다음 코드를 한 번 정도만 실행해 본 후 다음으로 넘어가세요.
# 리스트 생성
fruits = ["apple", "banana", "cherry", "date"]
print(fruits)
# 리스트에 항목 추가
fruits.append("elderberry")
print(fruits) # ['apple', 'banana', 'cherry', 'date', 'elderberry']
# 특정 위치에 항목 삽입
fruits.insert(1, "blueberry")
print(fruits) # ['apple', 'blueberry', 'banana', 'cherry', 'date', 'elderberry']
# 리스트에서 항목 제거
fruits.remove("date")
print(fruits) # ['apple', 'blueberry', 'banana', 'cherry', 'elderberry']
# 인덱스를 사용하여 리스트 항목에 접근
print(fruits[0]) # apple
print(fruits[-1]) # elderberry
# 리스트 슬라이싱
print(fruits[1:4]) # ['blueberry', 'banana', 'cherry']
# 리스트의 길이 확인
print(len(fruits)) # 5
파이썬에서 빈 리스트에 항목 추가하기
파이썬의 append()
메서드를 사용하면 리스트에 쉽게 항목을 추가할 수 있습니다. 아래는 빈 리스트에 append()
를 사용하여 항목을 추가하는 간단한 예제입니다.
# 빈 리스트 생성
my_list = []
# 항목 추가
my_list.append('apple')
my_list.append('banana')
my_list.append('cherry')
# 리스트 출력
print(my_list)
출력 결과는 다음과 같습니다:
['apple', 'banana', 'cherry']
이 예제에서는 초기에 빈 리스트 my_list
를 생성한 후, append()
메서드를 사용하여 여러 과일 이름을 항목으로 추가했습니다.
튜플(Tuple)
튜플은 리스트와 비슷한 시퀀스(sequence) 자료형으로, 여러 개의 요소(element)를 담을 수 있습니다. 대괄호([]
) 대신 괄호(()
)로 표시됩니다. 리스트와는 달리, 한 번 생성된 튜플은 요소를 변경할 수 없으므로 수정 불가능한(immutable) 자료형입니다. 하지만 리스트보다 처리 속도가 빠르고 메모리를 적게 사용합니다.
다음은 튜플에 관한 몇 가지 예제입니다:
- 기본 튜플 생성
my_tuple = (1, 2, 3, 4, 5)
print(my_tuple) # 출력: (1, 2, 3, 4, 5)
- 튜플 항목 접근
print(my_tuple[2]) # 출력: 3
- 튜플 슬라이싱
print(my_tuple[1:4]) # 출력: (2, 3, 4)
- 튜플 길이
print(len(my_tuple)) # 출력: 5
- 튜플 내의 튜플 (nested tuple)
nested_tuple = (1, 2, (3, 4, 5), 6, 7)
print(nested_tuple[2]) # 출력: (3, 4, 5)
print(nested_tuple[2][1]) # 출력: 4
- 튜플이 immutable함을 확인
# 아래 코드는 오류를 발생시킵니다.
# my_tuple[2] = 10
튜플은 함수에서 여러 값을 한번에 반환할 때, 데이터의 변경을 원하지 않을 때, 혹은 딕셔너리의 키로 사용할 때 유용합니다.
시퀀스 데이터 형식
파이썬은 다양한 데이터 유형을 제공하며, 그 중 시퀀스 데이터 형식은 여러 값을 순서대로 저장하고 관리하는 데 주로 사용됩니다. 이 아티클에서는 파이썬의 주요 시퀀스 데이터 형식을 간략하게 살펴보겠습니다.
1. 리스트(List)
- 대표 기호:
[]
- 특징: 가변적이며, 항목의 추가, 삭제, 수정이 가능하다.
fruits = ['apple', 'banana', 'cherry']
fruits.append('date')
2. 튜플(Tuple)
- 대표 기호:
()
- 특징: 불변적이다. 한 번 생성하면 내부 요소를 변경할 수 없다.
coordinates = (10, 20)
3. 문자열(String)
- 대표 기호:
''
또는""
- 특징: 문자의 나열로, 불변적이다.
greeting = "Hello, World!"
4. 시퀀스 공통 연산
모든 시퀀스 데이터 형식은 다음과 같은 공통 연산을 지원합니다.
- 인덱싱:
seq[index]
- 슬라이싱:
seq[start:end]
- 길이 확인:
len(seq)
- 멤버 체크:
x in seq
마치며
시퀀스 데이터 형식은 파이썬의 핵심적인 부분으로, 데이터를 효과적으로 관리하고 조작하기 위해 필수적입니다. 상황과 필요에 따라 적절한 시퀀스 형식을 선택하여 사용하면 파이썬 프로그래밍이 더욱 간편해집니다.
파이썬에서 시퀀스 데이터의 슬라이싱
파이썬은 데이터를 쉽게 처리하고 조작할 수 있는 다양한 방법을 제공합니다. 시퀀스 데이터의 한 가지 핵심 기능은 '슬라이싱'입니다. 슬라이싱을 통해 시퀀스의 일부분을 쉽게 추출하거나 변경할 수 있습니다.
시퀀스 데이터는 순서대로 나열된 데이터를 말합니다. 파이썬에서 대표적인 시퀀스 데이터 유형에는 문자열(string), 리스트(list), 튜플(tuple) 등이 있습니다.
시퀀스 데이터를 슬라이싱하려면 다음과 같은 문법을 사용합니다:
sequence[start:stop:step]
start
: 시작 인덱스. 생략하면 0부터 시작.stop
: 종료 인덱스. 이 인덱스는 포함되지 않습니다.step
: 스텝(간격). 생략하면 1씩 증가.
# 문자열 슬라이싱
str_val = "Hello, World!"
print(str_val[0:5]) # 출력: Hello
print(str_val[7:]) # 출력: World!
print(str_val[::2]) # 출력: Hlo ol!
# 리스트 슬라이싱
list_val = [0, 1, 2, 3, 4, 5]
print(list_val[1:4]) # 출력: [1, 2, 3]
print(list_val[:3]) # 출력: [0, 1, 2]
print(list_val[::2]) # 출력: [0, 2, 4]
리스트 같은 변경 가능한 시퀀스 데이터에서는 슬라이싱을 통해 값을 수정할 수 있습니다.
list_val = [0, 1, 2, 3, 4, 5]
list_val[1:4] = ['a', 'b', 'c']
print(list_val) # 출력: [0, 'a', 'b', 'c', 4, 5]
슬라이싱에 마이너스 값을 사용할 수도 있습니다. 다음 코드를 간단히 실행해본 후 넘어갑니다.
# 리스트 예제
lst = [0, 1, 2, 3, 4, 5]
# 마지막 원소 가져오기
print(lst[-1]) # 출력: 5
# 마지막에서 두 번째 원소 가져오기
print(lst[-2]) # 출력: 4
# 끝에서 세 번째 원소부터 마지막 원소까지 슬라이스
print(lst[-3:]) # 출력: [3, 4, 5]
# 끝에서 첫 번째 원소부터 끝에서 네 번째 원소까지 역순으로 슬라이스
print(lst[:-4:-1]) # 출력: [5, 4, 3]
# 전체 리스트를 역순으로 가져오기
print(lst[::-1]) # 출력: [5, 4, 3, 2, 1, 0]
# 문자열 예제
s = "Hello"
# 마지막 문자 가져오기
print(s[-1]) # 출력: o
# 전체 문자열을 역순으로 가져오기
print(s[::-1]) # 출력: olleH
다음은 인덱스를 생략한 슬라이싱의 예제들입니다:
# 리스트 예제
lst = [0, 1, 2, 3, 4, 5]
# 시작 인덱스 생략: 처음부터 슬라이스
print(lst[:3]) # 출력: [0, 1, 2]
# 종료 인덱스 생략: 지정한 인덱스부터 끝까지 슬라이스
print(lst[3:]) # 출력: [3, 4, 5]
# 시작과 종료 인덱스 모두 생략: 전체 리스트 슬라이스
print(lst[:]) # 출력: [0, 1, 2, 3, 4, 5]
# 문자열 예제
s = "Hello"
# 시작 인덱스 생략: 처음부터 슬라이스
print(s[:3]) # 출력: "Hel"
# 종료 인덱스 생략: 지정한 인덱스부터 끝까지 슬라이스
print(s[2:]) # 출력: "llo"
# 시작과 종료 인덱스 모두 생략: 전체 문자열 슬라이스
print(s[:]) # 출력: "Hello"
다음은 len()
함수를 슬라이싱과 함께 사용한 예제들입니다:
# 리스트 예제
lst = [0, 1, 2, 3, 4, 5]
# 리스트의 마지막 원소 가져오기
print(lst[len(lst)-1]) # 출력: 5
# 리스트의 끝에서 두 번째 원소 가져오기
print(lst[len(lst)-2]) # 출력: 4
# 리스트의 뒤에서 세 개의 원소 슬라이스
print(lst[len(lst)-3:]) # 출력: [3, 4, 5]
# 문자열 예제
s = "Hello"
# 문자열의 마지막 문자 가져오기
print(s[len(s)-1]) # 출력: o
# 문자열의 처음부터 마지막 문자 전까지 슬라이스
print(s[:len(s)-1]) # 출력: "Hell"
세트(Set)
세트는 순서 없는(unordered) 집합(set)을 나타내는 자료형입니다. 중복된 요소를 포함하지 않으며, 산술 연산(합집합, 교집합, 차집합 등)을 지원합니다. 중괄호({})를 사용하여 셋을 생성합니다.
사전(Dictionary)
사전은 키(key)와 값(value)의 쌍으로 이루어진 자료형입니다. 각 키는 유일해야 하며, 값은 중복이 가능합니다. 중괄호({})를 사용하여 사전을 생성하며, 키와 값은 콜론(:)으로 구분합니다.
# 리스트 예제
my_list = [1, 2, 3, 'four', 'five']
print(my_list)
# 튜플 예제
my_tuple = (1, 2, 3, 'four', 'five')
print(my_tuple)
# 셋 예제
my_set = {1, 2, 3, 3, 'four', 'five'}
print(my_set)
# 사전 예제
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
print(my_dict)
위 코드에서 my_list는 리스트를, my_tuple은 튜플을, my_set은 셋을, my_dict는 사전을 생성합니다. 각각의 데이터 타입을 출력하여 확인합니다.
변수의 자료형 알아내기
파이썬에서는 type()
함수를 사용하여 변수의 자료형을 알아낼 수 있습니다. type()
함수는 변수를 인자로 받아, 해당 변수의 자료형을 반환합니다.
a = 123 # 정수형 변수
b = 3.14 # 실수형 변수
c = 'Hello, World!' # 문자열 변수
print(type(a)) # <class 'int'>
print(type(b)) # <class 'float'>
print(type(c)) # <class 'str'>
파이썬에서는 변수의 자료형이 동적으로 결정됩니다. 따라서, 변수에 할당된 값에 따라 자료형이 변경될 수 있습니다.
a = 123 # 정수형 변수
print(type(a)) # <class 'int'>
a = 3.14 # 실수형 변수로 변경
print(type(a)) # <class 'float'>
a = 'Hello, World!' # 문자열 변수로 변경
print(type(a)) # <class 'str'>
파이썬에서는 isinstance()
함수를 사용하여 변수가 지정한 자료형인지 확인할 수 있습니다. isinstance()
함수는 변수와 자료형을 각각 첫 번째와 두 번째 인자로 받아, 해당 변수가 지정한 자료형이면 True를 반환합니다.
a = 123 # 정수형 변수
b = 3.14 # 실수형 변수
c = 'Hello, World!' # 문자열 변수
print(isinstance(a, int)) # True
print(isinstance(b, float)) # True
print(isinstance(c, str)) # True
파이썬에서 deque 사용하기
deque
는 파이썬의 collections
모듈의 일부로, 양방향 큐로 사용될 수 있습니다.
deque 생성
from collections import deque
# deque 생성
d = deque()
# 오른쪽에 항목 추가
d.append('a')
d.append('b')
# 왼쪽에 항목 추가
d.appendleft('c')
print(d) # 출력: deque(['c', 'a', 'b'])
deque에서 항목 제거
# 오른쪽 끝의 항목 제거
d.pop()
# 왼쪽 끝의 항목 제거
d.popleft()
print(d) # 출력: deque(['c'])
deque의 회전
d = deque(['a', 'b', 'c', 'd'])
# 오른쪽으로 2개의 항목 회전
d.rotate(2)
print(d) # 출력: deque(['c', 'd', 'a', 'b'])
# 왼쪽으로 2개의 항목 회전
d.rotate(-2)
print(d) # 출력: deque(['a', 'b', 'c', 'd'])
deque
는 이 외에도 다양한 메소드와 기능을 제공합니다. 공식 문서에서 더 많은 정보를 얻을 수 있습니다.
데이터 타입 변환 함수
파이썬의 데이터 타입 변환 함수에 대해 간단히 소개하겠습니다.
파이썬에서는 데이터 타입 간에 변환이 필요한 경우가 많이 있습니다. 이 때 사용할 수 있는 함수들이 있으며, 각 함수는 다음과 같은 역할을 수행합니다.
- int(): 문자열을 정수형으로 변환합니다.
a = '100'
b = int(a)
print(b) # 출력 결과: 100
- float(): 문자열을 실수형으로 변환합니다.
a = '3.14'
b = float(a)
print(b) # 출력 결과: 3.14
- str(): 정수나 실수를 문자열로 변환합니다.
a = 100
b = str(a)
print(b) # 출력 결과: '100'
a = 3.14
b = str(a)
print(b) # 출력 결과: '3.14'
- bool(): 값을 불리언 값으로 변환합니다.
a = 0
b = bool(a)
print(b) # 출력 결과: False
a = 100
b = bool(a)
print(b) # 출력 결과: True
- list(): 문자열, 튜플, 세트, 딕셔너리 등을 리스트로 변환합니다.
a = 'hello'
b = list(a)
print(b) # 출력 결과: ['h', 'e', 'l', 'l', 'o']
a = (1, 2, 3)
b = list(a)
print(b) # 출력 결과: [1, 2, 3]
- tuple(): 리스트, 문자열, 세트, 딕셔너리 등을 튜플로 변환합니다.
a = [1, 2, 3]
b = tuple(a)
print(b) # 출력 결과: (1, 2, 3)
a = 'hello'
b = tuple(a)
print(b) # 출력 결과: ('h', 'e', 'l', 'l', 'o')
- set(): 리스트, 문자열, 튜플, 딕셔너리 등을 세트로 변환합니다.
a = [1, 2, 3]
b = set(a)
print(b) # 출력 결과: {1, 2, 3}
a = 'hello'
b = set(a)
print(b) # 출력 결과: {'l', 'h', 'o', 'e'}
- dict(): 리스트, 튜플 등을 딕셔너리로 변환합니다.
a = [('name', 'John'), ('age', 30)]
b = dict(a)
print(b) # 출력 결과: {'name': 'John', 'age': 30}
이상으로 파이썬의 데이터 타입 변환 함수에 대해 간단히 살펴보았습니다.
파이썬 문자열 포맷팅
파이썬의 문자열 포맷팅에 대해 설명드리겠습니다.
문자열 포맷팅은 문자열 안에 변수 값을 삽입하는 방법입니다. 파이썬에서는 문자열 포맷팅을 위해 %
연산자나 format()
함수를 사용할 수 있습니다.
%
연산자를 사용한 문자열 포맷팅
%
연산자를 사용하여 문자열 안에 변수 값을 삽입할 수 있습니다. 이 때 % 연산자 뒤에 전달하는 값은 변수 값이 들어갈 위치에 따라 다릅니다.
name = "홍길동"
age = 30
print("이름: %s, 나이: %d" % (name, age))
위 코드에서 %s
는 문자열 형식의 변수를 나타내고, %d
는 정수형 변수를 나타냅니다. %
연산자 뒤에 전달하는 값은 변수 값이 들어갈 위치에 따라서, 해당 변수의 자료형과 일치하는 포맷 문자열을 사용해야 합니다.
format()
함수를 사용한 문자열 포맷팅
format()
함수를 사용하여 문자열 안에 변수 값을 삽입할 수 있습니다.
name = "홍길동"
age = 30
print("이름: {}, 나이: {}".format(name, age))
위 코드에서 {}
는 변수 값이 들어갈 위치를 나타냅니다. format()
함수를 호출할 때 전달하는 인자는 변수 값이 들어갈 순서대로 나열됩니다. 인덱스를 사용하여 전달하는 인자의 순서를 변경할 수도 있습니다.
name = "홍길동"
age = 30
print("이름: {1}, 나이: {0}".format(age, name))
위 코드에서 {}
안에 숫자를 넣으면, 인덱스를 지정할 수 있습니다.
f-
문자열
f-
문자열은 문자열 안에 변수 값을 삽입하는 가장 최신의 방법입니다. f-
문자열을 사용하면, 문자열 안에서 직접 변수 이름을 사용할 수 있습니다.
name = "홍길동"
age = 30
print(f"이름: {name}, 나이: {age}")
위 코드에서 f-
문자열은 문자열 앞에 f
접두어를 붙이면 됩니다. f-
문자열을 사용하면, 문자열 안에서 변수 값을 직접 참조할 수 있어 코드를 보다 직관적으로 작성할 수 있습니다.
사용자로부터 값을 입력 받기
파이썬에서 input() 함수는 사용자로부터 입력을 받는 함수입니다. 사용자가 입력한 값을 문자열로 반환합니다.
input() 함수를 사용하는 방법은 매우 간단합니다. 다음과 같은 방식으로 사용자로부터 입력을 받을 수 있습니다.
name = input("이름을 입력하세요: ")
위 코드에서 input() 함수는 사용자로부터 입력을 받는 창을 띄우고, "이름을 입력하세요: "라는 메시지를 표시합니다. 사용자가 이름을 입력하면, 이를 name 변수에 문자열로 저장합니다.
input() 함수로 입력받은 값은 항상 문자열(string)입니다. 만약, 정수나 실수와 같은 숫자형 데이터를 입력받고자 한다면, int() 함수나 float() 함수를 사용하여 숫자형으로 변환해주어야 합니다.
age = input("나이를 입력하세요: ")
age = int(age) # 문자열을 정수형으로 변환
위 코드에서 age 변수에 입력받은 문자열을 정수형으로 변환하여 저장합니다.
또한, input() 함수는 문자열 이외에도 다양한 자료형을 입력받을 수 있습니다. 예를 들어, 리스트나 튜플 등을 입력받고자 한다면, 다음과 같은 방식으로 입력받을 수 있습니다.
# 리스트 입력받기
numbers = input("숫자를 입력하세요: ").split()
numbers = [int(num) for num in numbers]
# 튜플 입력받기
name, age = input("이름과 나이를 입력하세요: ").split()
age = int(age)
이상으로 input() 함수에 대해 간단히 살펴보았습니다.
map 함수와 input 함수 함께 사용하기
위 코드에서 split() 함수는 입력받은 문자열을 공백을 기준으로 나누어 리스트나 튜플 형태로 저장합니다. 이후, 리스트나 튜플의 요소들을 숫자형으로 변환하여 저장합니다.
파이썬에서 input() 함수를 사용하여 사용자로부터 콘솔 입력을 받을 수 있습니다. 이때, input() 함수는 사용자로부터 입력받은 값을 문자열로 반환합니다.
map() 함수는 리스트의 모든 요소에 대해 지정한 함수를 적용한 결과를 반환하는 함수입니다. map() 함수는 여러 개의 인자를 받을 수 있으며, 첫 번째 인자는 적용할 함수이고, 나머지 인자는 적용할 요소를 담은 리스트입니다.
따라서, input() 함수로 입력받은 문자열을 split() 함수를 사용하여 분리한 후, map() 함수를 사용하여 각 요소를 정수형으로 변환한 다음, 변수에 할당할 수 있습니다.
a, b, c = map(int, input('세 개의 정수를 입력하세요: ').split())
print(f'a: {a}, b: {b}, c: {c}')
위 예제에서 input() 함수는 사용자로부터 '세 개의 정수를 입력하세요: '를 출력한 후, 사용자로부터 콘솔 입력을 받습니다. 이후 split() 함수를 사용하여 입력받은 문자열을 공백으로 분리하고, map() 함수를 사용하여 각 요소를 정수형으로 변환합니다. 마지막으로, a, b, c 변수에 각각 할당합니다.
다음은 간단한 예제로, 사용자로부터 두 개의 정수를 입력받아 이들의 합을 출력하는 코드입니다:
a, b = map(int, input("두 개의 정수 입력: ").split())
print(f"{a} + {b} = {a + b}")
위 코드를 실행하면 사용자로부터 두 개의 정수를 입력받고, 해당 정수의 합을 출력합니다.
예를 들어, 사용자가 3 4
를 입력하면, 출력은 3 + 4 = 7
이 됩니다.
3. 연산자
파이썬에서 연산자는 산술 연산, 비교 연산, 논리 연산, 비트 연산 등 다양한 용도로 사용됩니다. 이번 강의에서는 파이썬에서 사용되는 대표적인 연산자에 대해 소개하겠습니다.
산술 연산자
파이썬에서는 다양한 산술 연산자를 제공합니다. 이번 강의에서는 파이썬의 산술 연산자에 대해 알아보도록 하겠습니다.
- 덧셈 연산자(+)
덧셈 연산자는 두 개의 숫자를 더할 때 사용됩니다. 예를 들어, 다음과 같이 두 숫자를 더할 수 있습니다.
a = 10
b = 20
c = a + b
print(c) # 출력 결과: 30
- 뺄셈 연산자(-)
뺄셈 연산자는 두 개의 숫자를 뺄 때 사용됩니다. 예를 들어, 다음과 같이 두 숫자를 뺄 수 있습니다.
a = 20
b = 10
c = a - b
print(c) # 출력 결과: 10
- 곱셈 연산자(*)
곱셈 연산자는 두 개의 숫자를 곱할 때 사용됩니다. 예를 들어, 다음과 같이 두 숫자를 곱할 수 있습니다.
a = 10
b = 20
c = a * b
print(c) # 출력 결과: 200
- 나눗셈 연산자(/)
나눗셈 연산자는 두 개의 숫자를 나눌 때 사용됩니다. 예를 들어, 다음과 같이 두 숫자를 나눌 수 있습니다.
a = 20
b = 10
c = a / b
print(c) # 출력 결과: 2.0
- 나눗셈의 몫 연산자(//)
나눗셈의 몫 연산자는 두 개의 숫자를 나눈 후, 몫을 구할 때 사용됩니다. 예를 들어, 다음과 같이 두 숫자를 나눈 후, 몫을 구할 수 있습니다.
a = 20
b = 3
c = a // b
print(c) # 출력 결과: 6
- 나눗셈의 나머지 연산자(%)
나눗셈의 나머지 연산자는 두 개의 숫자를 나눈 후, 나머지를 구할 때 사용됩니다. 예를 들어, 다음과 같이 두 숫자를 나눈 후, 나머지를 구할 수 있습니다.
a = 20
b = 3
c = a % b
print(c) # 출력 결과: 2
- 거듭제곱 연산자(**)
거듭제곱 연산자는 숫자를 제곱할 때 사용됩니다. 예를 들어, 다음과 같이 숫자를 제곱할 수 있습니다.
a = 2
b = 3
c = a ** b
print(c) # 출력 결과: 8
이상으로 파이썬의 산술 연산자에 대해 간단히 알아보았습니다. 연산자를 이용하여 변수에 값을 대입하거나, 연산 결과를 출력하는 등 다양한 활용이 가능합니다. 이외에도 복합 대입 연산자 등 파이썬이 제공하는 다양한 연산자가 있습니다. 이러한 연산자를 효과적으로 활용하여 프로그래밍을 하시면 좀 더 편리하게 작성할 수 있습니다.
표: 산술 연산자
연산자 | 이름 | 설명 | 예제 | 결과 |
---|---|---|---|---|
+ |
덧셈 | 두 수를 더함 | 5 + 3 |
8 |
- |
뺄셈 | 앞의 수에서 뒤의 수를 뺌 | 5 - 3 |
2 |
* |
곱셈 | 두 수를 곱함 | 5 * 3 |
15 |
/ |
나눗셈 | 앞의 수를 뒤의 수로 나눔 (소수 결과 포함) | 5 / 3 |
1.6667 |
// |
몫 | 나눗셈의 몫만 구함 | 5 // 3 |
1 |
% |
나머지 | 나눗셈의 나머지를 구함 | 5 % 3 |
2 |
** |
거듭제곱 | 앞의 수를 뒤의 수만큼 제곱함 | 5 ** 3 |
125 |
할당 연산자(대입 연산자)
파이썬에서의 할당 연산자는 변수에 값을 저장하거나 연산의 결과를 변수에 저장하는데 사용됩니다. 가장 기본적인 할당 연산자는 =
입니다.
예:
x = 5
위 코드는 정수 5
를 변수 x
에 할당합니다.
파이썬은 또한 여러 가지 복합 할당 연산자를 제공하여 변수의 값을 업데이트하는 연산을 간략하게 표현할 수 있습니다. 이러한 연산자들은 다음과 같습니다:
+=
: 가산 및 할당-=
: 감산 및 할당*=
: 곱셈 및 할당/=
: 나눗셈 및 할당**=
: 거듭제곱 및 할당//=
: 몫을 구하고 할당%=
: 나머지를 구하고 할당
예시:
x = 10
x += 5 # x = x + 5와 동일. 결과적으로 x는 15가 됩니다.
x -= 3 # x = x - 3과 동일. 결과적으로 x는 12가 됩니다.
x *= 2 # x = x * 2와 동일. 결과적으로 x는 24가 됩니다.
이와 같이 할당 연산자는 변수의 값을 효율적으로 업데이트하는 데 사용되며, 코드를 간결하게 만들어 줍니다.
두 정수의 곱 계산하기
파일명: multiply_two_numbers.py
# multiply_two_numbers.py
# 사용자로부터 두 개의 정수를 입력 받는다.
x, y = map(int, input("두 개의 정수를 공백으로 구분하여 입력하세요: ").split())
# 두 정수의 곱을 계산한다.
result = x * y
# 계산된 결과를 출력한다.
print(f"{x} 곱하기 {y}는 {result}입니다.")
input()
함수로 사용자로부터 문자열 형태의 입력을 받습니다.split()
메서드를 사용하여 공백 기준으로 문자열을 나눠 리스트로 만듭니다.map()
함수와int
를 사용하여 리스트의 각 요소를 정수로 변환합니다.- 두 개의 변수
x
와y
에 순서대로 할당하여 정수를 저장합니다. - 두 정수
x
와y
의 곱을 계산하고 그 결과를result
변수에 저장합니다. print()
함수와 f-string 형식을 사용하여 두 정수와 그 결과를 출력합니다.
비교 연산자 (관계형 연산자)
비교 연산자는 두 개의 값의 관계를 비교하는 연산자로, 주로 조건문에서 사용됩니다. 파이썬에서는 다음과 같은 비교 연산자를 지원합니다.
- == 연산자는 왼쪽 피연산자와 오른쪽 피연산자가 같으면 참을 반환합니다.
- != 연산자는 왼쪽 피연산자와 오른쪽 피연산자가 다르면 참을 반환합니다.
-
연산자는 왼쪽 피연산자가 오른쪽 피연산자보다 크면 참을 반환합니다.
- < 연산자는 왼쪽 피연산자가 오른쪽 피연산자보다 작으면 참을 반환합니다.
-
= 연산자는 왼쪽 피연산자가 오른쪽 피연산자보다 크거나 같으면 참을 반환합니다.
- <= 연산자는 왼쪽 피연산자가 오른쪽 피연산자보다 작거나 같으면 참을 반환합니다.
비교 연산자는 불리언(Boolean) 값으로 평가됩니다. 예를 들어, x == y는 x와 y가 같으면 참을 반환하며, 그렇지 않으면 거짓을 반환합니다. 이외에도, 문자열과 리스트 같은 시퀀스(sequence) 자료형의 비교도 가능합니다. 이 경우, 시퀀스의 각 원소가 차례로 비교되며, 모든 원소가 같으면 참을 반환합니다.
Boolean은 참(True) 또는 거짓(False) 두 가지 값 중 하나를 가지는 데이터 타입입니다. 파이썬에서는 True와 False라는 예약어를 사용하여 Boolean 값을 표현합니다.
Boolean 값은 비교 연산자나 논리 연산자를 사용하여 생성될 수 있습니다. 다음은 비교 연산자를 사용하여 Boolean 값을 생성하는 예시입니다.
a = 1
b = 2
# a와 b가 같은지 비교
print(a == b) # 출력 결과: False
# a가 b보다 작은지 비교
print(a < b) # 출력 결과: True
# a가 b보다 큰지 비교
print(a > b) # 출력 결과: False
논리 연산자를 사용하여 Boolean 값을 생성하는 예시는 다음과 같습니다.
a = True
b = False
# 논리곱(AND) 연산
print(a and b) # 출력 결과: False
# 논리합(OR) 연산
print(a or b) # 출력 결과: True
# 부정(NOT) 연산
print(not a) # 출력 결과: False
관계연산자.py
다음은 두 개의 변수를 선언하고, 관계 연산자를 사용하여 그 관계를 판단한 결과를 출력하는 예제 코드입니다.
코드: 관계연산자.py
first_num = 3
second_num = 5
greater = first_num > second_num
smaller = first_num < second_num
print(f"first_num = {first_num} second_num = {second_num} "
f"first_num > second_num = {greater} "
f"first_num < second_num = {smaller}")
위 코드에서는 먼저 first_num과 second_num 변수를 선언하고, 각각 3과 5의 값을 대입합니다. 그리고 관계 연산자를 사용하여 두 변수 간의 관계를 판단한 후, 그 결과를 Boolean 자료형의 greater와 smaller 변수에 대입합니다. 마지막으로, print 함수를 사용하여 변수들의 값을 출력합니다.
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
first_num = 3 second_num = 5 first_num > second_num = False first_num < second_num = True
결과에서는 first_num 변수의 값이 second_num 변수의 값보다 작으므로, first_num < second_num은 True가 됩니다. 반면, first_num > second_num은 False가 됩니다. 따라서 greater 변수의 값은 False, smaller 변수의 값은 True가 됩니다.
논리 연산자
논리 연산자는 논리적인 연산을 수행하는 연산자로, 주로 조건문에서 사용됩니다. 파이썬에서는 세 가지 논리 연산자를 지원합니다.
and 연산자는 양쪽 피연산자가 모두 참일 때 참을 반환합니다. 예를 들어, x and y는 x와 y가 모두 참일 때 참을 반환하며, 그렇지 않으면 거짓을 반환합니다.
or 연산자는 양쪽 피연산자 중 하나 이상이 참일 때 참을 반환합니다. 예를 들어, x or y는 x나 y 중 하나 이상이 참일 때 참을 반환하며, 둘 다 거짓인 경우에만 거짓을 반환합니다.
not 연산자는 단항 연산자로, 피연산자가 참이면 거짓을 반환하고, 거짓이면 참을 반환합니다. 예를 들어, not x는 x가 거짓일 때 참을 반환하며, 그렇지 않으면 거짓을 반환합니다.
논리 연산자는 불리언(Boolean) 값 뿐만 아니라, 다른 데이터 타입의 값들도 논리 연산에 사용될 수 있습니다. 예를 들어, 숫자 0은 거짓으로 취급되고, 비어있는 문자열은 거짓으로 취급됩니다. 따라서, if
문에서 논리 연산자를 사용하여 여러 조건을 검사할 수 있습니다.
파이썬 논리 연산자
파이썬에서 사용되는 기본적인 논리 연산자는 and
, or
, 그리고 not
입니다. 이 연산자들은 불리언(Boolean) 표현식의 결과를 결정하는 데 사용됩니다. 아래에 각 연산자에 대한 간단한 설명과 예제를 제공하겠습니다.
1. and
연산자
- 모든 피연산자가
True
일 때만True
를 반환합니다. - 첫 번째 피연산자가
False
라면, 두 번째 피연산자는 확인하지 않고False
를 반환합니다.
print(True and True) # True
print(True and False) # False
print(False and True) # False
print(False and False) # False
2. or
연산자
- 하나 이상의 피연산자가
True
일 때True
를 반환합니다. - 첫 번째 피연산자가
True
라면, 두 번째 피연산자는 확인하지 않고True
를 반환합니다.
print(True or True) # True
print(True or False) # True
print(False or True) # True
print(False or False) # False
3. not
연산자
- 불리언 값을 반대로 바꿉니다. 즉,
True
는False
로,False
는True
로 변환됩니다.
print(not True) # False
print(not False) # True
이러한 논리 연산자들은 다양한 조건문에서 종종 사용됩니다. 예를 들어, 어떤 수가 양수이면서 짝수인지 확인하려면 다음과 같이 코드를 작성할 수 있습니다:
num = 4
if num > 0 and num % 2 == 0:
print(f"{num}은 양수이면서 짝수입니다.")
위의 예제에서 num > 0
과 num % 2 == 0
두 조건 모두 만족해야만 메시지가 출력됩니다.
비트 연산자
비트 연산자는 이진수를 대상으로 비트(bit) 단위로 논리적인 연산을 수행하는 연산자입니다. 파이썬에서는 다음과 같은 비트 연산자를 지원합니다.
&
비트 AND 연산자는 두 개의 비트가 모두 1일 때 1을 반환합니다.|
비트 OR 연산자는 두 개의 비트 중 하나 이상이 1일 때 1을 반환합니다.^
비트 XOR 연산자는 두 개의 비트가 서로 다를 때 1을 반환합니다.~
비트 NOT 연산자는 피연산자의 모든 비트를 반전시킵니다.<<
비트 왼쪽 시프트 연산자는 피연산자의 비트를 왼쪽으로 이동시킵니다.>>
비트 오른쪽 시프트 연산자는 피연산자의 비트를 오른쪽으로 이동시킵니다.
비트 연산자는 정수 값에 대해 적용됩니다. 예를 들어, a & b는 a와 b의 비트 AND 연산을 수행한 결과를 반환합니다. 이외에도, 비트 연산자는 비트마스크(bitmask) 연산에서 자주 사용됩니다. 비트마스크는 특정 비트를 뽑아내거나, 특정 비트를 설정하거나, 비트를 토글(toggle)하는 등의 작업을 수행할 때 사용됩니다.
퀴즈
- 다음 중 산술 연산자가 아닌 것은 무엇입니까? a. + b. - c. * d. /
정답: d
해설: /는 산술 연산자입니다. 파이썬에서는 정수 나눗셈을 // 연산자로 수행합니다.
- 다음 중 비교 연산자가 아닌 것은 무엇입니까? a. == b. != c. >= d. and
정답: d
해설: and는 논리 연산자입니다. 비교 연산자는 ==, !=, >, <, >=, <= 등이 있습니다.
- 다음 중 할당 연산자가 아닌 것은 무엇입니까? a. = b. += c. -= d. //
정답: d
해설: //는 산술 연산자입니다. 할당 연산자는 =, +=, -=, *=, /= 등이 있습니다.
- 다음 중 논리 연산자가 아닌 것은 무엇입니까? a. and b. or c. not d. xor
정답: d
해설: 파이썬에서는 xor 연산자를 지원하지 않습니다.
- 다음 중 비트 연산자가 아닌 것은 무엇입니까? a. & b. | c. ~ d. +
정답: d
해설: +는 산술 연산자입니다. 비트 연산자는 &, |, ^, ~ 등이 있습니다.
- 다음 중 산술 연산자 중 제곱을 계산하는 연산자는 무엇입니까? a. ** b. ^ c. // d. *
정답: a
해설: 제곱을 계산하는 연산자는 **입니다.
- 다음 중 할당 연산자 중 왼쪽 변수에서 오른쪽 변수를 빼는 연산자는 무엇입니까? a. = b. += c. -= d. *=
정답: c
해설: 왼쪽 변수에서 오른쪽 변수를 빼는 연산자는 -=입니다.
- 다음 중 비교 연산자 중 두 값이 같지 않을 때 True를 반환하는 연산자는 무엇입니까? a. == b. != c. > d. <
정답: b
해설: 두 값이 같지 않을 때 True를 반환하는 연산자는 !=입니다.
- 다음 중 논리 연산자 중 두 값 중 하나라도 True일 때 True를 반환하는 연산자는 무엇입니까? a. and b. or c. not d. xor
정답: b
4. 조건문
if
문
파이썬에서 if
문은 조건식을 판단하여 해당 조건이 참(True)일 경우, 코드 블록을 실행하는 제어문입니다. 이번 강의에서는 파이썬의 if
문에 대해 알아보도록 하겠습니다.
if
문의 기본적인 문법은 다음과 같습니다.
if 조건식:
실행할 코드 블록
위 코드에서 조건식은 참 또는 거짓으로 판단될 수 있는 표현식입니다. 조건식이 참(True)일 경우, 해당 코드 블록이 실행됩니다. 코드 블록은 반드시 들여쓰기를 해야하며, 들여쓰기한 코드 블록은 if
문에 속하는 코드로 간주됩니다.
다음은 if
문의 예제입니다.
a = 10
if a > 0:
print("a는 양수입니다.")
위 코드에서 a가 0보다 크므로 조건식이 참(True)이 됩니다. 따라서, "a는 양수입니다."라는 문자열이 출력됩니다.
파이썬에서의 들여쓰기에 대한 간단 가이드는 다음 문서를 참고하세요. (간단히 읽고 넘어가면 됩니다.)
if-else문
if
문은 조건식이 거짓(False)일 경우, else문을 사용하여 실행할 코드 블록을 지정할 수 있습니다. 다음은 if
문과 else문을 모두 사용한 예제입니다.
a = -10
if a > 0:
print("a는 양수입니다.")
else:
print("a는 음수입니다.")
위 코드에서 a가 0보다 작으므로 조건식이 거짓(False)이 됩니다. 따라서, "a는 음수입니다."라는 문자열이 출력됩니다.
불리언 값
Boolean 값은 조건문(if
문)에서 자주 사용됩니다. 조건문은 Boolean 값이 참(True)인지 거짓(False)인지에 따라 실행할 코드를 결정합니다.
a = 10
if a > 5:
print("a는 5보다 큽니다.")
else:
print("a는 5보다 작거나 같습니다.")
위 코드에서 if
문의 조건식 a > 5
는 참(True)이므로, if
문 다음에 오는 코드 블록이 실행됩니다.
또한, Boolean 값은 함수의 반환 값으로 사용될 수도 있습니다. 예를 들어, bool()
함수는 인자로 전달받은 값을 Boolean 값으로 변환하여 반환합니다.
a = 1
b = 0
print(bool(a)) # 출력 결과: True
print(bool(b)) # 출력 결과: False
이상으로 Boolean에 대한 간단한 소개였습니다.
if-elif-else문
if
문은 조건식이 여러 개일 경우, elif
문을 사용하여 추가적인 조건식을 지정할 수 있습니다. elif
문은 if
문과 else문 사이에 위치하며, 다음과 같은 형식으로 사용합니다.
if 조건식1:
실행할 코드 블록1
elif 조건식2:
실행할 코드 블록2
else:
실행할 코드 블록3
위 코드에서 조건식1이 거짓(False)이면, 조건식2를 검사하여 해당 조건식이 참(True)이면 실행할 코드 블록2를 실행하고, 그렇지 않으면 실행할 코드 블록3을 실행합니다.
다음은 if
문과 elif
문을 모두 사용한 예제입니다.
a = 0
if a > 0:
print("a는 양수입니다.")
elif a == 0:
print("a는 0입니다.")
else:
print("a는 음수입니다.")
위 코드에서 a가 0이므로 elif
문의 조건식이 참(True)이 됩니다. 따라서, "a는 0입니다."라는 문자열이 출력됩니다.
이상으로 파이썬의 if
문에 대해 간단하게 파이썬의 if
문에 대해 살펴보았습니다. if
문은 조건에 따라 프로그램의 실행 흐름을 제어하는 중요한 제어문 중 하나입니다. 이를 활용하여 더욱 다양하고 복잡한 프로그램을 작성할 수 있습니다.
파이썬 모듈
파이썬 모듈(module)은 파이썬 코드를 저장한 파일입니다. 모듈을 사용하면 다른 파이썬 코드에서 해당 모듈의 함수, 변수, 클래스 등을 사용할 수 있습니다. 파이썬에서는 다음과 같은 방법으로 모듈을 가져올(import) 수 있습니다.
- import 문은 모듈 전체를 가져옵니다. 예를 들어, import math는 파이썬의 수학 함수를 제공하는 math 모듈을 가져옵니다. 이 경우, math 모듈의 함수를 사용하려면 math.함수이름의 형태로 사용해야 합니다.
- from ... import 문은 모듈에서 특정 함수, 변수, 클래스 등을 가져옵니다. 예를 들어, from math import sqrt는 math 모듈에서 sqrt 함수만을 가져옵니다. 이 경우, sqrt 함수를 바로 사용할 수 있습니다.
- as 키워드는 모듈을 가져올 때, 해당 모듈의 이름을 변경할 수 있습니다. 예를 들어, import math as m은 math 모듈을 m이라는 이름으로 가져옵니다. 이 경우, math 모듈의 함수를 m.함수이름의 형태로 사용할 수 있습니다.
- from ... import * 문은 모듈에서 모든 함수, 변수, 클래스 등을 가져옵니다. 이 경우, 해당 모듈의 모든 이름이 현재 이름 공간에 추가됩니다. 하지만, 이 방법은 모듈에서 충돌하는 이름이 있는 경우 예기치 않은 결과를 초래할 수 있으므로, 권장되지 않습니다.
또한, 파이썬은 내장 모듈과 외부 모듈을 모두 지원합니다. 내장 모듈은 파이썬에 기본으로 포함되어 있는 모듈이며, 외부 모듈은 사용자가 직접 설치해야 하는 모듈입니다. 외부 모듈은 pip를 사용하여 설치할 수 있으며, import 문을 사용하여 가져올 수 있습니다.
파이썬 math 모듈 사용하기
아래는 파이썬에서 모듈을 가져와 사용하는 간단한 예제입니다.
# math 모듈을 가져와서 사용하는 예제
import math
print(math.sqrt(16)) # 16의 제곱근을 출력
# random 모듈에서 randint 함수만 가져와서 사용하는 예제
from random import randint
print(randint(1, 10)) # 1에서 10 사이의 랜덤한 정수를 출력
위 예제에서는 math 모듈과 random 모듈을 사용하였습니다. math 모듈에서는 sqrt 함수를 사용하여 제곱근을 계산하였고, random 모듈에서는 randint 함수를 사용하여 랜덤한 정수를 생성하였습니다. 이와 같이 모듈을 사용하여 다양한 기능을 수행할 수 있습니다.
ramdom 모듈은 뒤에서 더 자세히 다룹니다.
Decimal 형식
파이썬의 Decimal
모듈에 대한 소개입니다.
Decimal
모듈은 고정 소수점 연산을 지원하며, 부동 소수점 연산에 의한 부정확성을 해결하기 위해 사용됩니다. 일반적으로 파이썬에서 부동 소수점 연산을 할 때 정확한 결과를 얻기가 어려울 수 있습니다. 이러한 문제를 해결하기 위해, Decimal
모듈은 소수점 이하의 숫자를 모두 정확하게 처리합니다.
Decimal
모듈을 사용하려면, 먼저 decimal
모듈을 import
해야 합니다. 다음은 decimal
모듈을 import
하는 방법입니다.
import decimal
Decimal
모듈을 사용하여 소수점 이하의 숫자를 정확하게 처리하는 방법은 다음과 같습니다.
import decimal
# Decimal 객체 생성
a = decimal.Decimal('0.1')
b = decimal.Decimal('0.2')
# 덧셈 연산
c = a + b
print(c) # 출력 결과: 0.3
# 곱셈 연산
d = a * b
print(d) # 출력 결과: 0.02
Decimal
객체를 생성할 때, 문자열로 값을 전달해야 합니다. 이는 부동 소수점 연산에 의한 오차를 방지하기 위한 것입니다.
또한, Decimal
모듈은 부동 소수점 값을 Decimal
객체로 변환하는 함수인 decimal.Decimal()
을 제공합니다.
import decimal
a = 0.1
b = 0.2
c = decimal.Decimal(a)
d = decimal.Decimal(b)
print(c + d) # 출력 결과: 0.3
Decimal
모듈은 소수점 이하의 숫자를 정확하게 처리하기 때문에, 매우 정확한 계산을 수행할 수 있습니다. 하지만 이는 부동 소수점 연산보다 느리기 때문에, 성능이 중요한 경우에는 부동 소수점 연산을 사용하는 것이 더 효율적일 수 있습니다.
이상으로 Decimal
모듈에 대한 간단한 소개였습니다.
퀴즈
- 다음 중 조건식에서 비교 연산자가 아닌 것은 무엇입니까? a. == b. != c. <> d. >
정답: c
해설: 파이썬에서는 더 이상 <> 연산자를 지원하지 않습니다.
- 조건문에서 비교 연산자의 역할은 무엇입니까? a. 비교 대상의 값이 같은지를 판단합니다. b. 비교 대상의 값이 다른지를 판단합니다. c. 비교 대상의 크기를 판단합니다. d. 비교 대상의 포함 여부를 판단합니다.
정답: c
해설: 조건문에서 비교 연산자는 비교 대상의 크기를 판단합니다.
- if-else 구문에서 실행할 코드가 한 줄일 때 사용하는 방법은 무엇입니까? a. 조건 표현식 b. 삼항 연산자 c. 람다 함수 d. with 구문
정답: a
해설: if-else 구문에서 실행할 코드가 한 줄일 때는 조건 표현식을 사용할 수 있습니다.
- 다음 중 논리 연산자가 아닌 것은 무엇입니까? a. and b. or c. not d. to
정답: d
해설: to는 파이썬에서 사용되지 않는 연산자입니다.
- 다음 중 조건식에 사용되는 키워드가 아닌 것은 무엇입니까? a. if b. elif c. else d. when
정답: d
해설: when은 파이썬에서 사용되지 않는 키워드입니다.
- 조건문에서 실행할 코드를 감싸는 블록은 무엇입니까? a. if 블록 b. else 블록 c. elif 블록 d. 모든 블록
정답: d
해설: 조건문에서 실행할 코드를 감싸는 블록은 모든 블록(if, else, elif)입니다.
- 조건식에서 여러 개의 조건을 조합할 때 사용하는 키워드는 무엇입니까? a. and b. or c. not d. xor
정답: b
해설: 조건식에서 여러 개의 조건을 조합할 때 사용하는 키워드는 or입니다.
미니 프로젝트: 계산기
계산기는 사용자가 입력한 두 개의 숫자에 대해 사칙연산을 수행하는 프로그램입니다. 이를 파이썬의 if
문을 활용하여 간단하게 구현해볼 수 있습니다. 다음은 계산기의 예제입니다.
num1 = int(input("첫 번째 숫자를 입력하세요: "))
num2 = int(input("두 번째 숫자를 입력하세요: "))
operator = input("사칙연산 중 하나를 선택하세요 (+, -, *, /): ")
if operator == "+":
print(num1 + num2)
elif operator == "-":
print(num1 - num2)
elif operator == "*":
print(num1 * num2)
elif operator == "/":
print(num1 / num2)
else:
print("잘못된 연산자입니다.")
위 코드에서 사용자가 입력한 두 개의 숫자와 연산자를 받아들이고, 입력한 연산자에 따라 해당하는 사칙연산을 수행합니다. 이를 if
문을 활용하여 구현하였습니다.
Python에서 난수 생성하기
난수(random number)는 예측할 수 없는 수를 의미합니다. Python에서는 난수를 생성하기 위한 다양한 방법들이 제공됩니다. 이 아티클에서는 random
모듈을 중심으로 Python에서 난수를 생성하는 방법에 대해 살펴보겠습니다.
1. random
모듈 소개
Python 표준 라이브러리인 random
모듈을 사용하면 다양한 종류의 난수를 쉽게 생성할 수 있습니다.
import random
2. random.random()
: 0과 1 사이의 실수
random()
메서드는 0(포함)과 1(미포함) 사이의 실수를 반환합니다.
print(random.random())
3. random.randint(a, b)
: a와 b 사이의 정수
randint()
메서드는 두 개의 인자, a와 b를 받아 a와 b 사이(둘 다 포함)의 무작위 정수를 반환합니다.
print(random.randint(1, 10)) # 1과 10 사이의 정수
4. random.uniform(a, b)
: a와 b 사이의 실수
uniform()
메서드는 두 개의 인자, a와 b를 받아 a와 b 사이의 무작위 실수를 반환합니다.
print(random.uniform(1.5, 2.5)) # 1.5와 2.5 사이의 실수
5. random.choice(seq)
: 시퀀스에서 임의의 요소 선택
choice()
메서드는 주어진 시퀀스에서 무작위로 한 개의 요소를 선택하여 반환합니다.
colors = ['red', 'blue', 'green', 'yellow']
print(random.choice(colors))
6. random.shuffle(seq)
: 시퀀스의 순서를 무작위로 섞기
shuffle()
메서드는 주어진 시퀀스의 순서를 무작위로 섞습니다.
numbers = [1, 2, 3, 4, 5]
random.shuffle(numbers)
print(numbers)
7. random.sample(population, k)
: 시퀀스에서 k개의 유일한 요소를 무작위로 추출
print(random.sample(range(1, 50), 6)) # 1부터 49까지의 숫자 중 6개를 무작위로 추출
마무리
Python의 random
모듈은 간단하면서도 강력한 난수 생성 기능들을 제공합니다. 상황에 따라 적절한 메서드를 선택하여 원하는 범위와 형태의 난수를 쉽게 생성할 수 있습니다.
5. 반복문
range()
함수
파이썬에서 range() 함수는 정수를 생성하는 함수입니다. range() 함수는 일정 범위의 연속된 정수를 생성하며, 시작 값, 끝 값, 증감 값 등을 인수로 받을 수 있습니다. range() 함수를 사용하면 매우 큰 범위의 정수를 생성할 수 있습니다.
range() 함수의 사용법은 다음과 같습니다.
range(start, stop, step)
- start: 정수의 시작 값을 지정합니다. 기본값은 0입니다.
- stop: 정수의 끝 값을 지정합니다. 이 값은 범위에 포함되지 않습니다. 즉, 범위에는 stop - 1까지의 정수가 포함됩니다.
- step: 정수의 증감 값을 지정합니다. 기본값은 1입니다.
range() 함수는 생성한 정수 값을 리스트(list)나 튜플(tuple) 형태로 반환할 수 있습니다.
numbers = list(range(5)) # [0, 1, 2, 3, 4] 출력
even_numbers = tuple(range(0, 10, 2)) # (0, 2, 4, 6, 8) 출력
위 예제에서는 range() 함수를 사용하여 0부터 4까지의 정수 값을 리스트로 생성하였고, 0부터 8까지 2씩 증가하는 값들을 튜플로 생성하였습니다. range() 함수는 반복문과 함께 자주 사용되며, 매우 큰 범위의 정수를 생성할 때 유용합니다.
for문
파이썬에서 for 문은 반복문의 일종으로, 리스트(list), 튜플(tuple), 문자열(string) 등과 같은 시퀀스(sequence) 자료형을 순회하며 요소(element)를 하나씩 처리할 때 사용됩니다.
for 문의 구조는 다음과 같습니다.
for 변수 in 시퀀스:
실행할 코드
for 문은 시퀀스 내부의 요소들을 변수에 할당하고, 코드 블록(실행할 코드)을 반복적으로 실행합니다. 코드 블록은 반드시 들여쓰기로 구분해야 합니다.
예를 들어, 아래 코드는 for 문을 사용하여 리스트의 값을 출력하는 예제입니다.
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
위 코드에서는 fruits 리스트의 각 요소를 하나씩 fruit 변수에 할당하여, print()
함수를 사용하여 요소를 출력하고 있습니다. 이렇게 for 문을 사용하면 시퀀스 내의 요소를 반복적으로 처리할 수 있습니다.
또한, range() 함수와 함께 for 문을 사용하여 일정 범위의 정수를 생성하고 처리할 수 있습니다. 아래 코드는 0부터 9까지의 정수를 출력하는 예제입니다.
for i in range(10):
print(i)
for 문은 반복적으로 실행되는 작업을 처리할 때 매우 유용합니다. 시퀀스를 순회하거나, 일정 범위의 정수를 생성하고 처리할 때 for 문을 사용할 수 있습니다.
while문
파이썬에서 while 문은 반복문의 일종으로, 조건이 참(True)인 경우에 코드 블록을 반복적으로 실행합니다. while 문은 조건이 거짓(False)이 되거나, break 문을 만나면 반복을 중지합니다.
while 문의 구조는 다음과 같습니다.
while 조건:
실행할 코드
while 문은 조건이 참인 동안 반복적으로 실행할 코드를 실행합니다. 코드 블록은 반드시 들여쓰기로 구분해야 합니다. 예를 들어, 아래 코드는 0부터 9까지의 정수를 출력하는 예제입니다.
i = 0
while i < 10:
print(i)
i += 1
위 코드에서는 i 변수를 0으로 초기화하고, while 문에서 i 변수가 10보다 작은 동안 반복적으로 print()
함수를 사용하여 i 값을 출력하고, i 변수를 1씩 증가시키고 있습니다. 이렇게 while 문을 사용하면 조건이 참인 동안 코드 블록을 반복적으로 실행할 수 있습니다.
또한, while 문은 break 문을 사용하여 특정 조건을 만족하면 반복을 중지할 수 있습니다. 아래 코드는 while 문과 break 문을 사용하여 0부터 시작하여 i 값이 5가 되는 경우 반복을 중지하는 예제입니다.
i = 0
while True:
print(i)
i += 1
if i == 5:
break
while 문은 조건이 참인 동안 코드 블록을 반복적으로 실행하는 경우에 사용됩니다. 조건을 만족하는 동안 반복적으로 실행되는 작업을 처리할 때 while 문을 사용할 수 있습니다.
퀴즈
- for 반복문에서 반복 횟수를 지정할 때 사용하는 함수는 무엇입니까? a. range() b. len() c. enumerate() d. zip()
정답: a
해설: for 반복문에서 반복 횟수를 지정할 때 사용하는 함수는 range()입니다.
- while 반복문에서 조건식을 검사하는 위치는 어디입니까? a. 반복 시작 전 b. 반복 중 c. 반복 종료 후 d. 반복 중간에
정답: b
해설: while 반복문에서 조건식을 검사하는 위치는 반복 중입니다.
- 반복문에서 continue 키워드의 역할은 무엇입니까? a. 반복문을 빠져나옵니다. b. 다음 반복으로 넘어갑니다. c. 예외를 발생시킵니다. d. 변수를 초기화합니다.
정답: b
해설: 반복문에서 continue 키워드의 역할은 다음 반복으로 넘어가게 합니다.
- 다음 중 반복문에서 사용되는 키워드가 아닌 것은 무엇입니까? a. for b. while c. do-while d. break
정답: c
해설: 파이썬에서는 do-while 반복문을 지원하지 않습니다.
- 다음 중 for 반복문의 예시로 올바르지 않은 것은 무엇입니까? a. for i in range(10): b. for x in ['apple', 'banana', 'cherry']: c. for i, x in enumerate(['apple', 'banana', 'cherry']): d. for x in 10:
정답: d
해설: for 반복문에서 x in 10은 올바르지 않은 구문입니다. 정수형은 iterable한 객체가 아니기 때문입니다.
- for 반복문에서 반복 변수를 지정할 때 사용하는 예약어는 무엇입니까? a. in b. for c. as d. each
정답: c
해설: for 반복문에서 반복 변수를 지정할 때 사용하는 예약어는 as입니다.
- while 반복문에서 반복을 멈출 때 사용하는 키워드는 무엇입니까? a. end b. finish c. break d. stop
정답: c
해설: while 반복문에서 반복을 멈출 때 사용하는 키워드는 break입니다.
미니 프로젝트: 숫자 맞추기 게임
숫자 맞추기 게임은 컴퓨터가 랜덤으로 정한 숫자를 맞추는 게임입니다. 이를 파이썬의 if
문을 활용하여 간단하게 구현해볼 수 있습니다. 다음은 숫자 맞추기 게임의 예제입니다.
import random
number = random.randint(1, 100)
guess = 0
while guess != number:
guess = int(input("숫자를 입력하세요: "))
if guess > number:
print("숫자가 너무 큽니다.")
elif guess < number:
print("숫자가 너무 작습니다.")
print("정답입니다!")
위 코드에서 random 모듈을 사용하여 1부터 100까지의 범위에서 랜덤한 숫자를 하나 생성합니다. 사용자가 입력한 숫자를 받아들이고, 입력한 숫자가 랜덤한 숫자보다 큰지, 작은지 판별합니다. 이를 사용자가 맞출 때까지 반복합니다.
6. 함수
함수의 개념
함수(function)은 입력값을 받아서 처리한 후 출력값을 반환하는 코드의 묶음입니다. 함수를 사용하면 반복되는 코드를 줄이고, 코드의 재사용성을 높일 수 있습니다.
함수의 정의와 호출
함수를 정의할 때는 def 키워드를 사용합니다. 함수 이름은 변수와 마찬가지로 영문자, 숫자, 밑줄로 구성됩니다. 함수 이름 뒤에는 괄호와 콜론(:)이 붙고, 함수 내용은 들여쓰기를 합니다. 함수를 호출할 때는 함수 이름 뒤에 괄호를 붙이고, 인수(argument)를 전달할 수 있습니다.
# 함수의 정의
def add(a, b):
result = a + b
return result
# 함수의 호출
print(add(1, 2)) # 3 출력
매개변수와 반환값
함수에 전달되는 입력값을 매개변수(parameter)라고 합니다. 매개변수는 함수 정의에 포함됩니다. 함수는 처리 결과를 반환할 수 있는데, 반환값(return value)은 return 키워드를 사용하여 지정합니다.
# 매개변수와 반환값을 갖는 함수
def add(a, b):
result = a + b
return result
# 반환값을 출력하는 함수
def print_add(a, b):
print("{} + {} = {}".format(a, b, add(a, b)))
# 함수의 호출
print_add(1, 2) # 1 + 2 = 3 출력
함수의 종류
- 내장 함수(Built-in Function) : 파이썬에서 기본적으로 제공되는 함수
- 사용자 정의 함수(User-defined Function) : 사용자가 직접 정의한 함수
- 람다 함수(Lambda Function) : 익명 함수(이름이 없는 함수)로, 한 줄로 함수를 정의할 수 있습니다.
# 내장 함수의 예
print(len([1, 2, 3])) # 3 출력
print(max([1, 2, 3])) # 3 출력
# 사용자 정의 함수의 예
def add(a, b):
result = a + b
return result
print(add(1, 2)) # 3 출력
# 람다 함수의 예
lambda_add = lambda a, b: a + b
print(lambda_add(1, 2)) # 3 출력
문자열 관련 함수
파이썬은 문자열을 다루기 위한 다양한 함수를 제공합니다. 이러한 함수들은 문자열의 길이, 대소문자 변환, 문자열 분리, 문자열 치환 등의 작업을 수행할 수 있습니다.
len()
함수
len()
함수는 문자열의 길이를 반환합니다.
a = "hello world"
print(len(a)) # 출력 결과: 11
upper()
함수와 lower()
함수
upper()
함수는 문자열을 모두 대문자로 변환합니다. lower()
함수는 문자열을 모두 소문자로 변환합니다.
a = "Hello World"
print(a.upper()) # 출력 결과: 'HELLO WORLD'
print(a.lower()) # 출력 결과: 'hello world'
split()
함수
split()
함수는 문자열을 분리하여 리스트(list) 형태로 반환합니다. 인자로 전달하는 문자열을 기준으로 문자열을 분리합니다.
a = "apple, banana, orange"
b = a.split(", ")
print(b) # 출력 결과: ['apple', 'banana', 'orange']
replace()
함수
replace()
함수는 문자열에서 지정한 문자열을 다른 문자열로 치환합니다.
a = "Hello World"
b = a.replace("World", "Python")
print(b) # 출력 결과: 'Hello Python'
퀴즈
- 함수에서 입력값을 받는 변수를 무엇이라고 합니까? a. 매개변수 b. 반환값 c. 인수 d. 변수
정답: a
해설: 함수에서 입력값을 받는 변수를 매개변수(parameter)라고 합니다.
- 함수를 정의할 때 사용하는 키워드는 무엇입니까? a. for b. while c. def d. if
정답: c
해설: 함수를 정의할 때 사용하는 키워드는 def입니다.
- 함수에서 처리 결과를 반환할 때 사용하는 키워드는 무엇입니까? a. return b. break c. continue d. pass
정답: a
해설: 함수에서 처리 결과를 반환할 때 사용하는 키워드는 return입니다.
- 람다 함수는 무엇입니까? a. 이름이 없는 함수 b. 기본적으로 제공되는 함수 c. 사용자가 직접 정의한 함수 d. 매개변수가 없는 함수
정답: a
해설: 람다 함수는 이름이 없는 함수로, 한 줄로 함수를 정의할 수 있습니다.
- 내장 함수의 예로 올바르지 않은 것은 무엇입니까? a. len() b. max() c. min() d. sum()
정답: d
해설: 내장 함수의 예로 올바르지 않은 것은 sum()입니다.
미니 프로젝트
파이썬 함수를 이용하여 다양한 미니 프로젝트를 구현해볼 수 있습니다. 이번 강의에서는 함수를 이용하여 간단한 미니 프로젝트를 만들어보는 방법을 알아보도록 하겠습니다.
로또 번호 생성기
로또 번호 생성기는 1부터 45까지의 숫자 중에서 6개의 숫자를 랜덤하게 선택하여 출력하는 프로그램입니다. 이를 파이썬의 함수를 활용하여 간단하게 구현해볼 수 있습니다. 다음은 로또 번호 생성기의 예제입니다.
import random
def generate_lotto_numbers():
numbers = []
while len(numbers) < 6:
number = random.randint(1, 45)
if number not in numbers:
numbers.append(number)
return numbers
lotto_numbers = generate_lotto_numbers()
print("로또 번호: ", lotto_numbers)
위 코드에서 generate_lotto_numbers() 함수는 랜덤한 숫자를 생성하여 리스트에 추가하고, 중복되는 숫자가 생성되지 않도록 판별합니다. 이를 6개의 숫자가 생성될 때까지 반복하고, 생성된 숫자 리스트를 반환합니다. 이후 반환된 리스트를 출력하는 코드를 작성합니다.
문자열 뒤집기
문자열 뒤집기는 사용자가 입력한 문자열을 뒤집어서 출력하는 프로그램입니다. 이를 파이썬의 함수를 활용하여 간단하게 구현해볼 수 있습니다. 다음은 문자열 뒤집기의 예제입니다.
def reverse_string(string):
return string[::-1]
input_string = input("문자열을 입력하세요: ")
reversed_string = reverse_string(input_string)
print("뒤집힌 문자열: ", reversed_string)
위 코드에서 reverse_string() 함수는 입력된 문자열을 뒤집어 반환합니다. 이후 사용자로부터 입력받은 문자열을 reverse_string() 함수로 전달하여 뒤집힌 문자열을 반환받고, 출력하는 코드를 작성합니다.
이상으로 파이썬 함수를 활용한 간단한 미니 프로젝트를 만들어보았습니다. 함수를 활용하여 다양한 프로그램을 구현해볼 수 있으니, 여러분들도 다양한 아이디어를 가지고 미니 프로젝트를 만들어보세요!
파이썬 터틀 그래픽스 강좌
터틀 그래픽스는 파이썬에 기본으로 포함된 그래픽 라이브러리입니다. 초보자들에게 프로그래밍의 기본을 가르치기 위해 만들어진 것이기 때문에, 아주 쉽게 그래픽 작업을 수행할 수 있습니다.
1. 터틀 시작하기
먼저 터틀 모듈을 가져와야 합니다.
import turtle
터틀 객체를 생성하고 화면에 나타냅니다.
t = turtle.Turtle()
2. 터틀 명령어
2.1 이동 명령어
forward(거리)
: 현재 방향으로 주어진 거리만큼 이동합니다.backward(거리)
: 현재 방향의 반대로 주어진 거리만큼 이동합니다.right(각도)
: 주어진 각도만큼 오른쪽으로 회전합니다.left(각도)
: 주어진 각도만큼 왼쪽으로 회전합니다.
2.2 펜 관련 명령어
penup()
: 펜을 종이에서 듭니다. 이동할 때 선이 그려지지 않습니다.pendown()
: 펜을 종이에 내립니다. 이동할 때 선이 그려집니다.pensize(두께)
: 펜의 두께를 설정합니다.pencolor(색상)
: 펜의 색상을 설정합니다.
2.3 기타 명령어
goto(x, y)
: 지정된 x, y 좌표로 이동합니다.circle(반지름)
: 현재 위치에서 지정된 반지름의 원을 그립니다.dot(크기)
: 현재 위치에 주어진 크기의 점을 찍습니다.
3. 예제: 기본 도형 그리기
3.1 사각형 그리기
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
for _ in range(4):
t.forward(100)
t.right(90)
3.2 원 그리기
t.circle(50)
4. 화면 관리
turtle.done()
: 터틀 창을 닫을 때까지 기다립니다.turtle.clearscreen()
: 화면을 지웁니다.turtle.bgcolor("색상")
: 배경색을 설정합니다.
5. 프로젝트: 꽃 그리기
t.speed(10)
turtle.bgcolor("white")
for _ in range(36):
t.pencolor("blue")
t.forward(100)
t.right(45)
t.pencolor("red")
t.forward(50)
t.right(45)
t.pencolor("yellow")
t.forward(25)
t.right(45)
t.backward(25)
t.left(90)
t.backward(50)
t.left(90)
t.backward(100)
t.right(10)
turtle.done()
오각형 그리기: 파이썬의 터틀 그래픽스 사용하기
오각형은 5개의 동일한 길이의 변과 5개의 동일한 각도로 구성된 평면 도형입니다. 파이썬의 터틀 그래픽스를 사용하여 간단하게 오각형을 그려볼 수 있습니다.
1. 터틀 모듈 불러오기
먼저, 터틀 그래픽스를 사용하기 위해 turtle
모듈을 불러와야 합니다.
import turtle
2. 터틀 객체 생성하기
터틀 객체를 생성하여 화면에 나타낼 수 있습니다.
t = turtle.Turtle()
3. 오각형 그리기
오각형을 그리기 위해서는 5번의 이동과 회전을 반복해야 합니다. 오각형의 각 내각은 108도입니다. 따라서 터틀이 각 변을 그린 후에는 72도(180 - 108)만큼 회전해야 합니다.
for _ in range(5):
t.forward(100) # 변의 길이
t.right(72) # 외각: 360 / 5
4. 작업 마무리
작업을 완료한 후, 다음 명령어를 사용하여 그림이 닫힐 때까지 대기하게 만들 수 있습니다.
turtle.done()
마치며
파이썬의 터틀 그래픽스를 사용하여 오각형을 그리는 방법을 간단히 알아보았습니다. 터틀 그래픽스는 초보자들에게 프로그래밍과 그래픽스의 기초를 가르치기에 아주 적합한 도구입니다. 다양한 도형과 패턴을 그려보며 더 많은 것을 탐색해보세요!
n-각형 그리기: 파이썬의 터틀 그래픽스 활용하기
n-각형은 n개의 동일한 길이의 변과 n개의 동일한 각도로 구성된 평면 도형입니다. 파이썬의 터틀 그래픽스를 사용하여 n-각형을 그리는 방법을 알아봅시다.
1. 기본 설정
터틀 그래픽스를 사용하기 위해 필요한 모듈을 가져옵니다.
import turtle
터틀 객체를 생성합니다.
t = turtle.Turtle()
2. n-각형 그리기 함수
n-각형을 그리기 위한 함수를 생성합니다. 함수는 변의 개수 n
과 각 변의 길이 length
를 매개변수로 받습니다.
def draw_polygon(n, length):
angle = 360 / n
for _ in range(n):
t.forward(length)
t.right(angle)
3. n-각형 그리기 예제
예를 들어, 6-각형(육각형)을 그리려면 아래와 같이 함수를 호출합니다.
draw_polygon(6, 100)
4. 작업 마무리
작업을 완료한 후, 다음 명령어를 사용하여 그림이 닫힐 때까지 대기하게 만들 수 있습니다.
turtle.done()
마치며
파이썬의 터틀 그래픽스를 사용하여 다양한 n-각형을 그리는 방법을 학습하였습니다. 위의 함수를 사용하여 원하는 변의 개수와 길이로 다양한 도형을 그려보세요!
도형에 색칠하기: 파이썬의 터틀 그래픽스 활용하기
터틀 그래픽스를 사용하면 도형을 그릴 뿐만 아니라, 색칠하는 것도 가능합니다. 이 아티클에서는 터틀 그래픽스로 도형에 색을 채우는 방법에 대해 알아보겠습니다.
1. 기본 설정
먼저, 터틀 그래픽스를 사용하기 위해 필요한 모듈을 불러옵니다.
```python import turtle ```
터틀 객체를 생성합니다.
```python t = turtle.Turtle() ```
2. 색칠 설정
터틀 객체의 fillcolor
메서드를 사용하여 채울 색을 설정합니다. 예를 들어, 빨간색으로 채우고자 한다면:
```python t.fillcolor("red") ```
3. 색칠 시작 및 종료
색칠을 시작하기 전에 begin_fill
메서드를 호출하고, 색칠을 완료한 후에는 end_fill
메서드를 호출합니다.
```python t.begin_fill()
도형 그리기 코드
t.end_fill() ```
예를 들어, 빨간색의 사각형을 그리려면:
```python t.fillcolor("red") t.begin_fill() for _ in range(4): t.forward(100) t.right(90) t.end_fill() ```
4. 작업 마무리
작업을 완료한 후, 다음 명령어를 사용하여 그림이 닫힐 때까지 대기하게 만들 수 있습니다.
```python turtle.done() ```
마치며
터틀 그래픽스를 활용하여 쉽게 도형에 색칠을 할 수 있습니다. 다양한 색과 도형을 조합하여 다채로운 그림을 그려보세요!
터틀 모듈의 주요 메서드
메서드명 | 설명 |
---|---|
forward(dist) | 주어진 거리(dist)만큼 앞으로 이동 |
backward(dist) | 주어진 거리(dist)만큼 뒤로 이동 |
right(angle) | 주어진 각도(angle)만큼 시계방향으로 회전 |
left(angle) | 주어진 각도(angle)만큼 반시계방향으로 회전 |
penup() | 펜을 들어 그리지 않게 함 |
pendown() | 펜을 내려 그릴 수 있게 함 |
pensize(width) | 펜의 크기를 지정 |
pencolor(color) | 펜의 색깔을 지정 |
clear() | 화면을 지움 |
reset() | 화면을 지우고 터틀의 상태와 위치를 초기화 |
goto(x,y) | 지정한 (x, y) 위치로 터틀을 이동 |
setheading(angle) | 지정한 각도(angle)로 터틀의 방향을 설정 |
circle(radius) | 주어진 반지름(radius)의 원을 그림 |
dot(size,color) | 주어진 크기와 색의 점을 그림 |
speed(level) | 그리기 속도를 지정 (0:fastest ... 10:slowest) |
hideturtle() | 터틀을 숨김 |
showturtle() | 터틀을 보여줌 |
bgcolor(color) | 배경색을 설정 |
5각형 별 그리기
import turtle
t = turtle.Turtle()
t.speed(5) # 속도 설정 (1:느림 ~ 10:빠름)
for _ in range(5):
t.forward(100) # 변의 길이
t.right(144) # 별의 각도
turtle.done()
6각형 별
import turtle
t = turtle.Turtle()
t.speed(5) # 속도 설정 (1:느림 ~ 10:빠름)
for _ in range(6):
t.forward(100) # 변의 길이
t.right(120) # 별의 각도
turtle.done()
마무리
이 강좌는 터틀 그래픽스의 기본을 다루었습니다. 다양한 그래픽 작업을 수행하려면 공식 문서나 다른 참고 자료를 확인하면 좋습니다.
파이썬에서 숫자를 콤마 또는 언더스코어로 구분하기
큰 숫자의 가독성을 향상시키기 위해 숫자를 콤마나 언더스코어로 구분하는 것이 유용합니다. 파이썬에서는 이를 달성하기 위한 여러 방법이 있습니다.
format
함수를 사용한 방법: 파이썬의 내장 함수인format
을 사용하면 쉽게 숫자를 콤마로 구분된 문자열로 변환할 수 있습니다.number = 1234567890 formatted_number = format(number, ',') print(formatted_number) # 출력: "1,234,567,890"
f-string을 사용한 방법: 파이썬 3.6 이상에서는 f-string을 사용하여 숫자를 쉽게 콤마로 구분할 수 있습니다.
number = 1234567890 print(f"{number:,}") # 출력: "1,234,567,890"
locale
모듈을 사용한 방법:locale
모듈은 다양한 지역 설정에 따라 숫자를 포맷하는 기능을 제공합니다. 이를 사용하면 지역에 맞는 숫자 포맷을 얻을 수 있습니다.import locale locale.setlocale(locale.LC_ALL, 'en_US.UTF-8') number = 1234567890 formatted_number = locale.format_string("%d", number, grouping=True) print(formatted_number) # 출력: "1,234,567,890"
주의:
locale
모듈의 사용은 시스템의 지역 설정에 따라 결과가 달라질 수 있으므로 주의가 필요합니다.언더스코어로 숫자를 구분하기: 파이썬 3.6 이후로는 숫자 리터럴에 언더스코어를 사용하여 숫자의 가독성을 높일 수 있습니다. 이는 숫자의 값에 영향을 주지 않으면서 코드상에서 숫자를 읽기 쉽게 만들어줍니다.
number = 10_000_000 print(number) # 출력: "10000000"
이러한 방식으로 숫자를 선언하면, 코드를 읽는 사람에게 1천만이라는 값을 더 명확하게 표현할 수 있습니다.
7. 리스트와 튜플
리스트의 개념
파이썬에서 리스트(list)는 여러 개의 값을 순서대로 저장하는 자료형입니다. 리스트는 대괄호([])로 묶어서 표현하며, 쉼표(,)로 구분된 값들을 포함합니다. 리스트는 다음과 같은 특징을 가집니다.
- 순서가 있는 자료형이다. 즉, 리스트에 저장된 값들은 순서대로 인덱싱(indexing)이 가능하다.
- 값의 중복이 가능하다. 즉, 리스트 안에 동일한 값이 여러 개 포함될 수 있다.
- 값의 수정이 가능하다. 즉, 리스트에 저장된 값들을 변경할 수 있다.
- 여러 가지 자료형의 값들을 포함할 수 있다. 즉, 리스트에 숫자, 문자열, 불리언(Boolean) 값 등 다양한 자료형의 값들을 함께 저장할 수 있다.
리스트를 사용하여 다양한 연산을 수행할 수 있습니다. 예를 들어, 리스트에서 특정 값이나 인덱스에 접근할 수 있으며, 슬라이싱(slicing)을 사용하여 리스트의 일부분만 추출할 수도 있습니다. 또한, 리스트에 값들을 추가하거나 삭제하고, 값을 정렬하거나 반대로 뒤집는 등 다양한 조작을 수행할 수 있습니다. 리스트는 파이썬에서 가장 기본적이고 중요한 자료형 중 하나이며, 다양한 프로그램에서 자주 사용됩니다.
파이썬의 리스트는 다양한 데이터 형식을 동시에 저장할 수 있습니다. 즉, 정수, 실수, 문자열, 딕셔너리, 리스트 등 다양한 데이터 형식을 하나의 리스트에 저장할 수 있습니다.
다음은 여러 가지 데이터 형식을 포함하는 리스트의 예제입니다:
# 다양한 데이터 형식을 포함하는 리스트
data = [42, # 정수
3.14, # 실수
"Hello, World!", # 문자열
[1, 2, 3], # 리스트
{"name": "John", "age": 30}, # 딕셔너리
True, # 부울
None] # None 타입
# 각 항목의 데이터 형식 출력
for item in data:
print(f"Value: {item}, Type: {type(item)}")
위 코드를 실행하면, 각 항목의 값과 해당 항목의 데이터 형식이 출력됩니다. 이를 통해 파이썬의 리스트가 다양한 데이터 형식을 저장할 수 있음을 확인할 수 있습니다.
파이썬에서 빈 리스트를 만드는 방법은 매우 간단합니다. 다음은 빈 리스트를 만드는 두 가지 기본적인 방법에 대한 예제입니다:
# 1. 대괄호([])를 사용하여 빈 리스트 생성
empty_list1 = []
print(empty_list1) # []
# 2. list() 함수를 사용하여 빈 리스트 생성
empty_list2 = list()
print(empty_list2) # []
두 방법 모두 동일한 결과를 생성합니다. 모두 빈 리스트가 출력됩니다.
파이썬에서 range
로 리스트 만들기
range
함수는 연속적인 숫자를 생성하는 데 사용되며, 주로 for
루프와 함께 사용됩니다. range
를 사용하여 생성된 값들을 list
함수와 함께 사용하면 리스트를 만들 수 있습니다.
기본 사용법
# 0부터 4까지의 숫자를 생성
numbers = list(range(5))
print(numbers) # [0, 1, 2, 3, 4]
시작과 끝 지정하기
# 2부터 9까지의 숫자를 생성
numbers = list(range(2, 10))
print(numbers) # [2, 3, 4, 5, 6, 7, 8, 9]
스텝(증가치) 지정하기
# 2부터 시작하여 20까지 2씩 증가하는 숫자를 생성
even_numbers = list(range(2, 21, 2))
print(even_numbers) # [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
range
와 for
루프
range
는 for
루프와 함께 사용될 때 매우 유용합니다.
for i in range(5):
print(i)
# 출력:
# 0
# 1
# 2
# 3
# 4
이러한 방식으로 range
함수는 파이썬에서 매우 유용하게 사용될 수 있습니다. 특히 반복적인 작업이 필요한 경우에 많이 사용됩니다.
리스트의 인덱싱과 슬라이싱
리스트(list)에서 인덱싱(indexing)은 특정 위치에 있는 값을 가져오는 방법입니다. 인덱스는 0부터 시작하며, 대괄호([]) 안에 인덱스를 넣어서 해당 위치에 있는 값을 가져올 수 있습니다. 예를 들어, list[0]은 리스트에서 첫 번째 값, list[1]은 두 번째 값, list[-1]은 마지막 값 등을 가져올 수 있습니다.
리스트에서 슬라이싱(slicing)은 리스트의 일부분을 추출하는 방법입니다. 슬라이싱은 대괄호([]) 안에 시작 인덱스, 끝 인덱스, 스텝(step)을 지정하여 해당 범위에 있는 값을 추출합니다. 슬라이싱은 다음과 같은 문법으로 사용합니다.
list[시작인덱스:끝인덱스:스텝]
시작 인덱스는 포함되고, 끝 인덱스는 포함되지 않는 범위를 추출합니다. 스텝을 지정하지 않으면 1이 기본값으로 사용되며, 스텝을 음수로 지정하면 역순으로 추출할 수 있습니다. 예를 들어, list[1:4]는 두 번째 값부터 네 번째 값까지 추출하며, list[::2]는 처음부터 끝까지 두 칸씩 건너뛰며 추출합니다.
아래는 리스트의 인덱싱과 슬라이싱을 사용한 예제입니다.
list = ['apple', 'banana', 'cherry', 'orange', 'kiwi', 'melon', 'mango']
print(list[1]) # 'banana' 출력
print(list[-2]) # 'melon' 출력
print(list[2:5]) # ['cherry', 'orange', 'kiwi'] 출력
print(list[:4]) # ['apple', 'banana', 'cherry', 'orange'] 출력
print(list[::2]) # ['apple', 'cherry', 'kiwi', 'mango'] 출력
print(list[::-1]) # ['mango', 'melon', 'kiwi', 'orange', 'cherry', 'banana', 'apple'] 출력
위 예제에서는 리스트의 인덱싱과 슬라이싱을 사용하여 리스트에서 특정 위치에 있는 값을 가져오거나, 일부분을 추출하는 방법을 보여주고 있습니다.
리스트의 연산
리스트(list)에서는 다양한 연산을 수행할 수 있습니다. 여기에는 리스트의 값 추가, 삭제, 정렬, 반전 등이 포함됩니다.
- 값 추가하기 리스트에 새로운 값을 추가할 때는 append() 메서드를 사용합니다. append() 메서드는 리스트의 끝에 새로운 값을 추가합니다.
list = ['apple', 'banana', 'cherry']
list.append('orange') # 리스트의 끝에 'orange' 추가
print(list) # ['apple', 'banana', 'cherry', 'orange'] 출력
- 값 삭제하기
리스트에서 값을 삭제할 때는 remove() 메서드를 사용합니다. remove() 메서드는 리스트에서 첫 번째로 일치하는 값을 삭제합니다. 또는, del 예약어를 사용하여 리스트의 특정 위치에 있는 값을 삭제할 수도 있습니다.
list = ['apple', 'banana', 'cherry', 'orange']
list.remove('cherry') # 'cherry'를 삭제
del list[1] # 두 번째 값('banana')를 삭제
print(list) # ['apple', 'orange'] 출력
- 값 정렬하기
리스트의 값을 정렬할 때는 sort() 메서드를 사용합니다. sort() 메서드는 리스트를 오름차순으로 정렬합니다. 내림차순으로 정렬하려면 reverse=True 옵션을 지정합니다.
list = [3, 1, 4, 1, 5, 9, 2]
list.sort() # 오름차순으로 정렬
print(list) # [1, 1, 2, 3, 4, 5, 9] 출력
list.sort(reverse=True) # 내림차순으로 정렬
print(list) # [9, 5, 4, 3, 2, 1, 1] 출력
- 값 반전하기
리스트의 값을 반전할 때는 reverse() 메서드를 사용합니다. reverse() 메서드는 리스트의 순서를 역순으로 바꿉니다.
list = ['apple', 'banana', 'cherry', 'orange']
list.reverse() # 리스트의 순서를 역순으로 변경
print(list) # ['orange', 'cherry', 'banana', 'apple'] 출력
리스트에서는 위와 같은 연산을 수행할 수 있습니다. 리스트는 다양한 자료형의 값을 함께 저장할 수 있는 자료형으로, 다양한 프로그램에서 사용됩니다.
리스트의 메서드
리스트(list)에서는 다양한 메서드(method)를 사용할 수 있습니다. 여기에는 리스트의 길이 구하기, 값 추가 및 삭제, 인덱스 및 값 검색 등이 포함됩니다.
- 리스트의 길이 구하기
리스트의 길이를 구할 때는 len() 함수를 사용합니다.
list = ['apple', 'banana', 'cherry']
print(len(list)) # 3 출력
- 값 추가하기
리스트에 새로운 값을 추가할 때는 append() 메서드를 사용합니다. append() 메서드는 리스트의 끝에 새로운 값을 추가합니다.
list = ['apple', 'banana', 'cherry']
list.append('orange') # 리스트의 끝에 'orange' 추가
print(list) # ['apple', 'banana', 'cherry', 'orange'] 출력
- 값 삭제하기
리스트에서 값을 삭제할 때는 remove() 메서드를 사용합니다. remove() 메서드는 리스트에서 첫 번째로 일치하는 값을 삭제합니다. 또는, pop() 메서드를 사용하여 리스트에서 마지막 값을 삭제할 수도 있습니다.
list = ['apple', 'banana', 'cherry', 'orange']
list.remove('cherry') # 'cherry'를 삭제
list.pop() # 마지막 값('orange')를 삭제
print(list) # ['apple', 'banana'] 출력
- 인덱스 검색하기
리스트에서 특정 값의 인덱스를 검색할 때는 index() 메서드를 사용합니다. index() 메서드는 리스트에서 첫 번째로 일치하는 값의 인덱스를 반환합니다.
list = ['apple', 'banana', 'cherry']
print(list.index('banana')) # 1 출력
- 값 카운트하기
리스트에서 특정 값의 개수를 세는 경우에는 count() 메서드를 사용합니다.
list = ['apple', 'banana', 'cherry', 'banana']
print(list.count('banana')) # 2 출력
리스트에서는 위와 같은 메서드를 사용할 수 있습니다. 리스트는 파이썬에서 가장 기본적이고 중요한 자료형 중 하나이며, 다양한 프로그램에서 사용됩니다.
파이썬 리스트에 extend()
메서드 사용하기
파이썬의 extend()
메서드는 한 리스트의 모든 항목을 다른 리스트에 추가하는 데 사용됩니다. 아래는 extend()
메서드를 사용하여 리스트에 다른 리스트의 항목들을 추가하는 예제입니다.
# 리스트 생성
my_list = ['apple', 'banana']
# 다른 리스트 생성
fruits_to_add = ['cherry', 'date', 'fig']
# my_list에 fruits_to_add의 항목들을 추가
my_list.extend(fruits_to_add)
# 리스트 출력
print(my_list)
출력 결과:
['apple', 'banana', 'cherry', 'date', 'fig']
위의 예제에서 초기에 my_list
라는 리스트를 생성한 후, extend()
메서드를 사용하여 fruits_to_add
리스트의 모든 항목을 my_list
에 추가했습니다.
튜플의 개념
파이썬에서 튜플(tuple)은 여러 개의 값을 순서대로 저장하는 자료형입니다. 튜플은 대괄호([]) 대신 괄호(())로 묶어서 표현하며, 쉼표(,)로 구분된 값들을 포함합니다. 튜플은 다음과 같은 특징을 가집니다.
- 순서가 있는 자료형이다. 즉, 튜플에 저장된 값들은 순서대로 인덱싱(indexing)이 가능하다.
- 값의 중복이 가능하다. 즉, 튜플 안에 동일한 값이 여러 개 포함될 수 있다.
- 값의 수정이 불가능하다. 즉, 튜플에 저장된 값들을 변경할 수 없다.
- 여러 가지 자료형의 값들을 포함할 수 있다. 즉, 튜플에 숫자, 문자열, 불리언(Boolean) 값 등 다양한 자료형의 값들을 함께 저장할 수 있다.
튜플은 수정이 불가능하므로, 한 번 생성한 튜플의 값은 변경할 수 없습니다. 하지만, 튜플의 값은 인덱싱을 통해 접근할 수 있으며, 다른 자료형과 함께 사용할 때 유용합니다. 파이썬에서는 튜플의 값들을 괄호로 묶어서 함수의 반환값이나, 여러 값을 동시에 반환하는 경우에 사용됩니다.
파이썬의 slice
객체 사용하기 참고 강의
slice
는 파이썬에서 슬라이싱 연산을 대표하는 객체입니다. 이를 활용하면 슬라이싱을 보다 동적이며, 가독성 있게, 그리고 재사용 가능하게 처리할 수 있습니다.
slice
객체는 다음의 형태로 생성됩니다:
slice(start, stop, step)
여기서 start
, stop
, step
은 모두 선택적인 인자입니다.
리스트 슬라이싱은 다음과 같습니다.
lst = [0, 1, 2, 3, 4, 5]
first_three = slice(3)
last_three = slice(-3, None)
alternate = slice(0, None, 2)
print(lst[first_three])
print(lst[last_three])
print(lst[alternate])
문자열 슬라이싱은 다음과 같습니다.
s = "Hello, World!"
hello_slice = slice(0, 5)
print(s[hello_slice])
slice
객체를 통해 슬라이싱을 명시적으로 표현할 수 있습니다. 또한, 특정 슬라이스 패턴을 여러 번 재사용할 때 매우 유용합니다.
퀴즈
- 리스트에서 값을 접근할 때 사용하는 구문은 무엇입니까? a. key() b. value() c. items() d. index()
정답: d
해설: 리스트에서 값을 접근할 때 사용하는 구문은 index()입니다.
- 리스트에서 값의 추가와 삭제를 모두 처리하는 함수는 무엇입니까? a. add() b. remove() c. update() d. append()와 remove()
정답: d
해설: 리스트에서 값의 추가와 삭제를 모두 처리하는 함수는 append()와 remove()입니다.
- 튜플과 리스트의 차이점은 무엇입니까? a. 튜플은 수정이 불가능하고 리스트는 수정이 가능하다. b. 튜플은 수정이 가능하고 리스트는 수정이 불가능하다. c. 튜플과 리스트는 모두 수정이 가능하다. d. 튜플과 리스트는 모두 수정이 불가능하다.
정답: a
해설: 튜플은 수정이 불가능하고 리스트는 수정이 가능합니다.
- 리스트에서 슬라이싱을 수행할 때 사용하는 구문은 무엇입니까? a. slice() b. index() c. slice_index() d. :
정답: d
해설: 리스트에서 슬라이싱을 수행할 때 사용하는 구문은 :입니다.
- 리스트에서 중복된 값을 제거하는 함수는 무엇입니까? a. unique() b. remove_duplicate() c. distinct() d. set()
정답: d
해설: 리스트에서 중복된 값을 제거하는 함수는 set()입니다.
미니 프로젝트
파이썬 리스트와 튜플을 이용하여 다양한 미니 프로젝트를 구현해볼 수 있습니다. 이번 강의에서는 리스트와 튜플을 활용하여 간단한 미니 프로젝트를 만들어보는 방법을 알아보도록 하겠습니다.
단어 맞추기 게임
단어 맞추기 게임은 미리 정해진 단어를 사용자가 맞추는 게임입니다. 이를 파이썬의 리스트를 활용하여 간단하게 구현해볼 수 있습니다. 다음은 단어 맞추기 게임의 예제입니다.
words = ["python", "programming", "computer", "algorithm", "variable", "function"]
selected_word = random.choice(words)
while True:
print("문제: ", "*" * len(selected_word))
guess = input("단어를 추측하세요: ")
if guess == selected_word:
print("정답입니다!")
break
else:
print("틀렸습니다.")
위 코드에서 words 리스트는 게임에서 사용될 단어들을 저장하고, random 모듈을 이용하여 리스트에서 하나의 단어를 랜덤하게 선택합니다. 이후 사용자로부터 단어를 입력받아 선택된 단어와 비교하여 정답 여부를 판별합니다. 사용자가 정답을 맞출 때까지 이를 반복합니다.
지뢰찾기 게임
지뢰찾기 게임은 게임 판에서 지뢰가 있는 곳을 찾아내는 게임입니다. 이를 파이썬의 리스트를 활용하여 간단하게 구현해볼 수 있습니다. 다음은 지뢰찾기 게임의 예제입니다.
import random
board_size = 5
num_of_mines = 3
board = []
for i in range(board_size):
row = [" "] * board_size
board.append(row)
for i in range(num_of_mines):
row = random.randint(0, board_size - 1)
col = random.randint(0, board_size - 1)
board[row][col] = "X"
for row in board:
print(" ".join(row))
위 코드에서 board_size는 게임 판의 크기, num_of_mines는 지뢰의 개수를 나타냅니다. 이후 board 리스트를 이용하여 게임 판을 생성합니다. 이후 random 모듈을 이용하여 지뢰의 위치를 랜덤하게 생성하고, board 리스트에 표시합니다. 이를 화면에 출력하여 사용자가 게임을 즐길 수 있도록 합니다.
이상으로 파이썬 리스트와 튜플을 활용한 간단한 미니 프로젝트를 만들어보았습니다.
8. 딕셔너리와 세트
딕셔너리의 개념
딕셔너리는 파이썬에서 가장 자주 사용되는 데이터 타입 중 하나입니다. 딕셔너리는 키(key)와 값(value)을 쌍으로 저장하는 자료구조로, 중괄호({})를 사용하여 선언합니다. 키는 유일한 값으로, 값은 중복이 가능합니다.
my_dict = {"name": "John", "age": 30, "city": "New York"}
딕셔너리의 키와 값
딕셔너리는 키와 값의 쌍으로 데이터를 저장합니다. 딕셔너리에서 키는 대괄호([])를 사용하여 값을 조회할 수 있습니다.
my_dict = {"name": "John", "age": 30, "city": "New York"}
print(my_dict["name"]) # John
print(my_dict["age"]) # 30
print(my_dict["city"]) # New York
딕셔너리에서 값을 추가하거나 수정하려면 키와 값의 쌍으로 대괄호([])를 사용합니다.
my_dict = {"name": "John", "age": 30, "city": "New York"}
my_dict["age"] = 40 # 수정
my_dict["country"] = "USA" # 추가
print(my_dict) # {'name': 'John', 'age': 40, 'city': 'New York', 'country': 'USA'}
딕셔너리에서 키와 값을 삭제하려면 del 키워드를 사용합니다.
my_dict = {"name": "John", "age": 30, "city": "New York"}
del my_dict["age"] # 삭제
print(my_dict) # {'name': 'John', 'city': 'New York'}
사전에 대해 한 번 더 연습하려면 다음 링크를 참고하세요.
딕셔너리의 메서드
딕셔너리에서 자주 사용되는 메서드를 살펴보겠습니다.
keys()
keys() 메서드는 딕셔너리의 모든 키를 반환합니다.
my_dict = {"name": "John", "age": 30, "city": "New York"}
print(my_dict.keys()) # dict_keys(['name', 'age', 'city'])
values()
values() 메서드는 딕셔너리의 모든 값을 반환합니다.
my_dict = {"name": "John", "age": 30, "city": "New York"}
print(my_dict.values()) # dict_values(['John', 30, 'New York'])
items()
items() 메서드는 딕셔너리의 모든 키와 값을 반환합니다.
my_dict = {"name": "John", "age": 30, "city": "New York"}
print(my_dict.items()) # dict_items([('name', 'John'), ('age', 30), ('city', 'New York')])
파이썬에서 빈 딕셔너리를 만들고 사용하는 내용은 다음 아티클을 참고하세요.
세트의 개념
세트는 중복되지 않는 값을 저장하는 자료구조로, 중괄호({})나 set() 함수를 사용하여 선언합니다. 세트는 딕셔너리와 마찬가지로 순서가 없기 때문에 인덱싱으로 접근할 수 없습니다.
my_set = {1, 2, 3}
세트의 연산과 메서드
파이썬 세트는 합집합, 교집합, 차집합 등 다양한 집합 연산을 지원합니다. 세트에서 자주 사용되는 연산과 메서드를 살펴보겠습니다.
합집합(Union) 연산
두 개의 세트를 합쳐서 새로운 세트를 반환합니다. | 연산자 또는 union() 메서드를 사용합니다.
set1 = {1, 2, 3}
set2 = {3, 4, 5}
# | 연산자 사용
result1 = set1 | set2
print(result1) # {1, 2, 3, 4, 5}
# union() 메서드 사용
result2 = set1.union(set2)
print(result2) # {1, 2, 3, 4, 5}
교집합(Intersection) 연산
두 개의 세트에서 공통된 원소만을 추출하여 새로운 세트를 반환합니다. & 연산자 또는 intersection() 메서드를 사용합니다.
set1 = {1, 2, 3}
set2 = {3, 4, 5}
# & 연산자 사용
result1 = set1 & set2
print(result1) # {3}
# intersection() 메서드 사용
result2 = set1.intersection(set2)
print(result2) # {3}
차집합(Difference) 연산
두 개의 세트에서 첫 번째 세트에서는 있지만 두 번째 세트에서는 없는 원소만을 추출하여 새로운 세트를 반환합니다. - 연산자 또는 difference() 메서드를 사용합니다.
set1 = {1, 2, 3}
set2 = {3, 4, 5}
# - 연산자 사용
result1 = set1 - set2
print(result1) # {1, 2}
# difference() 메서드 사용
result2 = set1.difference(set2)
print(result2) # {1, 2}
퀴즈
- 딕셔너리에서 키는 무엇을 의미합니까? a. 값 b. 인덱스 c. 변수 d. 식별자
정답: b
해설: 딕셔너리에서 키는 인덱스를 의미합니다.
- 딕셔너리에서 값을 접근할 때 사용하는 구문은 무엇입니까? a. key() b. value() c. items() d. get()
정답: d
해설: 딕셔너리에서 값을 접근할 때 사용하는 구문은 get()입니다.
- 세트에서 중복된 값을 제거하는 이유는 무엇입니까? a. 성능 향상을 위해 b. 가독성을 높이기 위해 c. 데이터를 정확하게 표현하기 위해 d. 중복된 값이 불필요한 경우가 많기 때문에
정답: d
해설: 세트에서 중복된 값을 제거하는 이유는 중복된 값이 불필요한 경우가 많기 때문입니다.
- 세트에서 합집합을 구하는 함수는 무엇입니까? a. union() b. intersection() c. difference() d. symmetric_difference()
정답: a
해설: 세트에서 합집합을 구하는 함수는 union()입니다.
- 다음 중 딕셔너리에서 사용되는 함수는 무엇입니까? a. add() b. remove() c. update() d. pop()
정답: c
해설: 딕셔너리에서 사용되는 함수는 update()입니다.
미니 프로젝트
파이썬 딕셔너리와 세트를 이용하여 다양한 미니 프로젝트를 구현해볼 수 있습니다. 이번 강의에서는 딕셔너리와 세트를 활용하여 간단한 미니 프로젝트를 만들어보는 방법을 알아보도록 하겠습니다.
영한사전
영한사전은 영어 단어와 그 뜻을 한글로 나타내는 사전입니다. 이를 파이썬의 딕셔너리를 활용하여 간단하게 구현해볼 수 있습니다. 다음은 영한사전의 예제입니다.
dictionary = {
"apple": "사과",
"banana": "바나나",
"cherry": "체리",
"date": "데이트",
"elderberry": "엘더베리"
}
while True:
word = input("단어를 입력하세요: ")
if word in dictionary:
print(f"{word}의 뜻은 {dictionary[word]}입니다.")
else:
print("사전에 존재하지 않는 단어입니다.")
위 코드에서 dictionary 딕셔너리는 영한사전의 역할을 합니다. 이후 사용자로부터 입력받은 단어가 딕셔너리에 존재하는지 확인하고, 존재할 경우 해당 단어의 뜻을 출력합니다. 단어가 존재하지 않을 경우 "사전에 존재하지 않는 단어입니다."를 출력합니다.
세트로 중복 제거하기
세트를 이용하여 리스트나 튜플에서 중복을 제거하는 코드를 작성할 수 있습니다. 다음은 중복 제거의 예제입니다.
lst = [1, 2, 2, 3, 4, 4, 5]
unique_lst = set(lst)
print(list(unique_lst))
위 코드에서 lst 리스트는 중복된 값이 포함된 리스트입니다. 이를 set() 함수를 이용하여 세트로 변환하여 중복을 제거하고, 이후 다시 list() 함수를 이용하여 리스트로 변환합니다. 이를 출력합니다.
이상으로 파이썬 딕셔너리와 세트를 활용한 간단한 미니 프로젝트를 만들어보았습니다. 딕셔너리와 세트를 활용하여 다양한 프로그램을 구현해볼 수 있으니, 여러분들도 다양한 아이디어를 가지고 미니 프로젝트를 만들어보세요!
9. 파일 입출력
파일의 개념
파일은 컴퓨터에서 데이터를 저장하는 데 사용되는 기본적인 저장소입니다. 파일은 디렉토리에 저장되며 파일 이름과 확장자를 가지고 있습니다. 파일은 텍스트 파일과 이진 파일로 구분됩니다.
텍스트 파일은 문자열을 포함하며, 이진 파일은 이미지, 음악, 비디오 등과 같은 이진 데이터를 포함합니다.
파일 열고 닫기
파이썬에서 파일을 열고 닫는 방법을 알아보겠습니다. 파일을 열려면 open() 함수를 사용해야 합니다. open() 함수는 파일 이름과 파일 모드를 인자로 받습니다.
파일 모드는 파일에 대한 작업 유형을 정의하는 문자열입니다. 파일 모드는 'r'(읽기 모드), 'w'(쓰기 모드), 'a'(추가 모드)로 지정할 수 있습니다.
# 파일 열기
file = open("example.txt", "w")
# 파일 닫기
file.close()
파일 쓰기
파일에 데이터를 쓰려면 파일을 쓰기 모드("w")로 열고 write() 메서드를 사용하여 데이터를 씁니다. 파일에 데이터를 쓸 때는 문자열이나 문자열 리스트를 쓸 수 있습니다.
# 파일 열기
file = open("example.txt", "w")
# 파일 쓰기
file.write("Hello, World!")
file.write("\n")
file.write("Python Programming")
# 파일 닫기
file.close()
파일 읽기
파일에서 데이터를 읽으려면 파일을 읽기 모드("r")로 열고 read() 메서드를 사용하여 데이터를 읽습니다. read() 메서드는 파일 전체 내용을 문자열로 반환합니다.
# 파일 열기
file = open("example.txt", "r")
# 파일 읽기
contents = file.read()
print(contents)
# 파일 닫기
file.close()
with 구문을 사용한 파일 입출력
with 구문을 사용하면 파일을 열고 닫는 것을 자동으로 처리할 수 있습니다. with 구문을 사용하면 파일을 열면 자동으로 닫히므로 close() 메서드를 호출할 필요가 없습니다.
with open("example.txt", "r") as file:
contents = file.read()
print(contents)
with 구문을 사용하면 코드가 블록으로 구성되므로 코드를 더욱 간결하고 읽기 쉽게 만들 수 있습니다. with 구문을 사용하면 예외가 발생하더라도 파일이 항상 닫히므로 예외 처리가 더욱 쉬워집니다.
퀴즈 - 파일 입출력
- 파일 입출력을 위해 사용하는 함수는 무엇입니까? a. print() b. input() c. open() d. read()
정답: c
해설: 파일 입출력을 위해 사용하는 함수는 open()입니다.
- 파일을 열 때 사용하는 모드 중, 쓰기 모드는 무엇입니까? a. r b. w c. x d. a
정답: b
해설: 파일을 열 때 사용하는 모드 중, 쓰기 모드는 w입니다.
- 파일을 닫을 때 사용하는 함수는 무엇입니까? a. close() b. open() c. read() d. write()
정답: a
해설: 파일을 닫을 때 사용하는 함수는 close()입니다.
- with 구문을 사용하여 파일을 처리하는 이유는 무엇입니까? a. 파일 처리 코드를 간결하게 작성하기 위해 b. 파일 처리 중 예외가 발생했을 때 처리를 자동으로 해주기 위해 c. 파일 처리 속도를 높이기 위해 d. 파일 처리 결과를 더욱 정확하게 확인하기 위해
정답: b
해설: with 구문을 사용하면 파일 처리 중 예외가 발생했을 때, 파일을 자동으로 닫아주는 등 처리를 자동으로 해줍니다.
- 파일을 읽을 때 사용하는 함수는 무엇입니까? a. open() b. close() c. write() d. read()
정답: d
해설: 파일을 읽을 때 사용하는 함수는 read()입니다.
미니 프로젝트
파이썬 파일 입출력을 이용하여 다양한 미니 프로젝트를 구현해볼 수 있습니다. 이번 강의에서는 파일 입출력을 활용하여 간단한 미니 프로젝트를 만들어보는 방법을 알아보도록 하겠습니다.
메모장
파이썬을 이용하여 간단한 메모장을 만들어볼 수 있습니다. 이를 위해서는 파일 입출력이 필요합니다. 다음은 메모장의 예제입니다.
while True:
menu = input("메뉴를 선택하세요: (1) 쓰기 (2) 읽기 (3) 종료 ")
if menu == "1":
memo = input("메모를 입력하세요: ")
with open("memo.txt", "a") as f:
f.write(memo + "\n")
print("메모가 저장되었습니다.")
elif menu == "2":
with open("memo.txt", "r") as f:
memo = f.read()
print(memo)
elif menu == "3":
print("메모장을 종료합니다.")
break
위 코드에서 사용자는 쓰기, 읽기, 종료 중 하나의 메뉴를 선택할 수 있습니다. 쓰기 메뉴를 선택하면 사용자가 입력한 메모를 memo.txt 파일에 저장하고, 읽기 메뉴를 선택하면 memo.txt 파일을 읽어와서 출력합니다. 이를 반복하여 사용자가 종료 메뉴를 선택할 때까지 실행됩니다.
CSV 파일 처리
CSV 파일은 쉼표로 구분된 데이터 파일입니다. 이를 파이썬으로 처리하면 다양한 분야에서 활용할 수 있는데, 예를 들어 주식 데이터를 저장하는 CSV 파일을 읽어와서 데이터를 처리하거나, 시각화할 수 있습니다. 다음은 CSV 파일 처리의 예제입니다.
import csv
with open("data.csv", "r", encoding="utf-8") as f:
reader = csv.reader(f)
for row in reader:
print(row)
위 코드에서는 data.csv 파일을 읽어와서 각 행을 출력합니다. 이를 활용하여 데이터를 가공하거나, 그래프로 시각화해볼 수 있습니다.
이상으로 파일 입출력을 활용한 간단한 미니 프로젝트를 만들어보았습니다. 파일 입출력을 이용하면 다양한 프로그램을 구현해볼 수 있으니, 여러분들도 다양한 아이디어를 가지고 미니 프로젝트를 만들어보세요!
10. 예외 처리
예외의 개념
예외는 프로그램 실행 중에 발생하는 오류를 말합니다. 예외는 프로그램이 예기치 않게 종료되는 것을 방지할 수 있습니다.
예외 처리는 예외가 발생했을 때 프로그램이 정상적으로 종료되도록 하는 것입니다. 예외 처리는 try-except 문을 사용하여 처리할 수 있습니다.
try-except 문 try-except 문은 예외 처리에 가장 기본적인 구문입니다. try 블록 안에 실행할 코드를 작성하고 except 블록 안에 예외가 발생했을 때 실행할 코드를 작성합니다.
try:
# 실행할 코드
a = 10 / 0
except:
# 예외가 발생했을 때 실행할 코드
print("예외가 발생했습니다.")
위의 예제에서는 0으로 나누기를 시도하고 있으므로 ZeroDivisionError 예외가 발생합니다. except 블록에서는 "예외가 발생했습니다."를 출력하고 프로그램이 종료됩니다.
try-except-else 문
try-except-else 문은 try 블록 안에 실행할 코드가 성공적으로 완료되었을 때 실행할 코드를 추가로 작성할 수 있습니다.
try:
# 실행할 코드
a = 10 / 2
except:
# 예외가 발생했을 때 실행할 코드
print("예외가 발생했습니다.")
else:
# try 블록이 성공적으로 완료되었을 때 실행할 코드
print("결과 : ", a)
위의 예제에서는 try 블록이 성공적으로 완료되므로 else 블록이 실행되어 "결과 : 5"가 출력됩니다.
try-except-finally 문
try-except-finally 문은 try 블록 안에 실행할 코드와 except 블록 안에 예외가 발생했을 때 실행할 코드 뿐만 아니라, finally 블록 안에 항상 실행할 코드를 작성할 수 있습니다.
try:
# 실행할 코드
a = 10 / 0
except:
# 예외가 발생했을 때 실행할 코드
print("예외가 발생했습니다.")
finally:
# 항상 실행할 코드
print("프로그램이 종료되었습니다.")
위의 예제에서는 0으로 나누기를 시도하고 있으므로 except 블록에서 "예외가 발생했습니다."를 출력하고, finally 블록에서 "프로그램이 종료되었습니다."를 출력합니다.
퀴즈
- try-except-finally 문에서 finally 블록은 언제 실행됩니까? a. try 블록이 실행될 때 b. except 블록이 실행될 때 c. try 블록이 성공적으로 실행된 후, except 블록이 실행된 후 d. 예외가 발생하든 발생하지 않든 항상 실행됨
정답: d
해설: finally 블록은 항상 실행됩니다. 예외가 발생하더라도, 발생하지 않더라도 finally 블록은 실행됩니다.
- 다음 중 try-except 문의 구문 중 try와 except 사이에 위치할 수 있는 블록은 무엇입니까? a. else b. finally c. if d. while
정답: a
해설: try-except-else 문에서는 try와 except 사이에 else 블록이 위치할 수 있습니다.
- 다음 중 예외 처리의 목적은 무엇입니까? a. 예외를 발생시키는 것 b. 예외가 발생할 가능성을 없애는 것 c. 예외가 발생해도 프로그램이 정상적으로 종료될 수 있도록 하는 것 d. 예외가 발생하면 프로그램을 강제로 종료시키는 것
정답: c
해설: 예외 처리는 예외가 발생해도 프로그램이 정상적으로 종료될 수 있도록 하는 것입니다.
- try-except 문에서 except 블록은 언제 실행됩니까? a. try 블록이 실행되는 중 예외가 발생했을 때 b. except 블록이 실행되는 중 예외가 발생했을 때 c. try 블록이 성공적으로 실행된 후 d. try 블록이 실행되지 않을 때
정답: a
해설: except 블록은 try 블록이 실행되는 중 예외가 발생했을 때 실행됩니다.
- 다음 중 파일 입출력과 관련된 구문은 무엇입니까? a. try-except-finally 문 b. with 구문 c. if 문 d. while 문
정답: b
해설: 파일 입출력과 관련된 구문은 with 구문입니다. with 구문을 사용하면 파일을 열고 닫는 것을 자동으로 처리할 수 있습니다.
파이썬 진수 변환
파이썬에서는 16진수를 10진수로 변환하는 내장 함수 int()
를 제공합니다. int() 함수는 두 개의 인자를 받습니다. 첫 번째 인자는 변환할 16진수 값이고, 두 번째 인자는 변환할 값을 표현하는 문자열의 진법(base)입니다. 따라서, 16진수를 10진수로 변환하려면 int() 함수에 16진수 값을 전달하고, 두 번째 인자로 16을 전달하면 됩니다.
다음은 int() 함수를 사용하여 16진수를 10진수로 변환하는 간단한 예제입니다.
hex_str = "7F"
decimal_value = int(hex_str, 16)
print(decimal_value)
위 코드에서 int() 함수에 hex_str 변수와 16 값을 전달하여 16진수를 10진수로 변환했습니다. print() 함수로 변환된 값을 출력합니다. 출력 결과는 127이 됩니다.
이외에도 파이썬에서는 bin(), oct(), hex() 함수를 사용하여 2진수, 8진수, 16진수를 각각 10진수로 변환할 수 있습니다. 예를 들어, int("1010", 2)는 2진수 1010을 10진수로 변환하며, int("10", 8)은 8진수 10을 10진수로 변환합니다.
Bytes
Bytes
는 바이트(byte)의 배열을 나타내는 데이터 타입입니다. 바이트(byte)는 8비트(8 bits)를 나타내며, 0부터 255까지의 값을 가질 수 있습니다.
Bytes는 bytes()
함수를 사용하여 생성할 수 있습니다.
b = bytes([0, 1, 2, 3, 4])
print(b) # 출력 결과: b'\x00\x01\x02\x03\x04'
위 코드에서 bytes() 함수는 인자로 리스트(list)나 튜플(tuple)을 받아 바이트 배열을 생성합니다. print() 함수로 Bytes 값을 출력할 때에는 접두어로 b가 붙습니다.
Bytes는 문자열을 바이트(byte)로 변환하는 데에도 사용됩니다. 이때 문자열은 encode() 함수를 사용하여 Bytes로 변환할 수 있습니다.
s = "hello"
b = s.encode()
print(b) # 출력 결과: b'hello'
위 코드에서 encode()
함수를 사용하여 문자열을 Bytes로 변환했습니다.
Bytes는 바이트(byte)로 이루어진 데이터를 다룰 때 사용됩니다. 예를 들어, 이미지나 음악 파일 등의 데이터를 바이트(byte)로 표현할 때에는 Bytes를 사용합니다.
Bytes는 문자열과는 달리 수정이 불가능합니다. 바이트(byte) 배열 자체를 수정할 수는 없으며, 새로운 Bytes를 생성하여 수정할 수 있습니다.
b = bytes([0, 1, 2, 3, 4])
# b[0] = 5 # TypeError: 'bytes' object does not support item assignment
b = bytes([5, 1, 2, 3, 4])
print(b) # 출력 결과: b'\x05\x01\x02\x03\x04'
위 코드에서 b[0] = 5
와 같은 코드는 실행 시 TypeError 예외가 발생합니다. 따라서 새로운 Bytes를 생성하여 수정할 수 있습니다.
Bytes는 이진 파일(binary file)을 다루거나 네트워크 통신에서 데이터를 전송하는 데에도 사용됩니다. 이외에도 다양한 분야에서 바이트(byte)로 이루어진 데이터를 다룰 때에는 Bytes를 사용합니다.