โน๏ธ ์ฐธ๊ณ ๊ฐ์
๐ ์ ์, ์ค์, ๋ฌธ์, ๋ถ๋ฆฌ์ ์๋ฃํ
# ๋ฌธ์ ์๋ฃํ
print('hello world')
print("์๋
ํ์ธ์")
# ์ซ์ ์๋ฃํ
print(10)
print(3.14)
# ๋ถ๋ฆฌ์ ์๋ฃํ
print(True)
print(False)โ
๐ ์ ์, ์ค์, ๋ฌธ์, ๋ถ๋ฆฌ์ ์๋ฃํ ๋ณํ
# ํ ๋ณํ
int('2') # ์ ์๋ก
float('1.5') # ์ค์๋ก
str(2) # ๋ฌธ์๋ก
bool('hello') # ๊ฐ์ด ์์ผ๋ฉด True, ์์ผ๋ฉด False (bool(''), bool(0), bool(None)์ False)
# ํ์ฉ ์์
num = int(float('2.5'))
print(num)โ
๐ ์ฐ์ฐ์ (์ฐ์ , ๋น๊ต, ๋ ผ๋ฆฌ, ๋ฉค๋ฒ)
# ์ฐ์ ์ฐ์ฐ์
print(5 + 2) # ๋ํ๊ธฐ
print(5 - 2) # ๋นผ๊ธฐ
print(5 * 2) # ๊ณฑํ๊ธฐ
print(5 / 2) # ๋๋๊ธฐ
print(5 % 2) # ๋๋จธ์ง
print(5 // 2) # ๋ชซ
print(5 ** 2) # ๊ฑฐ๋ญ ์ ๊ณฑ
# ๋น๊ต ์ฐ์ฐ์
print(5 > 2) # ํฌ๋ค
print(5 >= 2) # ํฌ๊ฑฐ๋ ๊ฐ๋ค
print(5 < 2) # ์๋ค
print(5 <= 2) # ์๊ฑฐ๋ ๊ฐ๋ค
print(5 == 2) # ๊ฐ๋ค
print(5 != 2) # ๊ฐ์ง ์๋ค
# ๋
ผ๋ฆฌ ์ฐ์ฐ์
print(3 < 5 and 7 < 5) # ๋ ๋ค ์ฐธ์ด๋ฉด True
print(3 < 5 or 7 < 5) # ํ๋๋ผ๋ ์ฐธ์ด๋ฉด True
print(not 3 < 5) # ๋ฐ์
# ๋ฉค๋ฒ ์ฐ์ฐ์
print('c' in 'cat') # ํฌํจ
print('c' not in 'cat') # ๋ฏธํฌํจ
๐ ์ฃผ์
# ํ ์ค ์ฃผ์
print('์ ๋ ์ ๋ถ ์
์ฅ')
# ๊ฑท๊ธฐ ์์ํ๋ฉด
print('ํฐ ๋ฐ์ ๋ถํ๋๋ฆฝ๋๋ค')
# ์ฌ๋ฌ ์ค ์ฃผ์
print('์ ๋ ์ ๋ถ ์
์ฅ')
'''๊ฑท๊ธฐ ์์ํ๊ณ
์ ์ ํ์'''
print('ํฐ ๋ฐ์ ๋ถํ๋๋ฆฝ๋๋ค')
๐ ๋ณ์ ์ ์ธ ๋ฐ ์ฌ์ฉ
# ๋ณ์ ์ ์ธ
# ๋ณ์ ์ด๋ฆ ๊ท์น 1. ๋ฌธ์ ๋๋ _๋ก ์์
# ๋ณ์ ์ด๋ฆ ๊ท์น 2. ๋ฌธ์, ์ซ์, _๋ก ๊ตฌ์ฑ
# ๋ณ์ ์ด๋ฆ ๊ท์น 3. ๊ณต๋ฐฑ X, ํน์๋ฌธ์ X
# ๋ณ์ ์ด๋ฆ ๊ท์น 4. ๋์๋ฌธ์ ๊ตฌ๋ถ
# ๋ณ์ ์ด๋ฆ ๊ท์น 5. ํค์๋(์์ฝ์ด) X
envelope1 = 10000
envelope2 = 20000
envelope3 = 'ํ์ดํ
'
# ๋ณ์ ์ฌ์ฉ
print(envelope1)
print(envelope2)
print(envelope3)โ
๐ ์ธ๋ฑ์ค์ ์ฌ๋ผ์ด์ฑ
# ์ธ๋ฑ์ค
lang = 'PYTHON'
print(lang[0]) # P ์ถ๋ ฅ
print(lang[5]) # N ์ถ๋ ฅ
print(lang[-1]) # N ์ถ๋ ฅ
# ์ฌ๋ผ์ด์ฑ
print(lang[1:6]) # YTHON ์ถ๋ ฅ ( @ ๋ถํฐ @ ์ง์ ๊น์ง )
print(lang[1:]) # YTHON ์ถ๋ ฅ ( @ ๋ถํฐ ๋๊น์ง )
print(lang[:4]) # PYTH ( ์ฒ์๋ถํฐ @ ์ง์ ๊น์ง )
print(lang[:]) # PYTHON ( ์ฒ์๋ถํฐ ๋๊น์ง )
๐ ๋ฌธ์์ด ์ฒ๋ฆฌ
# ํ ์ค ๋ฌธ์์ด
snack = '๊ฟ๊ฝ๋ฐฐ๊ธฐ'
two = '2๊ฐ'
# ์ฌ๋ฌ ์ค ๋ฌธ์์ด
snack = '''๊ฟ๊ฝ๋ฐฐ๊ธฐ๋
๋๋ฌด
๋ง์์ด์'''
# ๋ฌธ์์ด ๊ด๋ จ ํจ์
print(len(snack)) # len() : ๋ฌธ์์ด ๋๋ ๋ฆฌ์คํธ ๋ฑ์ ๊ธธ์ด
# ๋ฌธ์์ด ์ฒ๋ฆฌ
juseyo = snack + two
juseyo = juseyo + '์ฃผ์ธ์' # juseyo += '์ฃผ์ธ์' ๋ก๋ ํํ ๊ฐ๋ฅ
print(juseyo) # '๊ฟ๊ณผ๋ฐฐ๊ธฐ2๊ฐ์ฃผ์ธ์' ์ถ๋ ฅ
๐ ๋ฌธ์์ด ๋ฉ์๋
letter = 'how are YOU?'
print(letter.lower()) # ๋ชจ๋ ๋ด์ฉ์ ์๋ฌธ์๋ก ๋ณํ
print(letter.upper()) # ๋ชจ๋ ๋ด์ฉ์ ๋๋ฌธ์๋ก ๋ณํ
print(letter.capitalize()) # ์ฒซ ๊ธ์๋ง ๋๋ฌธ์๋ก ๋ณํ
print(letter.title()) # ๊ฐ ๋จ์ด๋ค์ ์ฒซ ๊ธ์๋ง ๋๋ฌธ์๋ก ๋ณํ
print(letter.swapcase()) # ๋์๋ฌธ์ ์ํธ ๋ณํ
print(letter.split()) # ๋ฌธ์์ด ๋ถ๋ฆฌ (๋์ด์ฐ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฆฌ์คํธ ํํ๋ก ๋ฐํ)
print(letter.count('how')) # ํน์ ๋จ์ด์ ์
s = '๋๋๊ณ ๋ฑํ๊ต'
print(s.startswith('๋๋')) # ~๋ก ์์ํ๋์ง
print(s.endswith('์ด๋ฑํ๊ต') # ~๋ก ๋๋๋์ง
print(s.strip('.')) # ์๋ค ๋ถํ์ํ ๋ถ๋ถ ์ ๊ฑฐ (๋น์๋ ๊ฒฝ์ฐ ๊ณต๋ฐฑ ์ ๊ฑฐ)
print(s.replace('๊ณ ๋ฑํ๊ต', '๊ณ ๊ต')) # ๋จ์ด ๋ฐ๊พธ๊ธฐ
print(s.find('ํ๊ต')) # ๋จ์ด ์์น ์ฐพ๊ธฐ (์ธ๋ฑ์ค ๋ฐํ)
print(s.center(10, '-')) # ๋ค๋ฅธ ๋ฌธ์๋ค ์ฌ์ด ๊ฐ์ด๋ฐ ('--๋๋๊ณ ๋ฑํ๊ต--' ์ถ๋ ฅ)
# ์ด ์ธ์๋ ๋ค์ํ ๋ฉ์๋๊ฐ ์กด์ฌํ๋ค.
# Google์์ 'python ๋ด์ฅํ' ๊ฒ์ ํ ๊ณต์ ํํ์ด์ง์์ ์ถ๊ฐ์ ์ผ๋ก ํ์ธ ๊ฐ๋ฅ
๐ ๋ฌธ์์ด ์ถ๋ ฅ
python = 'ํ์ด์ฌ'
java = '์๋ฐ'
# ๋ฌธ์์ด ํฌ๋งท์ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ
print(python + ' ' + java) # ๋ฌธ์์ด ์ฐ๊ฒฐ(+)์ ์ฌ์ฉํ์ฌ ์ถ๋ ฅ
print(python, java) # ์ผํ(,)๋ฅผ ์ฌ์ฉํ๋ฉด ์๋์ผ๋ก ๋์ด์ฐ๊ธฐ ์ ์ฉ
print('๊ฐ๋ฐ ์ธ์ด์๋ ' + python + ', ' + java + ' ๋ฑ์ด ์์ด์') # ๋ฌธ์์ด ์ฐ๊ฒฐ(+) ๋ฐฉ์
print('๊ฐ๋ฐ ์ธ์ด์๋', python, ',', java, '๋ฑ์ด ์์ด์') # ์ผํ(,)๋ฅผ ์ฌ์ฉํ ์ถ๋ ฅ
# ๋ฌธ์์ด ํฌ๋งท์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
print('๊ฐ๋ฐ ์ธ์ด์๋ {}, {} ๋ฑ์ด ์์ด์'.format(python, java)) # ๊ธฐ๋ณธ ์์ ์ถ๋ ฅ (ํ์ด์ฌ, ์๋ฐ)
print('๊ฐ๋ฐ ์ธ์ด์๋ {1}, {0} ๋ฑ์ด ์์ด์'.format(python, java)) # ์ธ๋ฑ์ค๋ฅผ ์ง์ ํ์ฌ ์์ ๋ณ๊ฒฝ (์๋ฐ, ํ์ด์ฌ)
print(f'๊ฐ๋ฐ ์ธ์ด์๋ {python}, {java} ๋ฑ์ด ์์ด์') # f-string์ ์ฌ์ฉํ ์ถ๋ ฅ (Python 3.6+)
๐ ํ์ถ ๋ฌธ์
# ๋ฌธ์์ด ๋ด๋ถ์ ๋ฐ์ดํ๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ
print('์น๊ตฌ๊ฐ "ํ์ด์ฌ ๋ฐฐ์ฐ๊ธฐ ์ฌ์?" ํ๊ณ ๋ฌผ์๋ค.')
print("๋๋ ์์ผ๋ก '์์ฒญ ์ด๋ ค์ด๋ฐ...' ๋ผ๊ณ ์๊ฐํ๋ค.")
# ๋ฌธ์์ด ๋ด๋ถ์ ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํ๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ
print('ํ์ง๋ง \'๋๋ง ๋นํ ์ ์์ง\'๋ผ๋ ์๊ฐ์ \"์์ฒญ ์ฝ์ง\" ๋ผ๊ณ ํ๋ค.')
# ์ญ์ฌ๋์(\) ํํ
print('C:\\Users\\Nadocoding')
# ์ค๋ฐ๊ฟ
snack = '๊ฟ๊ฝ๋ฐฐ๊ธฐ๋\n๋๋ฌด\n๋ง์์ด์'
๐ ๋ฆฌ์คํธ
# ์ค๋ณต ์ ์ฅ ๊ฐ๋ฅ, ์ฌ๋ฌ ์๋ฃํ ์ ์ฅ ๊ฐ๋ฅ
my_list = ['์ค์์ค', '๋ชฝ์', '์ด์ฝํ์ด', '์ด์ฝํ์ด', '์ด์ฝํ์ด']
your_list = [1, 2, 3.14, True, False, '์๋ฌด๊ฑฐ๋']
empty_list = []
# ์์๊ฐ ์ ์ง๋จ (์ธ๋ฑ์ฑ๊ณผ ์ฌ๋ผ์ด์ฑ ๊ฐ๋ฅ)
print(my_list[0]) # '์ค์์ค' ์ถ๋ ฅ
print(my_list[0:2]) # ['์ค์์ค', '๋ชฝ์'] ์ถ๋ ฅ
# ๋ฆฌ์คํธ ๊ด๋ จ ์ฐ์ฐ
print('๋ชฝ์' in my_list) # ํน์ ์์ ํฌํจ ์ฌ๋ถ ํ์ธ (True ์ถ๋ ฅ)
print(len(my_list)) # ๋ฆฌ์คํธ ๊ธธ์ด(์์ ๊ฐ์) ๋ฐํ
# ๋ฆฌ์คํธ ์์ ์์ ๋ฐ ์ถ๊ฐ
my_list[1] = '๋ชฝ์์นด์นด์ค' # ๋ฆฌ์คํธ ๊ฐ ์์
my_list.append('๋น
ํ์ด') # ๋ฆฌ์คํธ ๋งจ ๋ค์ ์๋ก์ด ๊ฐ ์ถ๊ฐ
my_list.remove('์ค์์ค') # ๋ฆฌ์คํธ ๊ฐ ์ญ์
my_list.extend(your_list) # ๋ค๋ฅธ ๋ฆฌ์คํธ ๊น๋ค์ ์ถ๊ฐ
del my_list[1] # ๋ฆฌ์คํธ ๋ ๋ฒ์งธ ์์ ์ญ์
del my_list # ๋ฆฌ์คํธ ์์ฒด๋ฅผ ์ญ์
# ๊ทธ ์ธ์ ๋ฆฌ์คํธ ๋ฉ์๋
insert() # ์ํ๋ ์์น์ ๊ฐ ์ถ๊ฐ
pop() # ์ํ๋ ์์น(๋๋ ๋ง์ง๋ง)์ ๊ฐ ์ญ์
clear() # ๋ชจ๋ ๊ฐ ์ญ์
sort() # ๊ฐ ์์๋๋ก ์ ๋ ฌ
reverse() # ์์ ๋ค์ง๊ธฐ
copy() # ๋ฆฌ์คํธ ๋ณต์ฌ
count() # ์ด๋ค ๊ฐ์ด ๋ช ๊ฐ ์๋์ง
index() # ์ด๋ค ๊ฐ์ด ์ด๋์ ์๋์ง
๐ ํํ
# ์์ ๋ถ๊ฐ (๋ฆฌ์คํธ์ ๋น์ทํ์ง๋ง, '์ฝ๊ธฐ ์ ์ฉ ๋ฆฌ์คํธ'๋ผ๊ณ ์๊ฐํ๋ฉด ๋จ)
numbers = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
my_tuple = ('์ค์์ค', '๋ชฝ์', '์ด์ฝํ์ด', '์ด์ฝํ์ด')
your_tuple = (1, 2, 3.14, True, False, '์๋ฌด๊ฑฐ๋')
# ์ธํจํน
(pie1, pie2, pie3) = my_tuple
(one, two, *others) = numbers # others๋ ๋ฆฌ์คํธ ํํ
# ์์๊ฐ ์ ์ง๋จ (์ธ๋ฑ์ฑ๊ณผ ์ฌ๋ผ์ด์ฑ ๊ฐ๋ฅ)
print(my_tuple[0]) # '์ค์์ค' ์ถ๋ ฅ
print(my_tuple[0:2]) # ('์ค์์ค', '๋ชฝ์') ์ถ๋ ฅ
# ํํ ๊ด๋ จ ์ฐ์ฐ
print('๋ชฝ์' in my_tuple) # ํน์ ์์ ํฌํจ ์ฌ๋ถ ํ์ธ (True ์ถ๋ ฅ)
print(len(my_tuple)) # ํํ ๊ธธ์ด(์์ ๊ฐ์) ๋ฐํ
del my_tuple # ํํ ์์ฒด๋ฅผ ์ญ์ (ํํ์ ๋ถ๋ณ์ด๋ฏ๋ก, ๊ฐ๋ณ ์์ ์ญ์ ๋ถ๊ฐ)
# ๊ทธ ์ธ ํํ ๋ฉ์๋
count() # ์ด๋ค ๊ฐ์ด ๋ช ๊ฐ ์๋์ง
index() # ์ด๋ค ๊ฐ์ด ์ด๋์ ์๋์ง
๐ ์ธํธ
# ์์ ์์, ์ค๋ณต ์์ (์งํฉ์ ํน์ง)
A = {'๋๊ฐ์ค', '๋ณด์', '์ ์ก๋ฎ๋ฐฅ'}
B = {'์งฌ๋ฝ', '์ด๋ฐฅ', '์ ์ก๋ฎ๋ฐฅ'}
# ์งํฉ ์ฐ์ฐ (๊ต์งํฉ, ํฉ์งํฉ, ์ฐจ์งํฉ)
print(A.intersection(B)) # ๊ต์งํฉ {'์ ์ก๋ฎ๋ฐฅ'} ์ถ๋ ฅ
print(A.union(B)) # ํฉ์งํฉ {'๋๊ฐ์ค', '๋ณด์', '์งฌ๋ฝ', '์ด๋ฐฅ', '์ ์ก๋ฎ๋ฐฅ'} ์ถ๋ ฅ
print(A.difference(B)) # ์ฐจ์งํฉ {'๋๊ฐ์ค', '๋ณด์'} ์ถ๋ ฅ
# ์งํฉ ์์ ์ถ๊ฐ ๋ฐ ์ญ์
A.add('๋ญ๊ฐ๋น') # ๊ฐ ์ถ๊ฐ
A.remove('์ ์ก๋ฎ๋ฐฅ') # ๊ฐ ์ญ์
A.clear() # ๋ชจ๋ ๊ฐ ์ญ์
del A # ์ธํธ ์์ฒด๋ฅผ ์ญ์ (์ธํธ๋ ์ธ๋ฑ์ค ๋ฐ ํค๊ฐ ์กด์ฌํ์ง ์์ผ๋ฏ๋ก, ๊ฐ๋ณ ์์ ์ญ์ ๋ถ๊ฐ)
# ๊ทธ ์ธ ์งํฉ ๋ฉ์๋
copy() # ์ธํธ ๋ณต์ฌ
discard() # ๊ฐ ์ญ์ (ํด๋น ๊ฐ์ด ์์ด๋ ์๋ฌ ๋ฐ์ X)
isdisjoint() # ๋ ์ธํธ์ ๊ฒน์น๋ ๊ฐ์ด ์๋์ง ์ฌ๋ถ
issubset() # ๋ค๋ฅธ ์ธํธ์ ๋ถ๋ถ์งํฉ์ธ์ง ์ฌ๋ถ
issuperset() # ๋ค๋ฅธ ์ธํธ์ ์์์งํฉ์ธ์ง ์ฌ๋ถ
update() # ๋ค๋ฅธ ์ธํธ์ ๊ฐ๋ค์ ๋ํจ
๐ ๋์ ๋๋ฆฌ
# Key๋ ๋ณํ ์ ์๋ ์๋ฃํ๋ง ๊ฐ๋ฅํ๊ณ ์ค๋ณต ๋ถ๊ฐ
# Value๋ ๋ค์ํ ์๋ฃํ(์ซ์, ๋ฌธ์์ด, ๋ถ๋ฆฌ์ธ, ๋ฆฌ์คํธ, ํํ ๋ฑ) ์ฌ์ฉ ๊ฐ๋ฅ
person = {'์ด๋ฆ': '๋๊ท์ค', '๋์ด': 7, 'ํค': 120, '๋ชธ๋ฌด๊ฒ': 23}
# ๋์
๋๋ฆฌ ๊ฐ ์กฐํ
print(person['์ด๋ฆ']) # '๋๊ท์ค' ์ถ๋ ฅ
print(person['๋์ด']) # 7 ์ถ๋ ฅ
print(person.get('๋ณ๋ช
')) # ์กด์ฌํ์ง ์๋ key ์กฐํ ์ None ์ถ๋ ฅ
# ๋์
๋๋ฆฌ ๊ฐ ์ถ๊ฐ ๋ฐ ์์
person['์ต์ข
ํ๋ ฅ'] = '์ ์น์' # ์๋ก์ด key ์ถ๊ฐ
person['ํค'] = 130 # ๊ธฐ์กด key์ value ๋ณ๊ฒฝ
person.update({'ํค': 135, '๋ชธ๋ฌด๊ฒ': 26}) # ์ฌ๋ฌ key์ value ๋ณ๊ฒฝ
# ๋์
๋๋ฆฌ ๊ฐ ์ญ์
person.pop('๋ชธ๋ฌด๊ฒ') # ํน์ key ์ญ์
person.clear() # ๋ชจ๋ key-value ์ญ์
del person['์ด๋ฆ'] # ํน์ ํค์ ํด๋นํ๋ ํค-๊ฐ ์ ์ญ์
del person # ๋์
๋๋ฆฌ ์์ฒด๋ฅผ ์ญ์
# ๋์
๋๋ฆฌ key, value, key-value ์ ์กฐํ
print(person.keys()) # key ๋ชฉ๋ก ๋ฐํ
print(person.values()) # value ๋ชฉ๋ก ๋ฐํ
print(person.items()) # (key, value) ์ ๋ชฉ๋ก ๋ฐํ
# ๊ทธ ์ธ ๋์
๋๋ฆฌ ๋ฉ์๋
fromkeys() # ์ ๊ณต๋ keys๋ฅผ ํตํด ์๋ก์ด ๋์
๋๋ฆฌ ์์ฑ ๋ฐ ๋ฐํ
popitem() # ๋ง์ง๋ง์ผ๋ก ์ถ๊ฐ๋ ๋ฐ์ดํฐ ์ญ์
setdefault() # key์ ํด๋นํ๋ value ๋ฐํ (key๊ฐ ์๋ค๋ฉด ์๋ก ๋ง๋ค๊ณ default value ์ค์ ๋ฐ ๋ฐํ)
๐ ๋ฆฌ์คํธ vs ํํ vs ์ธํธ ์๋ฃํ ๋น๊ต

- ๋ฆฌ์คํธ (์ฌ๋ฌ ๊ฐ๋ค์ ์์๋๋ก ๊ด๋ฆฌํด์ผ ํ ๋ ์ ์ฉ)
- ํํ (ํ ๋ฒ ๋ง๋ค๊ณ ๋๋ฉด ๋ฐ๋ ์ผ์ด ์๊ฑฐ๋, ํ๋ก๊ทธ๋จ ๋์ ์ค ์ค์๋ก๋ผ๋ ๊ฐ์ด ๋ฐ๋ ์ ์๋ ์ํฉ์ ๋ฐฉ์งํ๊ณ ์ ํ ๋ ์ ์ฉ)
- ์ธํธ (ํน์ ๊ฐ์ด ์๋์ง ์๋์ง๊ฐ ์ค์ํ๊ฑฐ๋, ์ค๋ณต์ ํ์ฉํ์ง ์๋ ๋ฐ์ดํฐ์ผ ๋ ์ ์ฉ)
- ๋์ ๋๋ฆฌ (Key๋ฅผ ํตํด ํจ์จ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ณ ์ถ์ ๋ ์ ์ฉ)
๐ ๋ฆฌ์คํธ, ํํ, ์ธํธ ์๋ฃํ ๋ณํ
# ๋ฆฌ์คํธ <-> ํํ ๋ณํ
my_tuple = ('์ค์์ค', '๋ชฝ์')
my_list = list(my_tuple)
my_list.append('์ด์ฝํ์ด')
my_tuple = tuple(my_list)
# ๋ฆฌ์คํธ์์ ์ค๋ณต ๊ฐ ์ ๊ฑฐ
my_list = ['์ค์์ค', '๋ชฝ์', '์ด์ฝํ์ด', '์ด์ฝํ์ด', '์ด์ฝํ์ด']
my_set = set(my_list)
my_list = list(my_set) # ๋จ ์์๊ฐ ๋ค์ฃฝ๋ฐ์ฃฝ ์์ผ ์ ์์
# ๋ฆฌ์คํธ์ ์ค๋ณต ๊ฐ์ ์ ๊ฑฐํ๋ฉด์ ์์๋ฅผ ๋ณด์ฅํ๋ ๋ฐฉ๋ฒ
my_list = ['์ค์์ค', '๋ชฝ์', '์ด์ฝํ์ด', '์ด์ฝํ์ด', '์ด์ฝํ์ด']
my_dic = dict.fromkeys(my_list)
my_list = list(my_dic)
๐ ์กฐ๊ฑด๋ฌธ (if)
# ๋จ์ผ ์กฐ๊ฑด๋ฌธ
today = '์ผ์์ผ'
if today == '์ผ์์ผ': # ๋ง์ฝ ~๋ผ๋ฉด
print('๊ฒ์ ํ ํ')
elif today == 'ํ ์์ผ' # ์๋๋ผ๊ณ ? ๊ทธ๋ผ ์ ๊ฑด ์ด๋?
print('ํฐ 5๋ถ๋ง')
else: # ๊ทธ๋ ์ง ์๋ค๋ฉด
print('๋ฌผ ํ ์')
print('๊ณต๋ถ ์์')
# ์ค์ฒฉ ์กฐ๊ฑด๋ฌธ
yellow_card = 0
foul = True
if foul:
yellow_card += 1
if yellow_card == 2:
print('๊ฒฝ๊ณ ๋์ ํด์ฅ')
else:
print('ํด.. ์กฐ์ฌํด์ผ์ง')
else:
print('์ฃผ์')
๐ ๋ฐ๋ณต๋ฌธ (for, while)
# for ๋ฐ๋ณต๋ฌธ (๋ฒ์)
for x in range(10):
print('ํ ๋ฒ๋ ค ๋ฐ๊ธฐ ํด')
for x in range(10): # range(start, stop, step)๋ start ์ด์ stop ๋ฏธ๋ง step ๋งํผ ์ฆ๊ฐ
print(f'ํ ๋ฒ๋ ค ๋ฐ๊ธฐ {x}ํ')
# for ๋ฐ๋ณต๋ฌธ (๋์)
my_list = [1, 2, 3]
for x in my_list:
print(x)
person = {'์ด๋ฆ':'๋๊ท์ค', '๋์ด':7, 'ํค':120, '๋ชธ๋ฌด๊ฒ':23}
for v in person.values():
print(v)
for k in person.keys():
print(v)
for k, v in person.items():
print(k, v)
fruit = 'apple'
for x in fruit:
print(x)
# while ๋ฐ๋ณต๋ฌธ
max = 25 # ์ต๋ ํ์ฉ ๋ฌด๊ฒ
weight = 0 # ํ์ฌ ์บ๋ฆฌ์ด ๋ฌด๊ฒ
item = 3 # ๊ฐ ์ง์ ๋ฌด๊ฒ
while weight + item <= max: # ์บ๋ฆฌ์ด์ ์ง์ ๋ ๋ฃ์ด๋ ๋๋์ง ํ์ธ
weight += item
print('์ง์ ์ถ๊ฐํฉ๋๋ค')
print(f'์ด ๋ฌด๊ฒ๋ {weight} ์
๋๋ค')
# break
drama = ['์์ฆ1', '์์ฆ2', '์์ฆ3', '์์ฆ4', '์์ฆ5']
for x in drama:
if x == '์์ฆ3':
print('์ฌ๋ฏธ ์๋, ๊ทธ๋ง ๋ณด์')
break # ์ฆ, '์์ฆ1', '์์ฆ2'๋ง ์์ฒญ
print(f'{x} ์์ฒญ')
# continue
drama = ['์์ฆ1', '์์ฆ2', '์์ฆ3', '์์ฆ4', '์์ฆ5']
for x in drama:
if x == '์์ฆ3':
print('์ฌ๋ฏธ ์๋, ๊ทธ๋ง ๋ณด์')
continue # ์ฆ, '์์ฆ3'์ ์ ์ธํ '์์ฆ1', '์์ฆ2', '์์ฆ4', '์์ฆ5' ์์ฒญ
print(f'{x} ์์ฒญ')
๐ ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์
# ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์
์ฌ์ฉ ์
products = ['JOA-2020', 'JOA-2021', 'SIRO-2021', 'SIRO-2022']
recall = []
for p in products:
if p.startswith('SIRO'):
recall.append(p)
# ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์
์ฌ์ฉ ํ ( ๋ณ์ ํ์ฉ for ๋ณ์ in ๋ฐ๋ณต ๋์ if ์กฐ๊ฑด )
products = ['JOA-2020', 'JOA-2021', 'SIRO-2021', 'SIRO-2022']
recall = [p for p in products if p.startswith('SIRO')]
๐ ํจ์ (์ ๋ฌ ๊ฐ, ๋ฐํ ๊ฐ, ๊ธฐ๋ณธ ๊ฐ, ํค์๋ ๊ฐ, ๊ฐ๋ณ ์ธ์)
# ์ ๋ฌ ๊ฐ (ํจ์ ๋ด์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ)
def show_price(customer): # ์ ๋ฌ ๊ฐ
print(f'{customer} ๊ณ ๊ฐ๋')
print('์ปคํธ ๊ฐ๊ฒฉ์ 10,000์ ์
๋๋ค.')
customer1 = '๋์ฅ๋ฐ'
show_price(customer1)
customer2 = '๋์์ผ'
show_price(customer2)
# ๋ฐํ ๊ฐ, ๊ธฐ๋ณธ ๊ฐ
def get_price(is_vip = False): # ์ ๋ฌ ๊ฐ๊ณผ ๊ธฐ๋ณธ ๊ฐ
if is_vip == True:
return 10000 # ๋ฐํ ๊ฐ
else:
return 15000
price = get_price() # ์ผ๋ฐ ์๋
price = get_price(True) # ๋จ๊ณจ ์๋
# ํค์๋ ๊ฐ
def get_price(is_vip = False,
is_birthday = False,
is_membership = False,
card = False,
review = False,
first_time = False):
...
price = get_price(review = True, is_birthday = True) # ํค์๋ ๊ฐ (์์ ๋ฌด๊ด)
# ๊ฐ๋ณ ์ธ์
def visit(today, *customers): # ์ ๋ฌ ๊ฐ์ด ๋ค์์ธ ๊ฒฝ์ฐ ๋ง์ง๋ง์ ํ ๋ฒ๋ง ์ฌ์ฉ ๊ฐ๋ฅ
print(today)
for customer in customers:
print(customer)
visit('2022๋
6์ 10์ผ', '๋์ฅ๋ฐ', '๋์์ผ', '๋๊น๋ฆฌ')
๐ ์ง์ญ ๋ณ์, ์ ์ญ ๋ณ์
# ์ง์ญ ๋ณ์
def secret():
message = '์ด๊ฑด ๋๋ง์ ๋น๋ฐ' # secret ํจ์ ๋ด์์๋ง ์ ํจํ ์ง์ญ ๋ณ์
print(message) # ์ค๋ฅ ๋ฐ์ (message๋ secret ํจ์ ๋ด์์ ์ ์๋ ์ง์ญ ๋ณ์์ด๋ฏ๋ก ํจ์ ๋ฐ์์ ์ ๊ทผํ ์ ์์)
def please():
message = '์ด๋ ๊ฒ ํ๋ฉด ๋์ง?' # secret ํจ์ ๋ด์ message ๋ณ์์ ์ด๋ฆ๋ง ๊ฐ์ผ๋ฉฐ, ๊ฐ๊ฐ์ ํจ์ ๋ด์์ ๋
๋ฆฝ์ ์ธ ์ง์ญ ๋ณ์
# ์ ์ญ ๋ณ์
message = '๋๋์ผ ์ ์ญ ๋ณ์'
print(message) # ํจ์ ๋ฐ์์๋ ์ฌ์ฉ ๊ฐ๋ฅํ ์ ์ญ ๋ณ์
def no_secret():
# message = '์ด๋ฌ๋ฉด ๋ ์ง์ญ ๋ณ์' # ์ด๋ ํจ์ ๋ด์์๋ง ์ ํจํ ์ง์ญ ๋ณ์
global message # ์ ์ญ ๋ณ์๋ฅผ ์์ ํ๋ ค๋ฉด global ํค์๋๋ฅผ ์ฌ์ฉํด์ผ ํจ
message = '์ค ์ง์ง ์ ์ญ ๋ณ์!!' # ์ ์ญ ๋ณ์ ์์
print(message) # ํจ์ ์์์๋ ์ ์ญ ๋ณ์๋ ์ฌ์ฉ ๊ฐ๋ฅ
๐ ์ฌ์ฉ์ ์ ๋ ฅ
name = input('์์ฝ์๋ถ ์ฑํจ์ด ์ด๋ป๊ฒ ๋๋์?')
print(name)
num = int(input('์ด ๋ช ๋ถ์ด์ธ์?')) # ์ฌ์ฉ์ ์
๋ ฅ ๊ฐ์ ๋ชจ๋ ๋ฌธ์์ด ํํ
if num > 4:
print('์ฃ์กํ์ง๋ง ์ ํฌ ์๋น์ ์ต๋ 4๋ถ ๊น์ง๋ง ์์ฝ ๊ฐ๋ฅํฉ๋๋ค')
๐ ํ์ผ ์ ์ถ๋ ฅ (with)
# open(ํ์ผ๋ช
, ์ด๊ธฐ ๋ชจ๋, encoding='์ธ์ฝ๋ฉ')
# ์ด๊ธฐ ๋ชจ๋
# 1. r(์ฝ๊ธฐ)
# 2. a(์ด์ด์ ์ฐ๊ธฐ)
# 3. w(์ฐ๊ธฐ))
# ์ฐ๊ธฐ ๋ชจ๋๋ก ํ์ผ ์ด๊ธฐ
f = open('list.txt', 'w', encoding='utf8')
f.write('๊นxx\n') # ๋ฌธ์ฅ ์
๋ ฅํ๊ธฐ
f.write('์ xx\n') # ๋ฌธ์ฅ ์
๋ ฅํ๊ธฐ
f.write('ํxx\n') # ๋ฌธ์ฅ ์
๋ ฅํ๊ธฐ
f.close() # ํ์ผ ๋ซ๊ธฐ
# ์ฝ๊ธฐ ๋ชจ๋๋ก ํ์ผ ์ด๊ธฐ
f = open('list.txt', 'r', encoding='utf8')
contents = f.read()
print(contents)
f.close()
# ํ ์ค์ฉ ์ฝ๊ธฐ
f = open('list.txt', 'r', encoding='utf8')
for line in f:
print(line, end='')
f.close()
# with ๋ฌธ ํ์ฉ (with ๋ธ๋ก์ ๋ฒ์ด๋๋ฉด ํ์ผ์ด ์๋์ผ๋ก ๋ซํ, close() ํธ์ถ ๋ถํ์)
with open('list.txt', 'w', encoding='utf8') as f: # 'r' ๋ชจ๋๋ ์ฌ์ฉ ๊ฐ๋ฅ
...
๐ ํด๋์ค (๋ฉค๋ฒ ๋ณ์, ๋ฉ์๋, self)
class BlackBox:
def __init__ (self, name, price): # ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ์๋์ผ๋ก ์คํ๋๋ ์์ฑ์ ํจ์
self.name = name # ํด๋์ค์ ๋ฉค๋ฒ ๋ณ์ (๊ฐ์ฒด๋ง๋ค ๋ค๋ฅธ ๊ฐ์ ๊ฐ์ง ์ ์์)
self.price = price # self๋ '๊ฐ์ฒด ์๊ธฐ ์์ '์ ์๋ฏธ (๋ฉ์๋ ๋ด์์๋ 'self.๋ฉค๋ฒ๋ณ์' ์ ๊ฐ์ ํํ๋ก ๋ฉค๋ฒ ๋ณ์๋ฅผ ์ฌ์ฉ)
def set_travel_mode(self, min):
print(f'{self.name} {min}๋ถ ๋์ ์ฌํ ๋ชจ๋ ON')
b1 = BlackBox('๊น๋ง์ด', 200000) # b1 ๊ฐ์ฒด ์์ฑ ์๋ฃ
print(b1.name, b1.price)
b2 = BlackBox('ํ์์ด', 100000) # b2 ๊ฐ์ฒด ์์ฑ ์๋ฃ
print(b2.name, b2.price)
b1.set_travel_mode(20) # ์ด๋ BlackBox.set_travel_mode(b1, 20) ์ฝ๋์ ๊ฐ์ ๊ฒฐ๊ณผ
print(isinstance(b1, BlackBox)) # b1 ๊ฐ์ฒด๊ฐ BlackBox ํด๋์ค์ ์ธ์คํด์ค์ธ์ง ํ์ธ
print(isinstance(b2, BlackBox)) # b2 ๊ฐ์ฒด๊ฐ BlackBox ํด๋์ค์ ์ธ์คํด์ค์ธ์ง ํ์ธ

๐ ์์ (super, ๋ค์ค ์์, ๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ)
class BlackBox: # ๋ถ๋ชจ ํด๋์ค
def __init__ (self, name, price):
self.name = name
self.price = price
class VideoMaker:
def make(self):
print('์ถ์ต์ฉ ์ฌํ ์์ ์ ์')
class MailSender:
def sen(self):
print('๋ฉ์ผ ๋ฐ์ก')
class TravelBlackBox(BlackBox, VideoMaker, MailSender): # ์์ ํด๋์ค
def __init__ (self, name, price, sd):
super().__init__(name, price) # super()๋ ๋ถ๋ชจ ํด๋์ค๋ฅผ ์๋ฏธ (๋ถ๋ชจ ํด๋์ค์ __init__ ํธ์ถ)
self.sd = sd
def set_travel_mode(self, min):
print(f'{self.name} {min}๋ถ ๋์ ์ฌํ ๋ชจ๋ ON')
class AdvancedTravelBlackBox(TravelBlackBox):
def set_travel_mode(self, min): # ๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ์ด๋ ์์ ํด๋์ค์์ ๋ถ๋ชจ ํด๋์ค์ ๋ฉ์๋๋ฅผ ์ฌ์ ์ํ๋ ๊ฒ
print(str(min) + '๋ถ ๋์ ์ฌํ ๋ชจ๋ ON')
self.make()
self.send()
b1 = BlackBox('๊น๋ง์ด', 200000)
b2 = TravelBlackBox('ํ์์ด', 100000, 64)
b2.make()
b2.send()
๐ pass
class BlackBox:
def __init__(self):
pass # ์ฃผ๋ก ์ฝ๋ ๋ธ๋ก์ด ํ์ํ์ง๋ง ์์ง ๊ตฌํ์ ํ์ง ์์๊ฑฐ๋, ์์๋ก ๋น์๋๊ณ ์ถ์ ๋ ์ฌ์ฉ
def record(self):
pass # ํด๋์ค ๋ฉ์๋ ๋ฟ๋ง ์๋๋ผ ๋ฐ๋ณต๋ฌธ, ์กฐ๊ฑด๋ฌธ, ํจ์ ๋ฑ์๋ ์ฌ์ฉ ๊ฐ๋ฅ
def stop(self):
pass
def format(self):
pass
...
๐ ์์ธ ์ฒ๋ฆฌ
try:
pass # ์ํ ๋ฌธ์ฅ (์๋ฌ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์๋ ๋ฌธ์ฅ)
except:
pass # ์๋ฌ ๋ฐ์ ์ ์ํ ๋ฌธ์ฅ (์๋ฌ ์ํฉ์ด ๋ฐ์ํ์ ๋๋ง ์ํํ ๋ฌธ์ฅ)
else:
pass # ์ ์ ๋์ ์ ์ํ ๋ฌธ์ฅ (์๋ฌ๊ฐ ๋ฐ์ํ์ง ์์์ ๋๋ง ์ํํ ๋ฌธ์ฅ)
finally:
pass # ๋ง์ง๋ง์ผ๋ก ์ํํ ๋ฌธ์ฅ (์๋ฌ ์ฌ๋ถ ์๊ด ์์ด ํญ์ ์ํ๋๋ ๋ฌธ์ฅ)
try:
result = num1 / num2
print(f'์ฐ์ฐ ๊ฒฐ๊ณผ๋ {result}์
๋๋ค')
except ZeroDivisionError: # 0์ผ๋ก ๋๋๋ ๊ฒฝ์ฐ ๋ฐ์ํ๋ ์ค๋ฅ ์ฒ๋ฆฌ
print('0์ผ๋ก ๋๋ ์ ์์ด์')
except TypeError: # ์ฐ์ฐ ๋์์ด ์ซ์๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฐ์ํ๋ ์ค๋ฅ ์ฒ๋ฆฌ
print('๊ฐ์ ํํ๊ฐ ์ด์ํด์')
except Exception as err: # Exception์ ๋ชจ๋ ์ค๋ฅ์ ๊ธฐ๋ณธ์ด ๋๋ ํด๋์ค (์ด๋ฅผ ํตํด ์ค๋ฅ ๋ด์ฉ ํ์ธ ๊ฐ๋ฅ)
print('์๋ฌ๊ฐ ๋ฐ์ํ์ด์:', err)
else:
print('์ ์ ๋์ํ์ด์')
finally:
print('์ํ ์ข
๋ฃ')
# ์ด ์ธ์๋ ๋ค์ํ ๋ด์ฅ Exception ํด๋์ค๊ฐ ์กด์ฌํ๋ค
# Google์์ 'python exceptions' ๊ฒ์ ํ ๊ณต์ ํํ์ด์ง์์ ์ถ๊ฐ์ ์ผ๋ก ํ์ธ ๊ฐ๋ฅ
๐ ๋ชจ๋
# ๋ชจ๋ : ํ๋์ .py ํ์ผ๋ก ์ด๋ฃจ์ด์ง ์ฝ๋ ๋ฌถ์
# ๋ฐฉ๋ฒ
# 1. import ๋ชจ๋
# 2. from ๋ชจ๋ import ๋ณ์, ํจ์ ๋๋ ํด๋์ค
# goodjob.py ํ์ผ
def say():
print('์ฐธ ์ํ์ด์')
# ์๋ก์ด ํ์ผ 1
import goodjob
goodjob.say()
# ์๋ก์ด ํ์ผ 2
from goodjob import say
say()
import random
my_list = ['๊ฐ์', '๋ฐ์', '๋ณด']
print(random.choice(my_list))
# ์ด ์ธ์๋ ๋ค์ํ ๋ด์ฅ ๋ชจ๋์ด ์กด์ฌํ๋ค
# Google์์ 'list of python modules' ๊ฒ์ ํ ๊ณต์ ํํ์ด์ง์์ ์ถ๊ฐ์ ์ผ๋ก ํ์ธ ๊ฐ๋ฅ
๐ ํจํค์ง
# ํจํค์ง : ์ฌ๋ฌ ๊ฐ์ ๋ชจ๋์ ํฌํจํ๋ ๋๋ ํฐ๋ฆฌ
# ๋ฐฉ๋ฒ
# 1. import ํจํค์ง.๋ชจ๋
# 2. from ํจํค์ง import ๋ชจ๋
# nadocoding ํด๋ ๋ด goodjob.py ํ์ผ
def say():
print('์ฐธ ์ํ์ด์')
# nadocoding ํด๋ ๋ด goodbye.py ํ์ผ
def bye():
print('๋ ๋ง๋์')
# nadocoding ํด๋ ๋ด ์๋ก์ด ํ์ผ 1
import nadocoding.goodjob
nadocoding.goodjob.say()
# nadocoding ํด๋ ๋ด ์๋ก์ด ํ์ผ 2
from nadocoding import goodbye
goodbye.bye()
# nadocoding ํด๋ ๋ด ์๋ก์ด ํ์ผ 3
from nadocoding import goodjob, goodbye
goodjob.say()
goodbye.bye()