์๋ฃ๊ตฌ์กฐ
1. ๋ฆฌ์คํธ(list)
์งํ์ฒ ์นธ ๋ณ๋ก 10๋ช
/ 20๋ช
/ 30๋ช
subway1 = 10
subway2 = 20
subway3 = 30
subway = [10, 20, 30]
print(subway) #[10, 20, 30]
subway = ["์ฌ์ด", "์์ค", "์ธ์"]
print(subway) #['์ฌ์ด', '์์ค', '์ธ์']
์์ค์ด๋ ๋ช ๋ฒ์งธ ์นธ์ ํ๊ณ ์์๊น?
print(subway.index("์์ค")) #1
๋ค์ ์ ๋ฅ์ฅ์์ ์์ด์ฌ๊ฐ ๋ค์ ์นธ์ ํ๋ค๋ฉด?
subway.append("์์ด์ฌ")
print(subway) #['์ฌ์ด', '์์ค', '์ธ์', '์์ด์ฌ']
์์์ด๋ฅผ ์ฌ์ด์ ์์ค ์ฌ์ด ์นธ์ ํ์๋ณด๊ธฐ
subway.insert(1, "์์")
print(subway) #['์ฌ์ด', '์์', '์์ค', '์ธ์', '์์ด์ฌ']
ํ ๋ช
์ฉ ๋ค์์๋ถํฐ ๊บผ๋ด๊ธฐ
print(subway.pop()) #์์ด์ฌ
print(subway) #['์ฌ์ด', '์์', '์์ค', '์ธ์']
๊ฐ์ ์ด๋ฆ์ ์ฌ๋์ด ๋ช ๋ช
์๋์ง ํ์ธ
subway.append("์์ค")
print(subway)
print(subway.count("์์ค")) #2
์ ๋ ฌ
num_list = [5,2,4,3,1]
num_list.sort()
print(num_list) #[1, 2, 3, 4, 5]
์ ๋ ฌ ์์ ๋ค์ง๊ธฐ
num_list.reverse()
print(num_list) #[5, 4, 3, 2, 1]
๋ชจ๋ ์ง์ฐ๊ธฐ
num_list.clear()
print(num_list) #[]
๋ค์ํ ์๋ฃํ ํจ๊ป ์ฌ์ฉ ๊ฐ๋ฅ
mix_list = ["์์ค", 19, True]
print(mix_list) #['์์ค', 19, True]
๋ฆฌ์คํธ ํ์ฅ
num_list = [5,2,4,3,1]
num_list.extend(mix_list)
print(num_list) #[5, 2, 4, 3, 1, '์์ค', 19, True]
2. ์ฌ์ (dict)
๊ฐ์ธ ์ฌ๋ฌผํจ๊ณผ key๊ฐ 1:1์ธ ๊ฒ ์ฒ๋ผ ์ค๋ณต๋์ง ์๋๋ค
์ ์ํ key
cabinet= {3:"์์ค", 100:"์์ด์ฌ"} #์บ๋น๋ท์ 3๋ฒ ์ด์ ์์ค, 100๋ฒ ์ด์ ์์ด์ฌ
์ด์ ์ฐพ๊ธฐ
print(cabinet[3]) #์์ค
print(cabinet.get(100)) #์์ด์ฌ
์ด์ ์ฐพ๊ธฐ ์ค๋ฅ ๋น๊ต
print(cabinet[5]) #KeyError: 5 ์ค๋ฅ ๋ฐ์ ์ดํ ๋ฐ๋ก ํ๋ก๊ทธ๋จ ์ข
๋ฃ
print(cabinet.get(5)) #None ๊ณ์ ํ๋ก๊ทธ๋จ ์งํ
print(cabinet.get(5, "์ฌ์ฉ ๊ฐ๋ฅ")) #์ฌ์ฉ ๊ฐ๋ฅ. 5๋ผ๋ ๊ฐ์ด ์์ผ๋ฉด '์ฌ์ฉ ๊ฐ๋ฅ' ๋ฐํ
์ด์ ์ฐพ๊ธฐ2
print(3 in cabinet) #Ture
print(5 in cabinet) #False
๋ฌธ์ํ key
cabinet= {"A-3":"์์ค", "B-100":"์์ด์ฌ"}
print(cabinet["A-3"]) #์์ค
์ ์๋
cabinet["C-20"] = "์ธ์" #C-20์ ์ด๋ฏธ ๊ฐ์ด ์๋ค๋ฉด ๋์ฒด๋จ
print(cabinet) #{'A-3': '์์ค', 'B-100': '์์ด์ฌ', 'C-20': '์ธ์'}
cabinet["B-100"] = "์ฌ์ด"
print(cabinet) #{'A-3': '์์ค', 'B-100': '์ฌ์ด', 'C-20': '์ธ์'}
๊ฐ ์๋
del cabinet["A-3"]
print(cabinet) #{'B-100': '์ฌ์ด', 'C-20': '์ธ์'}
key๋ง ์ถ๋ ฅ
print(cabinet.keys()) #dict_keys(['B-100', 'C-20'])
value๋ง ์ถ๋ ฅ
print(cabinet.values()) #dict_values(['์ฌ์ด', '์ธ์'])
kes, value ๋ชจ๋ ์ถ๋ ฅ
print(cabinet.items()) #dict_items([('B-100', '์ฌ์ด'), ('C-20', '์ธ์')])
ํ์
cabinet.clear()
print(cabinet) #{}
3.tuple
๋ด์ฉ ๋ณ๊ฒฝ/์ถ๊ฐ ์ ๋๋ ๋์ ์๋๊ฐ ๋น ๋ฆ
๊ฐ ์ง์
menu = ("๋๊ฐ์ค", "์น์ฆ๊ฐ์ค")
print(menu[0]) #๋๊ฐ์ค
๋ด์ฉ์ถ๊ฐ error
menu.add("์์ ๊ฐ์ค") #AttributeError: 'tuple' object has no attribute 'add'
๊ฐ ์ง์ 2
name = "์ด๋ด"
age = 27
hobby = "๋ธ๋ก๊ทธ"
print(name, age, hobby) #์ด๋ด 27 ๋ธ๋ก๊ทธ
๊ฐ ์ง์ 3
(name, age, hobby) = ("์ด๋ด", 27, "๋ธ๋ก๊ทธ")
print(name, age, hobby) #์ด๋ด 27 ๋ธ๋ก๊ทธ
4.์ธํธ, ์งํฉ(set)
์ค๋ณต ๋ถ๊ฐ, ์์ ์์
my_set = {1,2,3,3,3}
print(my_set) #{1, 2, 3}
๊ต์งํฉ ์ถ๋ ฅ
java = {"์ฌ์ด", "์์ค", "๋ฐฅ์ด"}
python = set(["์ฌ์ด", "์์"])
print(java & python) #{'์ฌ์ด'}
print(java.intersection(python)) #{'์ฌ์ด'}
ํฉ์งํฉ ์ถ๋ ฅ
print(java | python) #{'์์ค', '์์', '์ฌ์ด', '๋ฐฅ์ด'}
print(java.union(python)) #{'์์ค', '์์', '์ฌ์ด', '๋ฐฅ์ด'}
์ฐจ์งํฉ ์ถ๋ ฅ
print(java-python) #{'์์ค', '๋ฐฅ์ด'}
print(java.difference(python)) #{'์์ค', '๋ฐฅ์ด'}
๊ฐ ์ถ๊ฐ
python.add("์์")
print(python) #{'์ฌ์ด', '์์'}
๊ฐ ๋นผ๊ธฐ
java.remove("์ฌ์ด")
print(java) #{'์์ค', '๋ฐฅ์ด'}
์๋ฃ๊ตฌ์กฐ ๋ณ๊ฒฝ
menu = {"์ปคํผ", "์ฐ์ ", "์ฃผ์ค"} #{}์ด๋ฏ๋ก setํ์
print(menu, type(menu)) #<class 'set'>
menu = list(menu)
print(menu, type(menu)) #<class 'list'>
menu = tuple(menu)
print(menu, type(menu)) #<class 'tuple'>
menu = set(menu)
print(menu, type(menu)) #<class 'set'>
Qize4) ๋ํ ์ฐธ์๋ฅ ์ ๋์ด๊ธฐ ์ํด ๋๊ธ ์ด๋ฒคํธ๋ฅผ ์งํํฉ๋๋ค.
๋๊ธ ์์ฑ์๋ค ์ค ์ถ์ฒจ์ ํตํด 1๋ช
์๊ฒ ์นํจ, 3๋ช
์ ์ปคํผ ์ฟ ํฐ์ ๋ฐ๊ฒ ๋ฉ๋๋ค.
์ถ์ฒจ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์กฐ๊ฑด1 : ํธ์์ ๋๊ธ์ 20๋ช
์ด ์์ฑํ๊ณ , ์์ด๋๋ 1~20์ด๋ผ๊ณ ๊ฐ์
์กฐ๊ฑด2 : ๋๊ธ ๋ด์ฉ๊ณผ ์๊ด์์ด ๋ฌด์์๋ก ์ถ์ฒจํ๋, ์ค๋ณต ๋ถ๊ฐ
์กฐ๊ฑด3 : random๋ชจ๋์ shuffle๊ณผ sample์ ํ์ฉ
์ถ๋ ฅ ์์
-- ๋น์ฒจ์ ๋ฐํ --
์นํจ ๋น์ฒจ์ : 1
์ปคํผ ๋น์ฒจ์ : [2, 3, 4]
-- ์ถํํฉ๋๋ค --
ํ์ฉ ์์
from random import *
lst = [1,2,3,4,5]
print(lst)
shuffle(lst) #์คํํ ๋๋ง๋ค ์์ ๋ฐ๋
print(lst) #[5, 3, 1, 2, 4]
print(sample(lst,1)) #1๊ฐ๋งํผ lst์์ ๋ฌด์์๋ก ์ถ์ถ
์ ๋ต
from random import *
users = range(1,21) #1~21 ์ซ์ ์์ฑ
print(type(users)) #<class 'range'>
users = list(users) #<class 'list'>
shuffle(users)
print(users)
winners = sample(users, 4)
print("-- ๋ฉ์ฒจ์ ๋ฐํ --")
print( "์นํจ ๋น์ฒจ์ : {0}".format(winners[0]))
print("์ปคํผ ๋น์ฒจ์ : {0}".format(winners[1:]))
print("-- ์ถํํฉ๋๋ค --")
์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ
์กฐ๊ฑด๋ฌธ if
weather = "๋ง์์"
if weather == "๋น":
print("์ฐ์ฐ์ ์ฑ๊ธฐ์ธ์")
#์กฐ๊ฑด์ด ๋ง์ผ๋ฉด ๋ฌธ์ฅ์ ์คํํ๊ณ ๋ฐ๋ก ๋น ์ ธ๋์ด
elif weather == "๋ฏธ์ธ๋จผ์ง":
print("๋ง์คํฌ๋ฅผ ์ฑ๊ธฐ์ธ์")
#๋น๊ฐ ์๋์๋ค๋ฉด ๋ค์ ์กฐ๊ฑด ์คํํ๊ณ ๋ฌธ์ฅ ๋ง์ผ๋ฉด ๋น ์ ธ๋์ด
else:
print("์ค๋น๋ฌผ ํ์ ์์ด์.") #์ค๋น๋ฌผ ํ์ ์์ด์.
#๋ชจ๋ ์กฐ๊ฑด์ด ์ ๋ง์ผ๋ฉด ์ถ๋ ฅ
๋ณ์ ์ง์ ์
๋ ฅ
weather = input("์ค๋ ๋ ์จ๋ ์ด๋์?")
if weather == "๋น":
print("์ฐ์ฐ์ ์ฑ๊ธฐ์ธ์")
elif weather == "๋ฏธ์ธ๋จผ์ง":
print("๋ง์คํฌ๋ฅผ ์ฑ๊ธฐ์ธ์")
else:
print("์ค๋น๋ฌผ ํ์ ์์ด์.") #์ฐ์ฐ์ ์ฑ๊ธฐ์ธ์
์กฐ๊ฑด ์ถ๊ฐ
weather = input("์ค๋ ๋ ์จ๋ ์ด๋์?")
if weather == "๋น" or weather == "๋":
print("์ฐ์ฐ์ ์ฑ๊ธฐ์ธ์")
elif weather == "๋ฏธ์ธ๋จผ์ง":
print("๋ง์คํฌ๋ฅผ ์ฑ๊ธฐ์ธ์")
else:
print("์ค๋น๋ฌผ ํ์ ์์ด์.") #์ฐ์ฐ์ ์ฑ๊ธฐ์ธ์
temp = int(input("๊ธฐ์จ์ ์ด๋์?")) #int : ์ ์ํ
if 30 <= temp:
print("๋๋ฌด ๋์์. ๋๊ฐ์ง ๋ง์ธ์.")
elif 10 <= temp and temp < 30:
print("๊ด์ฐฎ์ ๋ ์จ์์.")
elif 0 <= temp < 10 :
print("์ธํฌ๋ฅผ ์ฑ๊ธฐ์ธ์")
else:
print("๋๋ฌด ์ถ์์. ๋๊ฐ์ง ๋ง์ธ์.")
#20 -> ๊ด์ฐฎ์ ๋ ์จ์์
#-20 -> ๋๋ฌด ์ถ์์. ๋๊ฐ์ง ๋ง์ธ์.
๋ฐ๋ณต๋ฌธ for
print("๋๊ธฐ๋ฒํธ : 1")
print("๋๊ธฐ๋ฒํธ : 2")
print("๋๊ธฐ๋ฒํธ : 3")
print("๋๊ธฐ๋ฒํธ : 4")
์๊ฐ ์ปค์ง๋ฉด?
for waiting_no in [0,1,2,3,4]:
print("๋๊ธฐ๋ฒํธ : {0}".format(waiting_no))
#๋ฒ์ ๋ด์ ๊ฐ๋ค์ด ์์๋๋ก ๋ค์ด๊ฐ๊ณ -> print๋ฌธ์์ ์์๋๋ก ์ถ๋ ฅ
for waiting_no in range(1, 6):
print("๋๊ธฐ๋ฒํธ : {0}".format(waiting_no))
#1๋ถํฐ 6๋ฏธ๋ง ๋ด์์ for๋ฌธ ์คํ
starbucks = ["์๋ชฌ์คํฐ", "ํ์นด", "์ ์ด์"]
for customer in starbucks:
print("{0} ๊ณ ๊ฐ๋, ์ปคํผ๊ฐ ์ค๋น๋์์ต๋๋ค.".format(customer))
์๋ชฌ์คํฐ ๊ณ ๊ฐ๋, ์ปคํผ๊ฐ ์ค๋น๋์์ต๋๋ค.
ํ์นด ๊ณ ๊ฐ๋, ์ปคํผ๊ฐ ์ค๋น๋์์ต๋๋ค.
์ ์ด์ ๊ณ ๊ฐ๋, ์ปคํผ๊ฐ ์ค๋น๋์์ต๋๋ค.
๋ฐ๋ณต๋ฌธ2 while
customer = "๋ฌธ์ฌ์ธ"
index = 5
while index >=1 :
print("{0} ๊ณ ๊ฐ๋, ์ปคํผ๊ฐ ์ค๋น๋์์ต๋๋ค. {1}๋ฒ ๋จ์์ด์.".format(customer, index))
index -= 1
if index == 0:
print("์ปคํผ๋ ํ๊ธฐ์ฒ๋ถ ๋์์ต๋๋ค.")
#5๋ฒ ๋ฐ๋ณต ํ ๋ง์ง๋ง print๋ฌธ ๋ฆฌํด
customer = "์ํด๋ฐํด"
index = 1
while True:
print("{0} ๊ณ ๊ฐ๋, ์ปคํผ๊ฐ ์ค๋น๋์์ต๋๋ค. ํธ์ถ{1}ํ".format(customer, index))
index += 1
#๋ฌดํ๋ฃจํ Ctrl + C๋ก ๋น ์ ธ๋์ค๊ธฐ
customer = "๊ณ ๊ฐ๋น"
person = "Unkown"
while person != customer:
print("{0} ๊ณ ๊ฐ๋, ์ปคํผ๊ฐ ์ค๋น๋์์ต๋๋ค.".format(customer))
person = input("์ด๋ฆ์ด ์ด๋ป๊ฒ ๋์ธ์?")
#๊ณ ๊ฐ๋น ๊ณ ๊ฐ๋, ์ปคํผ๊ฐ ์ค๋น๋์์ต๋๋ค.
#์ด๋ฆ์ด ์ด๋ป๊ฒ ๋์ธ์? ๋ฌธ์ฌ์ธ -> ๊ณ์ ๋ฐ๋ณต
#์ด๋ฆ์ด ์ด๋ป๊ฒ ๋์ธ์? ๊ณ ๊ฐ๋น -> while๋ฌธ ํ์ถ
๋ฐ๋ณต๋ฌธ ๋ด์์ ์ฌ์ฉ๋๋ countinue, break
absent = [2, 5] #๊ฒฐ์
for student in range(1, 11): #์ถ์๋ฒํธ 1~10
if student in absent:
continue
print("{0}์, ์ฑ
์ฝ์ด๋ด.".format(student))
1์, ์ฑ
์ฝ์ด๋ด.
3์, ์ฑ
์ฝ์ด๋ด.
4์, ์ฑ
์ฝ์ด๋ด.
6์, ์ฑ
์ฝ์ด๋ด.
7์, ์ฑ
์ฝ์ด๋ด.
8์, ์ฑ
์ฝ์ด๋ด.
9์, ์ฑ
์ฝ์ด๋ด.
10์, ์ฑ
์ฝ์ด๋ด.
* ๋ฌธ์ฅ์ ๋ฐ๋ณต์ํค์ง ์๊ณ ๋ค์ ๋ฌธ์ฅ ๊ณ์ ์งํ
absent = [2, 5] #๊ฒฐ์
no_book = [7] #์ฑ
์ด ์๋ ํ์
for student in range(1, 11):
if student in absent:
continue
elif student in no_book:
print("์ค๋ ์์
์ฌ๊ธฐ๊น์ง. {0}๋ ๊ต๋ฌด์ค๋ก ๋ฐ๋ผ์".format(student))
break
print("{0}์, ์ฑ
์ฝ์ด๋ด.".format(student))
1์, ์ฑ
์ฝ์ด๋ด.
3์, ์ฑ
์ฝ์ด๋ด.
4์, ์ฑ
์ฝ์ด๋ด.
6์, ์ฑ
์ฝ์ด๋ด.
์ค๋ ์์
์ฌ๊ธฐ๊น์ง. 7๋ ๊ต๋ฌด์ค๋ก ๋ฐ๋ผ์
* continue๋ฅผ ๋ง๋๋ฉด ๋์ด์ ์งํํ์ง ์๊ณ ๋ค์ ๋ฌธ์ฅ์ผ๋ก, break๋ฅผ ๋ง๋๋ฉด ๋ฐ๋ก ๋ฐ๋ณต๋ถ์ ํ์ถ
for๋ฌธ ํ์ฉ
์ถ์๋ฒํธ 1,2,3,4... ์์ 100์ ๋ถ์ด๊ธฐ๋ก ํจ.
student = [1,2,3,4,5]
print(student) #[1, 2, 3, 4, 5]
student = [i+100 for i in student]
print(student) #[101, 102, 103, 104, 105]
ํ์ ์ด๋ฆ์ ๊ธธ์ด๋ก ๋ณํ
student = ["Jane", "Sam", "Gabin"]
student = [len(i) for i in student]
print(student) #[4, 3, 5]
ํ์ ์ด๋ฆ์ ๋๋ฌธ์๋ก ๋ณํ
student = ["Jane", "Sam", "Gabin"]
student = [i.upper() for i in student]
print(student) #['JANE', 'SAM', 'GABIN']
Quiz) 50๋ช
์ ์น๊ฐ๊ณผ ๋งค์นญ ๊ธฐํ๊ฐ ์์ ๋, ์ด ํ์น ์น๊ฐ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด๋ผ.
์กฐ๊ฑด1 : ์น๊ฐ ๋ณ ์ดํ ์์ ์๊ฐ์ 5~50๋ถ ์ฌ์ด์ ๋์
์กฐ๊ฑด2 : ์์ ์๊ฐ 5๋ถ~15๋ถ ์ฌ์ด์ ์น๊ฐ๋ง ๋งค์นญํด์ผ ํ๋ค.
์ถ๋ ฅ๋ฌธ ์์
[0] 1๋ฒ์งธ ์๋ (์์์๊ฐ : 15๋ถ)
[ ] 2๋ฒ์งธ ์๋ (์์์๊ฐ : 50๋ถ)
[0] 3๋ฒ์งธ ์๋ (์์์๊ฐ : 5๋ถ)
...
[0] 50๋ฒ์งธ ์๋ (์์์๊ฐ : 16๋ถ)
์ด ํ์น ์น๊ฐ : 2๋ถ
์ ๋ต
from random import *
cnt = 0 #์ด ํ์น ์น๊ฐ ์
for i in range(1, 51): #1~50 ๋์ ์์ฑ
time = randrange(5, 51) #5~50 ๋์ ์์ฑ
if 5 <= time <= 15:
print("[0] {0}๋ฒ์งธ ์๋ (์์์๊ฐ : {1}๋ถ)".format(i, time))
cnt += 1
else:
print("[] {0}๋ฒ์งธ ์๋ (์์์๊ฐ : {1}๋ถ)".format(i, time))
print("์ด ํ์น ์น๊ฐ : {0}๋ถ".format(cnt)) #์ด ํ์น ์น๊ฐ : 28๋ถ
์ถ์ฒ : https://youtu.be/kWiCuklohdY [01:22:35~02:28:35]
'๊ฐ์ธ๊ณต๋ถ > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
43. Python ์ ์ด๋ฌธ ์ฐ์ต๋ฌธ์ (0) | 2021.11.03 |
---|---|
42. Python ๊ธฐ๋ณธ๋ฌธ๋ฒ ์ฐ์ต๋ฌธ์ (0) | 2021.10.31 |
38. Python Basic3 (๋ฏธ๊ธฐ์ฌ) (0) | 2021.10.24 |
37. Python ๋ฐ๋ณต๋ฌธ ์ฐ์ต๋ฌธ์ (0) | 2021.10.23 |
26. Python Basic (0) | 2021.10.10 |