[ ๋น๋น๋น ] Python ์คํฐ๋ # 2์ฃผ์ฐจ
๐ํ์: ๊น๋ฏผ์, ๋์์ฐ, ๋ฐฐ๋์ค, ์ ์์, ์ํจ์
๐๊ธฐ๊ฐ: 3/12(ํ) ~ 3/18(์) # 2์ฃผ์ฐจ
๐ํ์ต ๋ฒ์: p. 98 ~ 147
๐๋ชฉ์ฐจ
1. ์งํฉ ์๋ฃํ
2. ๋ถ ์๋ฃํ๊ณผ ๋ณ์
3. if๋ฌธ
4. while๋ฌธ
5. for๋ฌธ
** ๋ฐฑ์ค ๋ฌธ์ **
1. ์งํฉ ์๋ฃํ (์์ฑ์: ๊น๋ฏผ์)
์งํฉ(set)์ด๋?
์งํฉ (set) ์ ์งํฉ์ ๊ด๋ จ๋ ๊ฒ์ ์ฝ๊ฒ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ง๋ ์๋ฃํ์ด๋ค
์งํฉ ์๋ฃํ์ ์ด๋ป๊ฒ ๋ง๋ค๊น?
์งํฉ ์๋ฃํ์ ๋ค์๊ณผ ๊ฐ์ด set ํค์๋๋ฅผ ์ฌ์ฉํด ๋ง๋ค ์ ์๋ค.
์์ ๊ฐ์ด set() ์ ๊ดํธ ์์ ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฅํ์ฌ ๋ง๋ค๊ฑฐ๋ ๋ค์๊ณผ ๊ฐ์ด ๋ฌธ์์ด์ ์ ๋ ฅํ์ฌ ๋ง๋ค ์๋ ์๋ค.
์งํฉ ์๋ฃํ์ ํน์ง
• ์ค๋ณต์ ํ์ฉํ์ง ์๋๋ค.
• ์์๊ฐ ์๋ค (Unordered). (์์ “Hello” ์ฐธ์กฐ)
๋ฆฌ์คํธ๋ ํํ์ ์์๊ฐ ์๊ธฐ (ordered) ๋๋ฌธ์ ์ธ๋ฑ์ฑ์ ํตํด ์์๊ฐ์ ์ป์ ์ ์์ง๋ง, set ์๋ฃํ์ ์์๊ฐ ์๊ธฐ (unordered) ๋๋ฌธ์ ์ธ๋ฑ์ฑ์ ํตํด ์์๊ฐ์ ์ป์ ์ ์๋ค. ๋ง์ฝ set ์๋ฃํ์ ์ ์ฅ๋ ๊ฐ์ ์ธ๋ฑ์ฑ์ผ๋ก ์ ๊ทผํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ฆฌ์คํธ๋ ํํ๋ก ๋ณํํ ํ์ ํด์ผ ํ๋ค
๊ต์งํฉ, ํฉ์งํฉ, ์ฐจ์งํฉ ๊ตฌํ๊ธฐ
๊ต์งํฉ ๊ตฌํ๊ธฐ: s1๊ณผ s2์ ๊ต์งํฉ์ ๊ตฌํด ๋ณด์. ๋ค์๊ณผ ๊ฐ์ด ‘&’ ๋ฅผ ์ด์ฉํ๋ฉด ๊ต์งํฉ์ ๊ฐ๋จํ ๊ตฌํ ์ ์๋ค.
๋๋ ๋ค์๊ณผ ๊ฐ์ด intersection ํจ์๋ฅผ ์ฌ์ฉํด๋ ๊ฒฐ๊ณผ๋ ๋์ผํ๋ค.
s2.intersection(s1) ์ ์ฌ์ฉํด๋ ๊ฒฐ๊ณผ๋ ๋์ผํ๋ค.
ํฉ์งํฉ ๊ตฌํ๊ธฐ
‘|’ ๋ฅผ ์ฌ์ฉํ๋ฉด ํฉ์งํฉ์ ๊ตฌํ ์ ์๋ค. ์ด๋ 4, 5, 6 ์ฒ๋ผ ์ค๋ณตํด์ ํฌํจ๋๊ฐ์ 1๊ฐ์ฉ๋ง ํํ๋๋ค.
union ํจ์๋ฅผ ์ฌ์ฉํด๋ ๋๋ค.
s2.union(s1) ์ ์ฌ์ฉํด๋ ๊ฒฐ๊ณผ๋ ๋์ผํ๋ค.
์ฐจ์งํฉ ๊ตฌํ๊ธฐ
โ(๋นผ๊ธฐ) ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฐจ์งํฉ์ ๊ตฌํ ์ ์๋ค.
difference ํจ์๋ฅผ ์ฌ์ฉํด๋ ์ฐจ์งํฉ์ ๊ตฌํ ์ ์๋ค.
์งํฉ ์๋ฃํ ๊ด๋ จ ํจ์
1.๊ฐ 1 ๊ฐ ์ถ๊ฐํ๊ธฐ โ add: . 1๊ฐ์ ๊ฐ๋ง ์ถ๊ฐ add ํ ๋๋ ๋ค์๊ณผ ๊ฐ์ด ํ๋ฉด ๋๋ค.
2.๊ฐ ์ฌ๋ฌ ๊ฐ ์ถ๊ฐํ๊ธฐ โ update: ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ํ๊บผ๋ฒ์ ์ถ๊ฐ (update) ํ ๋๋ ๋ค์๊ณผ ๊ฐ์ด ํ๋ฉด ๋๋ค.
3. ํน์ ๊ฐ ์ ๊ฑฐํ๊ธฐ โ remove: ํน์ ๊ฐ์ ์ ๊ฑฐํ๊ณ ์ถ์ ๋๋ ๋ค์๊ณผ ๊ฐ์ด ํ๋ฉด ๋๋ค.
2. ๋ถ ์๋ฃํ๊ณผ ๋ณ์ (์์ฑ์: ์ํจ์ )
2-1. ๋ถ(bool) ์๋ฃํ์ด๋?
์ฐธ๊ณผ ๊ฑฐ์ง์ ๋ํ๋ด๋ ์๋ฃํ. True์ False ๋จ ๋ ๊ฐ์ง์ ๊ฐ๋ง ๊ฐ์ง๋ค.
2-2. ์๋ฃํ์ ์ฐธ๊ณผ ๊ฑฐ์ง
๋ฌธ์์ด " ", ๋ฆฌ์คํธ,[ ], ํํ ( ), ๋์ ๋๋ฆฌ { } ๋ฑ์ ๊ฐ์ด ๋น์ด ์์ผ๋ฉด False, ๋น์ด ์์ง ์์ผ๋ฉด True๊ฐ์ด ๋ฆฌํด๋๋ค.
์ซ์์์๋ 0์ผ๋ False, 1์ผ๋ True๊ฐ์ด ๋ฆฌํด๋๋ค.
* ์ฐธ๊ณ ๋ก None์ ๊ฑฐ์ง์ ๋ปํ๋ค.
a.pop()์ ๋ฆฌ์คํธ a์ ๋ง์ง๋ง ์์๋ฅผ ๋์ง์ด ๋ด๋ ํจ์. ๊ณ์ ๋ฐ๋ณตํ๋ค๊ฐ ๋ ๋ฆฌ์คํฌ๊ฐ ๋น๋ฉด ์๋ฃํ์ด ๊ฑฐ์ง์ด ๋๋ค.
โถ ์กฐ๊ฑด๋ฌธ์ด ๊ฑฐ์ง์ด ๋๋ฏ๋ก while๋ฌธ break. ('๋ชฉ์ฐจ 4. while๋ฌธ'์์ ๋ ์ ํํ ๋ฐฐ์๋ณด์.)
2-3. ๋ถ ์ฐ์ฐ: ์๋ฃํ์ ์ฐธ๊ณผ ๊ฑฐ์ง์ ํ๋ณํด ๋ณด์ !
2-4. ์๋ฃํ์ ๊ฐ์ ์ ์ฅํ๋ ๊ณต๊ฐ, ๋ณ์
๋ณ์๋ ๋ฌด์์ผ๊น? โถ์๋ฃํ์ ๋ฐ์ดํฐ(๊ฐ)
์ ์ฝ๋์ฒ๋ผ a์ b, c๋ผ๋ ๋ณ์๋ฅผ ์ง์ ํด ๋ณด์. c = [1, 2, 3]์ด๋ผ๊ณ ํ๋ฉด, [1, 2, 3]์ด๋ผ๋ ๊ฐ์ ๊ฐ์ง๋ ๋ฆฌ์คํธ ๋ฐ์ดํฐ๊ฐ ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์์ฑ๋๊ณ , ๋ณ์ c๋ ํด๋น ๋ฆฌ์คํธ๊ฐ ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๊ฒ ๋๋ค.
โถ ๋ฉ๋ชจ๋ฆฌ๋ ์ปดํจํฐ๊ฐ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ตํ๋ ๊ณต๊ฐ์ ๋งํ๋ค.
id๋ ๋ณ์๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ์ฒด์ ์ฃผ์ ๊ฐ์ ๋ฆฌํดํ๋ ํจ์์ด๋ค. ์ ์ฝ๋์์ ๋ณ์ a์ ์ฃผ์ ๊ฐ์ ๋ฆฌํด๊ฐ 140064333922544.
2-5. ๋ฆฌ์คํธ ๋ณต์ฌ
โถ b์ a๋ ์๋ฒฝํ ๋์ผํ๋ค. ์ฃผ์๋ฅผ ํ์ธํด ๋ณด๋ฉด ์ ์ ์๋ค.
โถ ๊ทธ๋์ a ๋ฆฌ์คํธ ์์๊ฐ์ ๋ฐ๊พธ๋ฉด b์ ์์๊ฐ๋ ๋ฐ๋๋ค.
โถ ๊ทธ๋ ๋ค๋ฉด b๋ณ์๋ฅผ ์์ฑํ ๋ a ๋ณ์๊ฐ์ ๊ฐ์ ธ์ค๋ฉด์ a์๋ ๋ค๋ฅธ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋๋ก ๋ง๋ค ์๋ ์์๊น?
(1) [:] ์ด์ฉํ๊ธฐ
(2) copy ๋ชจ๋ ์ด์ฉํ๊ธฐ
โถ ์ ์์์์ b = copy(a)๋ b=a[:]์ ๋์ผํ๋ค.
2-6. ๋ณ์๋ฅผ ๋ง๋๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ
3. if ๋ฌธ (์์ฑ์ : ๋ฐฐ๋์ค)
3-1. if๋ฌธ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ
3-2. ๊ธฐ๋ณธ ์ฐ์ฐ์
3-3. if๋ฌธ ํ์ฉ์ ์ํ ์ฐ์ฐ์
3-4. if๋ฌธ ๋ชจ์๋
3-5. if๋ฌธ์ ๋ค์ํ ํํ ๋ฐฉ์
์์ฑ์ : ์ ์์
โถ while๋ฌธ์ด๋?
while๋ฌธ์ด๋ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ ๋ ์ฝ๋๋ฅผ ๋ฐ๋ณต ์คํํ๋ ์กฐ๊ฑด๋ฌธ์ด๋ค.
์กฐ๊ฑด์ด ์ฐธ์ผ ๋๋ ๋ฐ๋ณต ์คํ, ์กฐ๊ฑด์ด ๊ฑฐ์ง์ผ ๋๋ ๋ฐ๋ณต ์ข ๋ฃ๋ฅผ ํ๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
while๋ฌธ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
while ์กฐ๊ฑด๋ฌธ:
์ํํ ๋ฌธ์ฅ1
์ํํ ๋ฌธ์ฅ2
...
๋ค์์ while๋ฌธ์ ์์ด๋ค.
์ ์์์์ ์กฐ๊ฑด๋ฌธ์ coffee < 5 ์ด๋ค.
์ด๋ ์ปคํผ๊ฐ 5๋ณด๋ค ์์ ๋๋ "์ปคํผ๋ฅผ %d์ ๋ง์ จ์ต๋๋ค."์ด ๊ณ์ ์ถ๋ ฅ๋๋ค.
์ปคํผ๊ฐ 5๊ฐ ๋๋ฉด "์ปคํผ๋ฅผ ๋ชจ๋ ๋ง์ จ์ต๋๋ค."๋ฅผ ์ถ๋ ฅํ๋ค.
โ while๋ฌธ ๊ฐ์ ๋ก ๋น ์ ธ๋์ค๊ธฐ
while๋ฌธ์ ๊ฐ์ ๋ก ๋น ์ ธ๋์ค๊ธฐ ์ํด์๋ break๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
money๊ฐ 300์ผ๋ก ๊ณ ์ ๋์ด ์๊ณ while money:์์ ์กฐ๊ฑด๋ฌธ์ธ money๋ 0์ด ์๋๊ธฐ ๋๋ฌธ์ ํญ์ ์ฐธ์ด๋ค.
์ด๋, while๋ฌธ์ด ํ ๋ฒ ์ํ๋ ๋๋ง๋ค ์ปคํผ์ ์๋ฅผ ํ๋์ฉ ์ค์ด๊ณ , break ๋ฌธ์ด ํธ์ถ๋์ด while๋ฌธ์ ๋น ์ ธ๋๊ฐ ์ ์๋ค.
โ while๋ฌธ์ ๋งจ ์ฒ์์ผ๋ก ๋์๊ฐ๊ธฐ
while๋ฌธ์ ๋น ์ ธ๋๊ฐ์ง ์๊ณ ์กฐ๊ฑด๋ฌธ์ผ๋ก ๋์๊ฐ๊ธฐ ์ํด์๋ continue๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
๋ค์์ ํ์๋ง ์ถ๋ ฅํ๋ ์์ด๋ค.
a๊ฐ 10๋ณด๋ค ์์ ๋๋ง๋ค a๋ 1์ฉ ์ฆ๊ฐํ๊ณ , ๊ทธ ์ซ์๊ฐ 2๋ก ๋๋์ด ๋จ์ด์ง๋ฉด continue๋ฌธ์ ํธ์ถํ๊ณ ๋ค์ ์ฒ์์ผ๋ก ๋์๊ฐ๊ณ ์ฒ์ ๋์ ํ๋ a๋ฅผ ์ถ๋ ฅํ๋ค.
โถ ๋ฌดํ ๋ฃจํ
while์ ์กฐ๊ฑด์ ๋์ True๋ฅผ ์ง์ ํ๋ฉด ๋ฌดํํ ๋ฐ๋ณตํ๋ ๋ฌดํ ๋ฃจํ๊ฐ ๋ง๋ค์ด์ง๋ค.
๋ฌดํ ๋ฃจํ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
while True:
์ํํ ๋ฌธ์ฅ1
์ํํ ๋ฌธ์ฅ2
...
๋ฌดํ ๋ฃจํ์ ๋น ์ง ๊ฒฝ์ฐ, Ctrl+C๋ฅผ ์ฌ์ฉํ์ฌ ๋น ์ ธ๋๊ฐ ์ ์๋ค.
์์ฑ์ : ๋์์ฐ
for ๋ฌธ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ
for ๋ณ์ in ๋ฆฌ์คํธ (๋๋ ํํ, ๋ฌธ์์ด):
์ํํ _๋ฌธ์ฅ1
์ํํ _๋ฌธ์ฅ2
~~~
for ๋ฌธ๊ณผ continue ๋ฌธ
while ๋ฌธ์์ ์ดํด๋ณธ continue ๋ฌธ์ for ๋ฌธ์์๋ ์ฌ์ฉํ ์ ์๋ค. ์ฆ, for ๋ฌธ ์์ ๋ฌธ์ฅ์ ์ํํ๋ ๋์ค continue ๋ฌธ์ ๋ง๋๋ฉด for ๋ฌธ์ ์ฒ์์ผ๋ก ๋์๊ฐ๊ฒ ๋๋ค.
for ๋ฌธ๊ณผ ํจ๊ป ์์ฃผ ์ฌ์ฉํ๋ range ํจ์
>>> a = range(10)
>>> a
range(0,10)
*range(10)์ 0๋ถํฐ 10 ๋ฏธ๋ง์ ์ซ์๋ฅผ ํฌํจํ๋ range ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ์ค๋ค.
์์ ์ซ์์ ๋ ์ซ์๋ฅผ ์ง์ ํ๋ ค๋ฉด range(์์_์ซ์, ๋_์ซ์) ํํ๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ด๋ ๋ ์ซ์๋ ํฌํจ๋์ง ์๋๋ค.
>>> a = range(1,11)
>>> a
range(1,11)
for ์ range ๋ฅผ ์ด์ฉํ ๊ตฌ๊ตฌ๋จ
>>> for i in range(2,10):
for j in range(1,10):
print(i*j, end=" ")
print(' ')
2 4 6 8 10 12 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
~~~
9 18 27 36 45 54 63 72 81
1) 1๋ฒ for ๋ฌธ์์ 2๋ถํฐ 9๊น์ง์ ์ซ์ (range(2,10))๊ฐ ์ฐจ๋ก๋๋ก i์ ๋์ ๋๋ค.
2) i๊ฐ ์ฒ์ 2์ผ ๋ 2๋ฒ for ๋ฌธ์ ๋ง๋๊ฒ ๋๋ค.
3) 2๋ฒ for ๋ฌธ์์ 1๋ถํฐ 9๊น์ง์ ์ซ์ (range(1,10))๊ฐ j์ ๋์ ๋๊ณ ๊ทธ๋ค์ ๋ฌธ์ฅ์ธ print(i*j, end=" ")๋ฅผ ์ํํ๋ค.
4) i๊ฐ 9์ผ ๋๊น์ง ์ ๊ณผ์ ์ด ๋ฐ๋ณต๋๋ค.
๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ ์ฌ์ฉํ๊ธฐ
>>> a = [1,2,3,4]
>>> result = [num*3 for num in a]
>>> print(result)
[3, 6, 9, 12]
for ๋ฌธ์ 2๊ฐ ์ด์ ์ฌ์ฉํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค. for ๋ฌธ์ ์ฌ๋ฌ ๊ฐ ์ฌ์ฉํ ๋์ ๋ฌธ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
[ํํ์ for ํญ๋ณต1 in ๋ฐ๋ณต_๊ฐ๋ฅ_๊ฐ์ฒด1 if ์กฐ๊ฑด๋ฌธ1
for ํญ๋ชฉ2 in ๋ฐ๋ณต_๊ฐ๋ฅ_๊ฐ์ฒด2 if ์กฐ๊ฑด๋ฌธ2
~~~
for ํญ๋ชฉn in ๋ฐ๋ณต_๊ฐ๋ฅ_๊ฐ์ฒดn if ์กฐ๊ฑด๋ฌธn]