๐ํ์: ๊น๋ฏผ์, ๋์์ฐ, ๋ฐฐ๋์ค, ์ ์์, ์ํจ์
๐๊ธฐ๊ฐ: 3/19(ํ) ~ 3/25(์) # 3์ฃผ์ฐจ
๐ํ์ต ๋ฒ์: p. 149 ~ 180
๐๋ชฉ์ฐจ
1. ํจ์(1)
2. ํจ์(2)
3. ์ฌ์ฉ์ ์ ์ถ๋ ฅ
4. ํ์ผ์ ์ฝ๊ณ ์ฐ๋ ๋ฐฉ๋ฒ
5. ํ๋ก๊ทธ๋จ์ ์ ์ถ๋ ฅ
** ๋ฐฑ์ค ๋ฌธ์ **
1. ํจ์(1) (์์ฑ์ : ์ ์์)
โถ ํจ์๋?
ํจ์๋ ์ ๋ ฅ๊ฐ์ ๊ฐ์ง๊ณ ์ด๋ค ์ผ์ ์ํํ ํ ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์ ๋ด์ด ๋๋ ๊ฒ์ด๋ค.
ํจ์๋ฅผ ์ด์ฉํ๋ฉด ๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ถ๋ถ์ ๋ฌถ์ ์ ์๋ค.
ํ์ด์ฌ ํจ์์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
def ํจ์_์ด๋ฆ(๋งค๊ฐ๋ณ์):
์ํํ _๋ฌธ์ฅ1
์ํํ _๋ฌธ์ฅ2
์ด๋, def๋ define์ ์ฝ์์ด๋ค.
๋ค์์ while๋ฌธ์ ์์ด๋ค.
์ ์์์์ a,b๋ ๋งค๊ฐ๋ณ์(parameter), 3,4๋ ์ธ์(arguments)์ด๋ค.
โ ํจ์์ 4๊ฐ์ง ์ ํ
1. ์ผ๋ฐ์ ์ธ ํจ์
- ์ ๋ ฅ๊ฐ ใ ๋ฆฌํด๊ฐ o
- [์ฌ์ฉ๋ฒ] ๋ฆฌํด ๊ฐ์ ๋ฐ์ ๋ณ์ + ํจ์ ์ด๋ฆ(์ ๋ ฅ ์ธ์1, ์ ๋ ฅ ์ธ์2, ...)
2. ์ ๋ ฅ๊ฐ์ด ์๋ ํจ์
- ์ ๋ ฅ๊ฐ x ๋ฆฌํด๊ฐ o
- [์ฌ์ฉ๋ฒ] ๋ฆฌํด ๊ฐ์ ๋ฐ์ ๋ณ์ = ํจ์ ์ด๋ฆ( )
3. ๋ฆฌํด๊ฐ์ด ์๋ ํจ์
- ์ ๋ ฅ๊ฐ o ๋ฆฌํด๊ฐ x
- [์ฌ์ฉ๋ฒ] ํจ์ ์ด๋ฆ(์ ๋ ฅ ์ธ์1, ์ ๋ ฅ ์ธ์2, ...)
4. ์ ๋ ฅ๊ฐ๋, ๋ฆฌํด๊ฐ๋ ์๋ ํจ์
- ์ ๋ ฅ๊ฐ x ๋ฆฌํด๊ฐ x
- [์ฌ์ฉ๋ฒ] ํจ์ ์ด๋ฆ( )
โ ๋งค๊ฐ๋ณ์๋ฅผ ์ง์ ํ์ฌ ํธ์ถํ๊ธฐ
์์๋ฅผ ๋ฐ๊พธ์ด์ ํธ์ถํ๊ณ ์ถ์ ๊ฒฝ์ฐ,
ํจ์๋ฅผ ํธ์ถํ ๋ ๋งค๊ฐ ๋ณ์๋ฅผ ์ง์ ํ ์ ์๋ค.
์ ์์์์ sub ํจ์๋ ์ฒซ ๋ฒ์งธ ์์์ ๋ ๋ฒ์งธ ์๋ฅผ ๋บ์ ํ๋ ํจ์์ด๋ค.
๊ทธ๋ฐ๋ฐ ๋งค๊ฐ๋ณ์๋ฅผ ์ง์ ํ๋ค๋ฉด, ์์์ ์๊ด์์ด ์ฌ์ฉํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค.
โ ์ ๋ ฅ๊ฐ์ด ๋ช ๊ฐ๊ฐ ๋ ์ง ๋ชจ๋ฅผ ๋
์ ๋ ฅ๊ฐ์ด ์ฌ๋ฌ ๊ฐ์ผ ๋ ๊ทธ ์ ๋ ฅ๊ฐ์ ๋ชจ๋ ๋ํด์ฃผ๋ ํจ์๊ฐ ์๋ค๊ณ ๊ฐ์ ํด๋ณด์.
์ด๋ ์ ๋ ฅ๊ฐ์ด ๋ช ๊ฐ์ธ์ง ๋ชจ๋ฅธ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น?
์ฌ๋ฌ ๊ฐ์ ์ ๋ ฅ๊ฐ์ ๋ฐ๋ ํจ์ ๋ง๋ค๊ธฐ
๋งค๊ฐ๋ณ์ ์์ *๋ฅผ ๋ถ์ด๋ฉด ์ ๋ ฅ๊ฐ์ ์ ๋ถ ๋ชจ์ ํํ๋ก ๋ง๋ค์ด ์ฃผ๊ธฐ ๋๋ฌธ์
์ ๋ ฅ๊ฐ์ด ๋ช ๊ฐ์ด๋ ์๊ด์์ด ์ฌ์ฉํ ์ ์๋ค.
์ด๋ ๋งค๊ฐ๋ณ์๋ args(arguments์ ์ฝ์)๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
ํค์๋ ๋งค๊ฐ๋ณ์ kwargs
๋งค๊ฐ๋ณ์ ์์ *๋ฅผ ๋ ๊ฐ ๋ถ์ด๋ฉด ๋งค๊ฐ๋ณ์๋ ๋์ ๋๋ฆฌ๊ฐ ๋๊ณ ,
๋ชจ๋ Key=Value ํํ์ ์ ๋ ฅ๊ฐ์ด ๊ทธ ๋์ ๋๋ฆฌ์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์
์ ๋ ฅ๊ฐ์ด ๋ช ๊ฐ์ด๋ ์๊ด์์ด ์ฌ์ฉํ ์ ์๋ค.
์ด๋ ๋งค๊ฐ๋ณ์๋ kwargs(keyword arguments์ ์ฝ์)๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
2. ํจ์(2) (์์ฑ์ : ๋ฐฐ๋์ค)
1. ํจ์์ ๋ฆฌํด๊ฐ
๋ฆฌํด๊ฐ์ a+b, a*b๋ก 2๊ฐ์ธ๋ฐ, ๋ฆฌํด๊ฐ ๋ณ์๋ result ํ๋์ด๋ฏ๋ก ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒ ๊ฐ์ง๋ง, ๋ฐ์ํ์ง ์๋๋ค. ํจ์์ ๋ฆฌํด๊ฐ์ ๋ฌด์กฐ๊ฑด 1๊ฐ๋ก add_and_mul์ ๋ฆฌํด๊ฐ์ ํํ๊ฐ ํ๋์ธ (a+b, a*b)๋ก ๋ฆฌํด๋๋ค. ๋ง์ฝ, ์ด ํํ๊ฐ์ ๋ถ๋ฆฌํ๊ณ ์ถ์ผ๋ฉด result1, result2์ฒ๋ผ ๋๋ ์ ๋ฐ์ ์๋ ์๋ค.
ํจ์๋ ๋ฆฌํด๋ฌธ์ ๋ง๋๋ ์๊ฐ, ๋ฆฌํด๊ฐ์ ๋ฐํํ ํ ํจ์๋ฅผ ๋น ์ ธ๋๊ฐ๊ฒ ๋๋ค.
2. return์ ๋ ๋ค๋ฅธ ์ฐ์์
3. ๋งค๊ฐ๋ณ์์ ์ด๊ธฐ๊ฐ
์ ํจ์์์ man=True์ฒ๋ผ ๋งค๊ฐ๋ณ์์ ๋ฏธ๋ฆฌ ๊ฐ์ ๋ฃ์ด ์ฃผ๋ ๊ฒ์ ๋งค๊ฒจ๋ณ์์ ์ด๊ธฐ๊ฐ์ ์ค์ ํ๋ค๊ณ ํ๋ค. ์์ ์์์์ man์ ์ ๋ ฅ๊ฐ์ ์ฃผ์ง ์์๋ ์ด๊ธฐ๊ฐ True๋ฅผ ๊ฐ๊ฒ ๋๋ค. ๋ณ์์ ์ด๊ธฐ๊ฐ์ด ์๋ ๋ค๋ฅธ ๊ฐ์ ๋์ ํ ์ ์๋ค๋ ์ ์ ๋ช ์ฌํ์.
4. ํจ์ ์ ๋ณ์์ ํจ๋ ฅ ๋ฒ์
5. ํจ์ ์์์ ํจ์ ๋ฐ ๋ณ์ ๋ณ๊ฒฝํ๊ธฐ
6. lambda ์์ฝ์ด
lambda๋ ํจ์๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํ๋ ์์ฝ์ด๋ก, def ์ ์ญํ ์ด ๊ฐ๋ค.
๋ณดํต ํจ์๋ฅผ ํ ์ค๋ก ๊ฐ๊ฒฐํ๊ฒ ๋ง๋ค ๋ ์ฌ์ฉํ๋ค.
3. ์ฌ์ฉ์ ์ ์ถ๋ ฅ (์์ฑ์: ์ํจ์ )
1. ์ฌ์ฉ์ ์ ๋ ฅ ํ์ฉํ๊ธฐ: ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ ์ด๋ค ๋ณ์์ ๋์ ํ๊ณ ์ถ๋ค๋ฉด?
โถ input ์ฌ์ฉํ๊ธฐ
โถ ํ๋กฌํํธ๋ฅผ ๋์ ์ฌ์ฉ์ ์ ๋ ฅ๋ฐ๊ธฐ: input("์๋ด_๋ฌธ๊ตฌ")
2. print ์์ธํ ์๊ธฐ
โถ ๋ฐ์ดํฐ ์ถ๋ ฅ
โถ ๋ฐ์ดํ๋ก ๋๋ฌ์ธ์ธ ๋ฌธ์์ด์ + ์ฐ์ฐ๊ณผ ๋์ผ
โถ ํ ์ค์ ๊ฒฐ๊ด๊ฐ ์ถ๋ ฅํ๊ธฐ
๋งค๊ฐ๋ณ์ end๋ฅผ ์ฌ์ฉํด ๋ ๋ฌธ์๋ฅผ ์ง์ . end ๋งค๊ฐ๋ณ์์ ์ด๊น๊ฐ์ ์ค๋ฐ๊ฟ(\n) ๋ฌธ์์ด๋ค. (์คํฐ๋ 2์ฃผ์ฐจ for๋ฌธ ์ฐธ๊ณ )
4. ํ์ผ์ ์ฝ๊ณ ์ฐ๋ ๋ฐฉ๋ฒ (์์ฑ์: ๊น๋ฏผ์)
ํ์ผ ์์ฑํ๊ธฐ:
๋ค์ ์ฝ๋๋ฅผ IDLE ์๋ํฐ๋ก ์์ฑํ์ฌ ์คํํด ๋ณด์.
ํ๋ก๊ทธ๋จ์ ์คํํ ๋๋ ํฐ๋ฆฌ์ ์๋ก์ด ํ์ผ์ด ํ๋ ์์ฑ๋ ๊ฒ์ ํ์ธํ ์ ์์ ๊ฒ์ด๋ค. ํ์ผ์ ์์ฑํ๊ธฐ ์ํด ํ์ด์ฌ ๋ด์ฅ ํจ์ open์ ์ฌ์ฉํ๋ค. open ํจ์๋ ๋ค์๊ณผ ๊ฐ์ด ‘ํ์ผ ์ด๋ฆ’๊ณผ ‘ํ์ผ ์ด๊ธฐ ๋ชจ๋’๋ฅผ ์ ๋ ฅ๊ฐ์ผ๋ก ๋ฐ๊ณ ๊ฒฐ๊ด๊ฐ์ผ๋ก ํ์ผ ๊ฐ์ฒด๋ฅผ ๋ฆฌํดํ๋ค.
ํ์ผ ์ด๊ธฐ ๋ชจ๋์๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ๋ค์ด ์๋ค.
ํ์ผ์ ์ฐ๊ธฐ ๋ชจ๋๋ก ์ด๋ฉด ํด๋น ํ์ผ์ด ์ด๋ฏธ ์กด์ฌํ ๊ฒฝ์ฐ ์๋ ์๋ ๋ด์ฉ์ด ๋ชจ๋ ์ฌ๋ผ์ง๊ณ ํด๋น ํ์ผ์ด ์กด์ฌํ์ง ์์ผ๋ฉด ์๋ก์ด ํ์ผ์ด ์์ฑ๋๋ค. ์ ์์์๋ ๋๋ ํฐ๋ฆฌ์ ํ์ผ์ด ์๋ ์ํ์์ ‘์ํ์ผ.txt’ ํ์ผ์ ์ฐ๊ธฐ ๋ชจ๋์ธ ’w’๋ก ์ด์๊ธฐ ๋๋ฌธ์ ‘์ํ์ผ.txt’ ๋ผ๋ ์ด๋ฆ์ ์๋ก์ด ํ์ผ์ด ํ์ฌ ๋๋ ํฐ๋ฆฌ์ ์์ฑ๋์๋ค. ๋ง์ฝ ‘์ํ์ผ.txt’ ํ์ผ์ C:/doit ๋๋ ํฐ๋ฆฌ์ ์์ฑํ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์์ฑํด์ผ ํ๋ค.
์ ์์์ f.close() ๋ ์ด๋ ค ์๋ ํ์ผ ๊ฐ์ฒด๋ฅผ ๋ซ์ ์ฃผ๋ ์ญํ ์ ํ๋ค. ์ฐ๊ธฐ๋ชจ๋๋ก ์ด์๋ ํ์ผ์ ๋ซ์ง ์๊ณ ๋ค์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋ซ์์ฃผ๋ ๊ฒ์ด ์ข๋ค.
ํ์ผ์ ์ฐ๊ธฐ ๋ชจ๋๋ก ์ด์ด ๋ด์ฉ ์ฐ๊ธฐ:
๋ฌธ์์ด ๋ฐ์ดํฐ๋ฅผ ํ์ผ์ ์ง์ ์จ ๋ณด์.
์ด๋ ๋ชจ๋ํฐ ํ๋ฉด ๋์ ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ๋ฐฉ๋ฒ์ด๋ค.
ํ์ผ์ ์ฝ๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ:
1. readline ํจ์ ์ด์ฉํ๊ธฐ
์๋ ‘์ํ์ผ.txt’ ํ์ผ์ ์ฝ๊ธฐ ๋ชจ๋๋ก ์ฐ ํ readline() ์ ์ฌ์ฉํด์ ํ์ผ์ ์ฒซ ๋ฒ์งธ ์ค์ ์ฝ์ด ์ถ๋ ฅํ๋ ์์ ์ด๋ค. ์ ํ๋ก๊ทธ๋จ์ ์คํํ์ ๋ ์ํ์ผ.txt ํ์ผ์ ๊ฐ์ฅ ์ฒซ ๋ฒ์งธ ์ค์ด ํ๋ฉด์ ์ถ๋ ฅ๋ ๊ฒ์ด๋ค.
๋ง์ฝ ๋ชจ๋ ์ค์ ์ฝ์ด ํ๋ฉด์ ์ถ๋ ฅํ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ๋ฉด ๋๋ค.
2.readlines ํจ์ ์ฌ์ฉํ๊ธฐ
readlines ํจ์๋ ํ์ผ์ ๋ชจ๋ ์ค์ ์ฝ์ด์ ๊ฐ๊ฐ์ ์ค์ ์์๋ก ๊ฐ์ง๋ ๋ฆฌ์คํธ๋ฅผ ๋ฆฌํดํ๋ค. ๋ฐ๋ผ์ ์ ์์์ lines ๋ ๋ฆฌ์คํธ ["1๋ฒ์งธ ์ค์ ๋๋ค.๏ผผn", "2๋ฒ์งธ ์ค์ ๋๋ค.๏ผผn", ..., "10๋ฒ์งธ ์ค์ ๋๋ค.๏ผผn"]๊ฐ ๋๋ค. f.readlines()๋ f.readline()์ ๋ฌ๋ฆฌ s ๊ฐ ํ๋ ๋ ๋ถ์ด ์๋ค๋ ๊ฒ์ ์ ์ํ์.
3.read ํจ์ ์ด์ฉํ๊ธฐ
f.read()๋ ํ์ผ์ ๋ด์ฉ ์ ์ฒด๋ฅผ ๋ฌธ์์ด๋ก ๋ฆฌํดํ๋ค. ๋ฐ๋ผ์ ์ ์์ data๋ ํ์ผ์ ์ ์ฒด ๋ด์ฉ์ด๋ค.
4.ํ์ผ ๊ฐ์ฒด๋ฅผ for๋ฌธ๊ณผ ํจ๊ป ์์ฝํ๊ธฐ
ํ์ผ ๊ฐ์ฒด(f) ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ๊ฐ์ด for ๋ฌธ๊ณผ ํจ๊ป ์ฌ์ฉํ์ฌ ํ์ผ์ ์ค ๋จ์๋ก ์ฝ์ ์ ์๋ค.
ํ์ผ์ ์๋ก์ด ๋ด์ฉ ์ถ๊ฐํ๊ธฐ:
์ฐ๊ธฐ ๋ชจ๋ (‘w’) ๋ก ํ์ผ์ ์ด ๋ ์ด๋ฏธ ์กด์ฌํ๋ ํ์ผ์ ์ด๋ฉด ๊ทธ ํ์ผ์ ๋ด์ฉ์ด ๋ชจ๋ ์ฌ๋ผ์ง๊ฒ ๋๋ค. ํ์ง๋ง ์๋ ์๋ ๊ฐ์ ์ ์งํ๋ฉด์ ๋จ์ง ์๋ก์ด ๊ฐ๋ง ์ถ๊ฐํด์ผ ํ ๊ฒฝ์ฐ๋ ์๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์๋ ํ์ผ์ ์ถ๊ฐ ๋ชจ๋(‘a’) ๋ก ์ด๋ฉด ๋๋ค. IDLE ์๋ํฐ๋ก ๋ค์ ์์ค ์ฝ๋๋ฅผ ์์ฑํด ๋ณด์.
์๋ ์ํ์ผ.txt ํ์ผ์ ์ถ๊ฐ ๋ชจ๋ (‘a’) ๋ก ์ด๊ณ write ๋ฅผ ์ฌ์ฉํด์ ๊ฒฐ๊ด๊ฐ์ ๊ธฐ์กด ํ์ผ์ ์ถ๊ฐํด ์ ๋ ์์ด๋ค. ์ฌ๊ธฐ์์ ์ถ๊ฐ ๋ชจ๋๋ก ํ์ผ์ ์ด์๊ธฐ ๋๋ฌธ์ ์ํ์ผ.txt ํ์ผ์ด ์๋ ๊ฐ์ง๊ณ ์๋ ๋ด์ฉ ๋ฐ๋ก ๋ค์๋ถํฐ ๊ฒฐ๊ด๊ฐ์ ์ ๊ธฐ ์์ํ๋ค.
with๋ฌธ๊ณผ ํจ๊ป ์ฌ์ฉํ๊ธฐ:
ํ์ผ์ ์ด๋ฉด (open) ํญ์ ๋ซ์ (close) ์ฃผ์ด์ผ ํ๋ค. ์ด๋ ๊ฒ ํ์ผ์ ์ด๊ณ ๋ซ๋ ๊ฒ์ ์๋์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค๋ฉด ํธ๋ฆฌํ์ง ์์๊น? ํ์ด์ฌ์ with ๋ฌธ์ด ๋ฐ๋ก ์ด๋ฐ ์ญํ ์ ํด ์ค๋ค. ๋ค์ ์๋ with ๋ฌธ์ ์ฌ์ฉํด์ ์์์ ๋ฅผ ๋ค์ ์์ฑํ ๋ชจ์ต์ด๋ค.
์์ ๊ฐ์ด with ๋ฌธ์ ์ฌ์ฉํ๋ฉด with ๋ธ๋ก (with ๋ฌธ์ ์ํด ์๋ ๋ฌธ์ฅ) ์ ๋ฒ์ด๋๋ ์๊ฐ, ์ด๋ฆฐ ํ์ผ ๊ฐ์ฒด f๊ฐ ์๋์ผ๋ก ๋ซํ๋ค.
5. ํ๋ก๊ทธ๋จ์ ์ ์ถ๋ ฅ (์์ฑ์: ๋์์ฐ)
sys ๋ชจ๋ ์ฌ์ฉํ๊ธฐ
sys ๋ชจ๋์ ์ฌ์ฉํ๋ ค๋ฉด import sys์ฒ๋ผ import ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
import sys
args = sys.argv[1:]
for i in args:
print(i)
*ํ๋ก๊ทธ๋จ ์คํ ์ ์ ๋ฌ๋ฐ์ ์ธ์๋ฅผ for ๋ฌธ์ ์ฌ์ฉํด ์ฐจ๋ก๋๋ก ํ๋์ฉ ์ถ๋ ฅํ๋ ์
sys ๋ชจ๋์ argv๋ ํ๋ก๊ทธ๋จ ์คํ ์ ์ ๋ฌ๋ ์ธ์๋ฅผ ์๋ฏธํ๋ค.
์ฆ, argv[0]์ ํ์ผ ์ด๋ฆ sys1.py๊ฐ ๋๊ณ argv[1] ๋ถํฐ๋ ๋ค์ ๋ฐ๋ผ์ค๋ ์ธ์๊ฐ ์ฐจ๋ก๋๋ก argv์ ์์๊ฐ ๋๋ค.
sys1.py aaa bbb ccc
argv[0] argv[1] argv[2] argv[3]
'Study > CODE 3๊ธฐ [Jump to python]' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ถ์ฌ์กฐ] Python study (3) (0) | 2024.03.24 |
---|---|
[๊น์ด๊น์ด๋] python ์คํฐ๋ 3์ฃผ์ฐจ (0) | 2024.03.24 |
[2์กฐ:ACE] Python ์คํฐ๋ #3 (0) | 2024.03.19 |
[4์กฐ ๋ถ์ฌ์กฐ] Python Study (2) (0) | 2024.03.18 |
[ ๋น๋น๋น ] Python ์คํฐ๋ # 2์ฃผ์ฐจ (1) | 2024.03.18 |