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:
passfor i in range(10):
print(i)while (true) {
// ...
}
for (;;) {
// ...
}"python"이라는 문자열을
한 글자씩 출력하는 기능 만들기
Task
p
y
t
h
o
nvalue = "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, yx = 1
y = 2, 3
z = x, yPacking / Unpacking
x = 1
y = 2
z = x, y
a, b = zx, 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:
passclass Snake:
pass
snake = Snake()
print(snake)
Class - Attribute
class Snake:
def __init__(self):
self.length = 1class 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