python 기초 문법 live
2022년 10월 python 기초문법
x = 3
y = 7
x = 100
x + y
type(x)
z = '10'
z + z
type(z)
z = '10'
z + z
age = input('나이를 입력해주세요.')
print(age + age)
z = '10'
int(z) + int(z)
z = '10'
float(z) + float(z)
z = 10
str(z) + str(z)
a = 10
b = 'hello'
c = 10.1
print(a, b, c)
print(str(a) + b + str(c)) #권장하지 않음
print(str(a) + ' ' + b + ' ' + str(c)) #권장하지 않음
name = 'hojun'
age = 10
print('제 이름은 {}이고 제 나이는 {}입니다.'.format(name, age))
print('제 이름은 {0}이고 제 나이는 {0}입니다.'.format(name, age))
print('제 이름은 {1}이고 제 나이는 {1}입니다.'.format(name, age))
print('제 이름은 ' + name + '이고 제 나이는 ' + str(age) + '입니다.') #권장하지 않음
print(f'제 이름은 {name}이고 제 나이는 {age}입니다.') #권장합니다.
'''
여러줄 주석입니다.
'''
"""
여러줄 주석입니다.
"""
print('hello world')
text = '''안녕하세요
저는
프로그래밍 강사이자
위니브 대표
이호준입니다.
'''
print(text)
text = '안녕하세요\n저는\n프로그래밍 강사이자\n위니브 대표\n이호준입니다.' # 이스케이프 문자
print(text)
text = '\'안녕하세요!\'' # 이스케이프 문자
print(text)
x = 3
y = 7
print(f'{x} + {y} = {x + y}')
print(f'{x} - {y} = {x - y}')
print(f'{x} * {y} = {x * y}')
print(f'{y} / {x} = {y / x}') # 실수
print(f'{y} // {x} = {y // x}') # 정수
print(f'{y} ** {x} = {y ** x}') # 승수
print(f'{y} % {x} = {y % x}') # 나머지
7 * 7 * 7
2 * 3 + 1 * 5
(2 * 3) + (1 * 5)
x = 3
x = x + 5
x
x = 3
x += 5 # x = x + 5
x
x += 5 # 이 블록을 여러번 실행해 보세요.
x
x = 3
y = 7
print(f'{x} > {y} = {x > y}') # Ctrl + /
# print(x > y)
print(f'{x} >= {y} = {x >= y}')
print(f'{x} < {y} = {x < y}')
print(f'{x} <= {y} = {x <= y}')
print(f'{x} == {y} = {x == y}')
print(f'{x} != {y} = {x != y}')
10 == '10'
True == 1
True == 100
True == -1
bool(-1)
bool('')
bool('hello')
False == 0
x = True # 1
y = False # 0
print(x and y) # 논리 곱
print(x or y) # 논리 합
print(not x)
print(not y)
for i in range(100):
print(i)
for i in range(100):
if i % 3 == 0 and i % 5 == 0:
print(i)
for i in range(100):
if i % 3 == 0 or i % 5 == 0:
print(i)
x = 10
type(x)
dir(x)
# ['__abs__',
# '__add__', 이 메직 메서드가 있기 때문에 더하기가 되는 것입니다.
# '__and__',
# '__bool__',
# '__ceil__',
# '__class__',
# '__delattr__',
# '__dir__',
# '__divmod__',
# '__doc__',
# '__eq__', 이 메직 메서드가 있기 때문에 동등비교가(==) 되는 것입니다.
# '__float__',
# '__floor__',
# '__floordiv__',
# '__format__',
# '__ge__',
# '__getattribute__',
# '__getnewargs__',
# '__gt__',
# '__hash__',
# '__index__',
# '__init__',
# '__init_subclass__',
# '__int__',
# '__invert__',
# '__le__',
# '__lshift__',
# '__lt__',
# '__mod__',
# '__mul__',
# '__ne__',
# '__neg__',
# '__new__',
# '__or__',
# '__pos__',
# '__pow__',
# '__radd__',
# '__rand__',
# '__rdivmod__',
# '__reduce__',
# '__reduce_ex__',
# '__repr__',
# '__rfloordiv__',
# '__rlshift__',
# '__rmod__',
# '__rmul__',
# '__ror__',
# '__round__',
# '__rpow__',
# '__rrshift__',
# '__rshift__',
# '__rsub__',
# '__rtruediv__',
# '__rxor__',
# '__setattr__',
# '__sizeof__',
# '__str__',
# '__sub__',
# '__subclasshook__',
# '__truediv__',
# '__trunc__',
# '__xor__',
# 'bit_length',
# 'conjugate',
# 'denominator',
# 'from_bytes',
# 'imag',
# 'numerator',
# 'real',
# 'to_bytes']
x = 3 #11
x.bit_length()
x = 10 #1010
x.bit_length()
x = 17 #10001
x.bit_length()
s = 'paullab CEO leehojun'
print(type(s))
print(dir(s))
# 'casefold',
# 'center',
# 'count', # V
# 'encode',
# 'endswith',
# 'expandtabs',
# 'find', # V
# 'format', # V
# 'format_map',
# 'index', # V
# 'isalnum',
# 'isalpha',
# 'isascii',
# 'isdecimal',
# 'isdigit',
# 'isidentifier',
# 'islower',
# 'isnumeric',
# 'isprintable',
# 'isspace',
# 'istitle',
# 'isupper',
# 'join', # V
# 'ljust',
# 'lower', # V
# 'lstrip',
# 'maketrans',
# 'partition',
# 'replace', # V
# 'rfind',
# 'rindex',
# 'rjust',
# 'rpartition',
# 'rsplit',
# 'rstrip',
# 'split', # V
# 'splitlines',
# 'startswith',
# 'strip', # V
# 'swapcase',
# 'title',
# 'translate',
# 'upper', # V
# 'zfill'] # V
'hello world'.count('l')
'aaabbcccc'.count('c')
s = 'paullab CEO leehojun'
s[0] #indexing, 0을 index
s.find('C')
s[8]
s.index('C')
s.find('Z')
s.index('z')
name = 'leehojun'
age = 10
print('제 나이는 {} 제 이름은 {}'.format(name, age))
name = 'leehojun'
age = 10
s = '제 나이는 {} 제 이름은 {}'
print(s.format(name, age))
s = 'paullab CEO leehojun'
s.split(' ')
s.split('')
s.split()
number = '010-0000-0000'
number.split('-')
'!'.join(['010', '0000', '0000'])
'!!'.join(['010', '0000', '0000'])
'-'.join(['010', '0000', '0000'])
s
s.lower()
s.upper()
s
s.replace('CEO', 'CTO')
' hello '
' hello '.strip()
'hello'.zfill(10)
'1010'.zfill(10)
s = 'hello world'
s[0]
s[1]
s[5]
s[0]+s[1]+s[2]+s[3]+s[4]
s[0:5]
s[0:5:1]
s[0:5:2]
s[-1]
s[7:0:-1]
s[::]
s[::2]
s[::-1]
a = [10, 20, 'hello', 'world']
a[0]
a[0:2]
a[0:3]
a[0] = 1000
a
s = 'hello world'
s[0]
s[0] = 'k'
for i in a:
print(i)
for i in [10, 20, 30, 40]:
print(i)
for i in 'hello world':
print(i)
type(a)
a * 2
dir(a)
# 'append',
# 'clear',
# 'copy',
# 'count',
# 'extend',
# 'index',
# 'insert',
# 'pop',
# 'remove',
# 'reverse',
# 'sort'
a = [10, 20, 30, 40]
a.append(50)
a
a.clear()
a
a = [10, 20, 30, 40]
b = a
b.append(50)
a
b
a = [10, 20, 30, 40]
b = a.copy()
b.append(50)
a
b
a = [10, 20, 30, 40, 1, 1, 1, 2, 2, 2, 2, 3, 3]
a.count(1)
a.count(2)
a = [10, 20, 30, 40]
a.extend([10, 20, 30])
a
a.index(40)
a.index(30)
a.insert(2, 10000)
a
a.pop()
a
a.pop(0)
a
a.pop(1)
a
a.remove(20)
a
a.reverse()
a
a.sort()
a
a.reverse()
a
a.sort()
a
a.sort(reverse=True)
a
t = (10, 20, 30, 40)
t
type(t)
dir(t)
# 'count',
# 'index'
for i in t:
print(i)
t[0] = 1000
d = {'one': 10, 'two': 20}
d['one']
d[1]
for i in d:
print(i)
d['one'] = 10000
d
type(d)
dir(d)
d + d
# 'copy',
# 'fromkeys',
# 'get',
# 'items', # V
# 'keys', # V
# 'pop',
# 'popitem',
# 'setdefault',
# 'update',
# 'values' # V
d.items()
for i in d.items():
print(i)
for i in d.items():
print(i[0])
print(i[1])
d.keys()
d.values()
s = {1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 3}
s
set('11111112222233')
s[0]
for i in s:
print(i)
type(s)
dir(s)
# 'clear',
# 'copy',
# 'difference', # V
# 'difference_update',
# 'discard',
# 'intersection',
# 'intersection_update',
# 'isdisjoint',
# 'issubset',
# 'issuperset',
# 'pop',
# 'remove',
# 'symmetric_difference',
# 'symmetric_difference_update',
# 'union', # V
# 'update'
a = {1, 2, 3}
b = {3, 4, 5, 6}
a - b
a = {1, 2, 3}
b = {3, 4, 5, 6}
a.difference(b)
a.union(b)
if True:
print('hello')
print('world')
print('end')
if False:
print('hello')
print('world')
print('end')
x = 3
y = 7
if x > y:
print('hello')
print('world')
print('end')
x = 3
y = 7
if x < y:
print('hello')
print('world')
print('end')
score = 90
money = 1000
if score >= 90:
money += 1000000
if score >= 80:
money += 100000
if score >= 70:
money += 10000
money
score = 89
money = 1000
if score >= 90:
money += 1000000
elif score >= 80:
money += 100000
elif score >= 70:
money += 10000
money
score = 11
money = 1000
if score >= 90:
money += 1000000
elif score >= 80:
money += 100000
elif score >= 70:
money += 10000
else:
money = 0
money
score = 95
money = 1000
if score >= 90:
if score >= 95:
money += 1000000
else:
money += 900000
money
for i in range(10):
print(i)
for i in 'hello':
print(i)
print('------')
print('end')
for i in [10, 20, 30]:
print(i)
print('------')
print('end')
list(range(10))
list(range(2, 11, 2))
list(range(10, 1, -2))
for i in range(10, 1, -2):
print(i)
for i in range(2, 10):
print('----------')
for j in range(1, 10):
print(f'{i} X {j} = {i * j}')
x = 0
while x < 10:
print(x)
x += 1
print('end')
print(x)
x = 0
while x < 10:
print(x)
x += 2
print('end')
print(x)
x = 10
while x > 0:
print(x)
x -= 1
print('end')
print(x)
i = 1
while i < 9:
print('----------')
j = 1
i += 1
while j < 10:
print(f'{i} X {j} = {i * j}')
j += 1
print('end')
s = 'hello world'
ss = ''
for i in s:
ss = i + ss
ss
s = 0
for i in range(1, 101):
if i % 2 == 0:
s += i
s
s = 0
for i in range(0, 101, 2):
s += i
s
n = 100
n * (n + 2) // 4
6) 함수
- https://docs.python.org/3/library/functions.html
- 파선아실
- 함수를 사용하는 이유?
- 구조 파악에 용이
- 재사용
- 유지보수
def hello(n): # 함수의 정의, 함수의 이름, 파라미터(parameter)
for i in range(n):
print('hello')
hello(4) # 함수의 호출, 아규먼트(argument)
hello(4)
def add(x, y): # x, y를 파라미터라고 부릅니다.
return x + y # 반환값
print(add(10, 20) + add(1, 2) + add(3, 4)) # 10과 20을 아규먼트라고 부릅니다.
print(print('hello'))
def test():
return
print(test())
def test():
return None
print(test())
# 땅파기()
# 땅파기()
# 땅파기()
# 땅파기()
# 땅다자기()
# 벽돌쌓기()
# 지붕올리기()
# 땅파기()
leehojun = print
leehojun('hello')
def 더하기(x, y):
return x + y
def 빼기(x, y):
return x - y
def 나누기(x, y):
return x // y
def 곱하기(x, y):
return x * y
계산기 = [더하기, 빼기, 나누기, 곱하기]
# 더하기(10, 20) -> 계산기[0](10, 20)
계산기[0](10, 20)
def 더하기(x=10, y=20):
return x + y
더하기()
더하기(1)
더하기(1, 2)
# 재귀함수(메모라이징 기법, 다이나믹 프로그래밍)
# 데코레이터
# 팩토리함수, 클로저
x = 10
def hello():
print(x)
hello()
x = 10
def hello():
x += 10
hello()
x
x = 10
def hello():
yy = 10
hello()
yy
x = 10
def hello():
global x
x += 10
hello()
x
def factorial(n):
if n <= 1:
return 1
else:
return n * factorial(n-1)
factorial(5)
# f(4) 4 * f(3) 4 * 6 == 24
# f(3) 3 * f(2) 3 * 2 == 6
# f(2) 2 * f(1) 2 * 1 == 2
# f(1) 1
7) Built-in Functions
-
A
- abs()
- aiter()
- all()
- any()
- anext()
- ascii()
-
B
- bin()
- bool()
- breakpoint()
- bytearray()
- bytes()
-
C
- callable()
- chr()
- classmethod()
- compile()
- complex()
-
D
- delattr()
- dict()
- dir()
- divmod()
-
E
- enumerate()
- eval()
- exec()
-
F
- filter()
- float()
- format()
- frozenset()
-
G
- getattr()
- globals()
-
H
- hasattr()
- hash()
- help()
- hex()
-
I
- id()
- input()
- int()
- isinstance()
- issubclass()
- iter()
-
L
- len()
- list()
- locals()
-
M
- map()
- max()
- memoryview()
- min()
-
N
- next()
-
O
- object()
- oct()
- open()
- ord()
-
P
- pow()
- print()
- property()
-
R
- range()
- repr()
- reversed()
- round()
-
S
- set()
- setattr()
- slice()
- sorted()
- staticmethod()
- str()
- sum()
- super()
-
T
- tuple()
- type()
-
V
- vars()
-
Z
- zip()
# int()
# float()
# str()
# bool()
# list()
# tuple()
# dict()
# set()
int(10.1)
list('hello world')
set([1, 1, 1, 2, 2, 3, 3, 3, 3])
bool('hello')
bool([])
bool('')
abs(-10)
bin(10)[2:]
max([1, 2, 3, 1000, 6, 7, 8])
min([1, 2, 3, 1000, 6, 7, 8])
sum([1, 2, 3, 1000, 6, 7, 8])
len([1, 2, 3, 1000, 6, 7, 8])
list(zip(['1', '2', '3'], 'hello world'))
list(zip('hello', 'world'))
def 제곱(x):
return x ** 2
list(map(제곱, [1, 2, 3]))
for i in map(제곱, [1, 2, 3]):
print(i)
list(map(lambda x:x**2, [1, 2, 3]))
x = 10
print(type(x))
class 게시물찍는틀():
title = ''
contents = ''
img = ''
class Car():
maxPeople = 6 # 맴버(클래스 변수, 인스턴스 변수(self))
maxSpeed = 300
def start(self): # 매서드
print('출발합니다!')
def stop(self):
print('멈춥니다!!')
k5 = Car() # k5가 인스턴스
k5.start()
k3 = Car() # k3가 인스턴스
k3.start()
k5 + k3
k5.maxPeople
print(type(k3))
x = 3
print(type(x))
dir(k3)
class Car():
maxPeople = 6 # 맴버(클래스 변수, 인스턴스 변수(self))
maxSpeed = 300
def start(self): # 매서드
print('출발합니다!')
def stop(self):
print('멈춥니다!!')
def __add__(self, a):
return '더하기를 할 수 없습니다!'
def __mul__(self, a):
return '곱하기를 할 수 없습니다!'
k5 = Car() # k5가 인스턴스
k3 = Car() # k3가 인스턴스
k5 + k3
k5 * k3
class Car():
maxPeople = 6 # 맴버(클래스 변수, 인스턴스 변수(self))
maxSpeed = 300
def start(self): # 매서드
print('출발합니다!')
def stop(self):
print('멈춥니다!!')
def __add__(self, a):
return self.maxPeople + a.maxPeople
def __mul__(self, a):
return '곱하기를 할 수 없습니다!'
k5 = Car() # k5가 인스턴스
k3 = Car() # k3가 인스턴스
k5 + k3
class Car():
생성된차 = []
def __init__(self, name):
self.n = name
self.생성된차.append(name)
def __str__(self):
return self.n
maxPeople = 6 # 맴버(클래스 변수, 인스턴스 변수(self))
maxSpeed = 300
def start(self): # 매서드
print('출발합니다!')
def stop(self):
print('멈춥니다!!')
k5 = Car('호준이차') # k5가 인스턴스
k3 = Car('제주카') # k3가 인스턴스
k5.n
print(k5)
print(k5.생성된차)
class Car():
maxPeople = 6
maxSpeed = 300
def start(self):
print('출발합니다!')
def stop(self):
print('멈춥니다!!')
k5 = Car()
class 전기차(Car):
배터리 = 100
배터리km = 300
k5전기차 = 전기차()
k5전기차.start()
f = open("./new.txt", 'w')
data = '안녕하세요.'
f.write(data)
f.close()
f = open("./new.txt", 'w')
data = ''
for i in range(10):
data += f'{i} 안녕하세요.\n'
f.write(data)
f.close()
f = open("./new.txt", 'r')
print(f.read())
import test
test.name
test.age
import test as t
t.name
from test import age, name
name
# from test1 import age, name
# from test2 import age, name
# name
# 시각화 : matplotlib, plotly...
# 크롤링 : requests, beautifulsoup....
import numpy as np
from skimage import io
import matplotlib.pyplot as plt
jeju = io.imread('jeju.jpg')
type(jeju)
jeju.shape
jeju
plt.imshow(jeju)
data = jeju[:]
x = [1, 2, 3, 4, 5]
x[::-1]
plt.imshow(data[::-1])
plt.imshow(jeju[:, ::-1])
plt.imshow(jeju[800:1200, 700:1150])
plt.imshow(jeju[::5, ::5])
plt.imshow(jeju[::10, ::10])
plt.imshow(jeju[::30, ::30])