๋ง์ฝ if position:์ผ๋ก ํ๊ฒ ๋๋ฉด position์ 0์ด ๋ค์ด์์ ๋ ๊ฐ์ด ๋ค์ด์์์๋ ๋ถ๊ตฌํ๊ณ if position์ False๊ฐ ๋๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ์๊ธด๋ค. ์ด๋ ๊ฒ None๊ณผ ๋น๊ตํด์ผ ํ ๋์๋ ์ง์ ๋น๊ต๋ฅผ ํด์ผํ๋ค.ํ์ด์ฌ์ ์ผํญ ์ฐ์ฐ์(x ? True :
It has k!all emails of n2 does not include kall emails of n3 does not include kelse ๊ฐ ์์ผ๋ฉด for ๋ฌธ์ด break ๊ฐ ๋ ๊ฒฝ์ฐ else ๋ฌธ์ ์คํ๋์ง ์๋๋ค.It has k!all emails of
1. ํจ์ ์ธ์์ default ๊ฐ์ผ๋ก mutable object(๊ฐ๋ณ๊ฐ์ฒด)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ํผํ์ ๐ > ๐ > 2. expressions(ํํ์)์ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํดํ ์ ์๋ค ๐ > ๐ > 3. keyword arguments ๋ฅผ ์ ์ ํ๊ฒ ์ฌ์ฉํ๋ฉด
3\.
ํ์ด์ฌ์์๋ ์จ๋ํํฐ ํจํค์ง๋ ํ์ด์ฌ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํฌํจํ ๋ง์ ๊ณณ์์ ์์ธ๋ฅผ ์ฌ์ฉํ๋ค.์ฌ์ค ํ์ด์ฌ ์ธ์ด ์์ฒด์๋ ์์ธ๊ฐ ๋ค์ด์๋ค. ์๋ฅผ ๋ค์ด, for loop์์๋ ์์ธ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค.์์ ๋ณ์(temp)๋ฅผ ๊ตณ์ด ์ฌ์ฉํ ํ์๊ฐ ์๋ค.ํํ์ ์ฌ์ฉํ๋๊ฒ ํจ์ฌ ๋ช ๋ฃํ
๋ฌธ์์ด์ ์ฐ์์ผ๋ก ๋ณ๊ฒฝํด์ผ ํ ๋, ์ด๋ ๊ฒ ๊ฐ ๋จ๊ณ์์ ์์ ๋ณ์๋ฅผ ๋ง๋ค์ง ๋ง๊ณ ํจ์๋ฅผ ์ด์ด์(Chain) ์ฌ์ฉํ์list ์ ์์๋ค์ ์ฐ๊ฒฐํด์ ํ๋์ ์คํธ๋ง์ผ๋ก ๋ณํํ ๋์๋''.join()์ ์ฌ์ฉํ๋ฉด ๋ ๋น ๋ฅด๊ณ ๋ฉ๋ชจ๋ฆฌ๋ ๋ ์ฌ์ฉํ๋ค.๋ฌผ๋ก '' ์๋ฆฌ์๋ '' ๋ง๊ณ ๋ ์ฐ
list comprehension์ ์ฌ์ฉํ๋ฉด ๊ธฐ์กด ๋ฆฌ์คํธ์ ๊ฐ ์์๋ฅผ ๋๋ฉด์ ์กฐ๊ฑด์ ์ฒดํฌํ๊ณ ๋ณํํด์ ๋ค์ ์ ์ฅํ ๋ ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๋์ฌ์ฃผ๊ณ ,cPython ์ธํฐํ๋ฆฌํฐ๊ฐ ์ต์ ํ๋ฅผ ํด์ค์ ์ฑ๋ฅ์์ ์ด์ ๋ ์๋ค๊ณ ํ๋ค.์์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชฉ๋ก์ ๋์์๋ถํฐ ๊ฑฐ๊พธ๋ก ์ผ ์ง์
if ๋ฌธ์ ์ฌ์ฉํ ํ์๊ฐ ์์ด ์ฝ๋๊ฐ ๋ช ํํด์ง๋ค
Union \- A | BIntersection \- A & BDifference \- A - BSymmetric Difference \- A ^ B
\_\_init\_\_.py ๋ก ๋๋ ํ ๋ฆฌ๋ฅผ ํจํค์ง๋ก ๋ง๋ฆ\_\_init\_\_.py์ด ํฌํจํ ์ ์๋ ์ ์ฉํ ์ฝ๋:how a apackage is initializedwhat names are visibleํ๋์ ํจํค์ง์ ์์ญ ๊ฐ์ ๋ชจ๋์ด ์๋ ๊ฒฝ์ฐ, ์ค์ ๋ก ํด๋ผ์ด์ธํธ
itertools 'Recipes' ์น์ : https://docs.python.org/3/library/itertools.htmlhttps://docs.python.org/3/library/itertools.htmlํ์ผ ๊ฒฝ๋ก๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด์ ๋ณต์กํ๊ฒ
๋๋ถ๋ถ์ ๊ฒฝ์ฐ์๋ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ unittest ๋ชจ๋๋ก ์ถฉ๋ถํ๋ค.ํ์ด์ฌ์ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ถ๋ถ์ด unittest๋ก ํ ์คํธํ๋ค.์ฅ์ :์๋์ผ๋ก test discovery ์ ๊ณตtest cases, test suits(ํ ์คํธ ์ผ์ด์ค๋ฅผ ๋ฌถ์ด๋์ ๊ฒ) ๋ง๋ค ๋ ๊ฐ์ฒด ์งํฅ ๋ฆฌ
\_\_init\_\_.py ๋ก ๋๋ ํ ๋ฆฌ๋ฅผ ํจํค์ง๋ก ๋ง๋ฆ\_\_init\_\_.py์ด ํฌํจํ ์ ์๋ ์ ์ฉํ ์ฝ๋:how a apackage is initializedwhat names are visibleํ๋์ ํจํค์ง์ ์์ญ ๊ฐ์ ๋ชจ๋์ด ์๋ ๊ฒฝ์ฐ, ์ค์ ๋ก ํด๋ผ์ด์ธํธ
ํ์ผ์ ์๋จ์ ์์น์ํ๋ฒณ ์์๋๋ก x, ์ค์ ์ฌ์ฉ ์์๋๋ก xํ์ค import ์์:1\. ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ๋2\. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ๋3\. ํ์ฌ ํ๋ก์ ํธ์ ๋ก์ปฌ ๋ชจ๋
; ๋ก ํ ์ค์ ์ฌ๋ฌ statement๋ฅผ ๋ ์๋ ์์ง๋ง, ์ฝ๋๋ฅผ ์ฝ๊ธฐ๊ฐ ์ด๋ ต๋ค.ํนํ if, else, elif๋ฅผ ํ ์ค์ ๋๋ฉด ์์ ํท๊ฐ๋ฆด๊ฑฐ๋ค.
list comprehension => ๋ชจ๋ ์์๊ฐ ๋ค์ด์๋ listํฌ๊ธฐ๊ฐ ํฐ ๊ฒฝ์ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ถ์กฑgenerator expression => generatorํ์ํ ๋๋ง๋ค ๊ฐ ์์๋ฅผ ์์ฑ๋ฌดํํ ์ํ์ค๋ฅผ ๋ฐ๋ณตํด์ผ ํ ๋๋ ์์ฒญ ํฐ ํฌ๊ธฐ์ ์ํ์ค๋ฅผ ๊ณ์ฐํด์ผ ํ ๋ ์ฌ์ฉ์๊ฐ ๊ณ
1. isinstance ํจ์ ์ฌ์ฉํด์ ๊ฐ์ฒด์ type ์์๋ด๊ธฐ ๐ > ๐ >
namedtuples๋ฅผ ์ฌ์ฉํ๋ฉด index ๋์ ํ๋ ์ด๋ฆ์ผ๋ก ์ ๊ทผํ ์ ์๋ค.index๋ก ์ ๊ทผ
with statement ์ฌ์ฉ -> ๋ฆฌ์์ค ๊ด๋ฆฌ๋ฅผ ์ข๋ ์์ ํ๊ณ ๋ช ํํ๊ฒ ํ ์ ์์ex) file IO๋ง์ฝ if raise_exception(line) ์์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด, ์๋ฌ๋ฅผ ๋ฐ๋ก ์ก๋ ์ฝ๋๊ฐ ์๊ธฐ ๋๋ฌธ์, it will propagate up the sta