Python 기초

Speaker

Why Python?

  • 높은 생산성
    • 낮은 난이도(러닝 커브)
    • 높은 범용성 (인터프리팅)
      • 쉘 스크립트
      • 웹 개발
      • 데이터 분석
      • 머신러닝
      • GUI, 게임, ...
  • 높은 점유율

Syntax

Indentation

def main():
    print("hello")

main()
  • python은 indentation으로 영역을 구분한다.
  • 그러므로 indentation이 중요하다!
  • indentation으로 탭('\t') 과 스페이스를 사용할 수 있다.
  • 그러나 한 파일 내에선 일관성을 유지해야 한다.
  • python3에서는 4칸 스페이스를 권장한다.

Operators

1 + 1
1 - 2
2 * 3
3 / 2

7 % 3

3 // 2
2 ** 3

# <
# >
# <=
# >=
# ==
# !=

Data Types

숫자

정수

int

bool

실수

float

시퀀스

불변

가변

list

tuple

str

bytes

집합

매핑

dict

set

Built-in Functions

이름을 입력받고,

출력하는 기능 만들기

Task

Input / Output

name = input("이름을 입력하세요: ")

print("hello,", name)
print("hello, " + name)
print("hello, %s" % name)

Input / Output

name = input("이름을 입력하세요: ")

print("hello,", name)
print("hello, " + name)
print("hello, %s" % name)
print("hello, {}".format(name))

# 3.6 버전부터 사용 가능
print(f"hello, {name}")

Conditional

if True and False:
    pass
elif False or False:
    pass
elif not None:
    pass
else:
    pass

Loop

while True:
    pass
for i in range(10):
    print(i)
while (true) {
    // ...
}

for (;;) {
    // ...
}

"python"이라는 문자열을

한 글자씩 출력하는 기능 만들기

Task

p
y
t
h
o
n
value = "python"

for c in range(len(value)):
    print(c)
for c in "python":
    print(c)

Sequence

# str
string = "python"

# list
rainbow = ["빨강", "주황", "노랑", "초록", "파랑", "남", "보라"]

# tuple
color = (255, 255, 0)

List vs Tuple

Slicing

# str
string = "python"

# list
rainbow = ["빨강", "주황", "노랑", "초록",
           "파랑", "남", "보라"]

# tuple
color = (255, 255, 0)
# str
string = "python"
string[2:]

# list
rainbow = ["빨강", "주황", "노랑", "초록",
           "파랑", "남", "보라"]
rainbow[:4]

# tuple
color = (255, 255, 0)
color[::2]

"hello, world"를 반대로

출력하는 기능 만들기

Task

"hello, world"[::-1]

Slicing

Packing / Unpacking

x = 1
y = 2

z = x, y
x = 1
y = 2, 3

z = x, y

Packing / Unpacking

x = 1
y = 2

z = x, y

a, b = z
x, y = y, x

두 변수의 값을 바꾸는 기능?

입력 출력
[[1], [2]] [1,1]
[[1, 2], [3, 4], [5]] [2,2,1]

Task

0부터 20까지의 수 중에서

짝수만 저장하는 리스트 만들기

Task

List Comprehension

[x for x in range(1, 21) if not x & 1]

1부터 100까지 더하기

Task

sum(range(1, 101))

Set

numbers = [1, 1, 2, 3, 5, 8, 8]
numbers = [1, 1, 2, 3, 5, 8, 8]
print(set(numbers))

Dictionary

sizes = [..., "S", ..., "M", ..., "L"]
sizes = {90: "S", 95: "M", 100: "L"}

두 학생의 공통점과 특징 분리하기

Task

# person_a
"학생", "공대", "합리", "창의", "비판"

# person_b
"학생", "공대", "열정", "호기심", "변화"

Function

def add(x, y):
    return x + y

add(1, 2)

Function

def add(x, y):
    x.append(y)


numbers = []
print(numbers)
# Output: []

add(numbers, 1)

print(numbers)
# Output: ?

Class

class Snake:
    pass
class Snake:
    pass


snake = Snake()
print(snake)

Class - Attribute

class Snake:
    def __init__(self):
        self.length = 1
class Snake:
    def __init__(self):
        self.length = 1


snake = Snake()
print(snake.length)
class Snake:
    def __init__(self, length):
        self.length = length


snake = Snake(2)
print(snake.length)

Class - Method

class Snake:
    def __init__(self, length):
        self.length = length





snake = Snake(2)
print(snake.length)
class Snake:
    def __init__(self, length):
        self.length = length

    def change_length(self, length):
        self.length = length


snake = Snake(2)
print(snake.length)

snake.change_length(snake.length + 1)
print(snake.length)

Class - dataclass

# 3.7
from dataclasses import dataclass


@dataclass
class Snake:
    length: int

    def change_length(self, length):
        self.length = length

Iterator / Iterable

map

def add(x):
    return x ** 2


x = map(add, range(10))
print(list(x))
def add(x):
    return x ** 2


x = map(add, range(10))
print(next(x))
for i in range(100000000000):
    print(i)

Python 기초

By Dong-Young Kim

Python 기초

  • 236