Feature

Python의 기본적인 특징#

Python은 다목적 프로그래밍 언어로 그 특징은 다음과 같습니다.

  1. 읽기 쉬운 문법
    Python의 문법은 직관적이고 명확하여 코드의 가독성이 뛰어납니다.
    이는 유지보수성과 생산성을 높여줍니다.

  2. 동적 타이핑
    Python은 동적 타이핑(dynamic typing)을 지원하여 변수의 타입을 명시적으로 선언하지 않아도 됩니다.
    실행 시간에 변수의 타입이 결정됩니다.

  3. 인터프리터 언어
    Python은 인터프리터 언어로, 코드를 한 줄씩 실행합니다.
    이는 디버깅과 개발 속도를 향상시키지만, 컴파일 언어에 비해 실행 속도가 느릴 수 있습니다.

  4. 대화형 개발 환경
    Python은 대화형 쉘을 제공하여 즉각적인 코드 실행과 실험이 가능합니다.
    이는 빠른 프로토타이핑과 학습에 유리합니다.

이미지 편집

AI에게 이미지 편집 시켜보기#

AI는 이미지 편집을 잘 할까?#

이미지속 특정 사물을 지우거나 색을 변경하는 등의 이미지 편집은 AI가 잘하는 영역이 되었습니다.
얼마나 잘 하는지 한번 살펴 볼까요?
왼쪽 이미지는 원본이고, 오른쪽은 AI가 이미지를 수정한 것입니다.

  • Sample 1
    Prompt : “사진에서 사과를 지워주세요”

AI가 다음처럼 사과를 자연스럽게 삭제했습니다.
AI image editing sample 1 - removing an apple

  • Sample 2
    Prompt : “사진에서 사과를 바나나로 바꿔주세요.”

AI가 다음처럼 사과를 바나나로 자연스럽게 바꿨습니다.
AI image editing sample 2 - replacing an apple with a banana

Data type

Python의 Data type#

Python에는 여러 가지 Data type이 있으며, 각 Type은 고유한 특성과 용도를 가지고 있습니다.
주요 Data type을 설명드리겠습니다.

1. 숫자형 (Numeric Types)#

  • 정수 (Integer, int): 정수형 데이터 타입입니다. 양수와 음수를 모두 포함하며 크기에 제한이 없습니다.
a = 10
b = -5
  • 실수 (Floating Point, float): 소수점을 포함한 실수형 데이터 타입입니다.
c = 3.14
d = -0.5
  • 복소수 (Complex Numbers, complex): 실수부와 허수부를 가지는 복소수형 데이터 타입입니다.
    j를 사용하여 허수부를 나타냅니다.
e = 1 + 2j

2. 시퀀스형 (Sequence Types)#

  • 문자열 (String, str): 문자들의 집합입니다. 작은따옴표(’) 또는 큰따옴표(")로 둘러싸여 있습니다.
f = "Hello, World!"
  • 리스트 (List, list): 여러 개의 값을 순서대로 저장하는 가변적인 시퀀스형입니다.
    대괄호([ ])로 정의하며 서로 다른 데이터 타입을 포함할 수 있습니다.
g = [1, 2, 3, 'a', 'b', 'c']
  • 튜플 (Tuple, tuple): 리스트와 유사하지만 불변(immutable)입니다.
    소괄호(( ))로 정의합니다.
h = (1, 2, 3, 'a', 'b', 'c')

3. 집합형 (Set Types)#

  • 집합 (Set, set): 중복되지 않는 요소들의 모임입니다.
    순서가 없으며 중괄호({ })로 정의합니다.
i = {1, 2, 3, 4, 5}
  • frozenset: 불변 집합입니다.
    frozenset() 함수를 사용하여 생성합니다.
j = frozenset([1, 2, 3, 4, 5])

4. 매핑형 (Mapping Types)#

  • 사전 (Dictionary, dict): 키-값 쌍의 집합입니다.
    중괄호({ })로 정의하며 키는 고유해야 합니다.
k = {'name': 'Alice', 'age': 25}

5. 기타 유형#

  • Boolean (bool): 참(True)과 거짓(False)을 나타내는 타입입니다.
l = True
m = False
  • None: 값이 없음을 나타내는 타입입니다.
n = None

Casting

Python의 Casting (타입 변환)#

Python에서 “형 변환"은 데이터 유형을 다른 데이터 유형으로 변환하는 것을 의미합니다.
Python은 동적 타입 언어이기 때문에 변수의 데이터 유형을 명시적으로 변환하는 것이 필요할 때가 있습니다.

1. int -> float#

다음 코드에서 변수 a 는 int type 입니다.
b=float(a) 처럼 변수 a를 float type으로 casting 했기 때문에, b는 float type 이며 값은 실수 10.0 입니다.

a = 10
b = float(a)

2. float -> int#

다음 코드는 float type c를 int type으로 Casting하여 변수 d에 저장하는 코드 입니다.
d는 int type이며 값은 정수 20 입니다.

List

Python의 List#

Python에서 List는 순서가 있는 가변적인 데이터의 집합입니다.
List는 다양한 데이터 타입의 항목을 포함할 수 있으며, 항목들은 변경, 추가, 삭제가 가능합니다.

10,000개의 값을 다루어야 한다고 가정해봅시다.
변수를 10,000개 만든다는 것은 아주 비효율적입니다.
따라서, 복수개의 값을 효율적으로 다루기 위하여 Python은 List를 제공합니다.

1. List 생성#

List는 다음과 같이 [ ] 를 사용하여 생성할 수 있습니다.
[ ] 안에 여러 개 값을 넣어서 하나의 List로 다룰 수 있습니다.
다음 예제를 잘 보면, 정수, 실수, 문자열이 하나의 List에 포함됩니다.
하나의 List에 여러가지 Data type을 담을 수 있다는 것도 중요한 특징입니다.
List에 포함되어 있는 각 값을 원소(Element)라고 합니다.

Read/Write a file

Python의 파일 읽고 쓰는 방법#

Python으로 file을 읽고 쓰는 방법을 설명합니다.
가장 많이 사용되는 예제코드 위주로 정리하였습니다.

1. Text 파일 읽기 - 파일 전체를 읽기#

다음과 같이 open("abcd.txt", "r")를 이용하여 file stream을 생성하고, .read( )를 통하여 파일 전체를 한번에 읽을 수 있습니다.
(file stream을 생성한다는 것은 파일에 접근할 수 있는 연결고리를 만든다는 의미입니다.)
여기서 "abcd.txt"는 읽을 파일 이름을 포함한 전체 경로를 의미하며 절대경로 및 상대경로를 사용할 수 있습니다.
"r"은 read mode 를 의미합니다.