๊ธฐ๋ณธ ์ฝ˜ํ…์ธ ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

๊ธ€

๋ผ๋ฒจ์ด ๋น„๊ต์—ฐ์‚ฐ์ž์ธ ๊ฒŒ์‹œ๋ฌผ ํ‘œ์‹œ

[python] ํŒŒ์ผ ์šด์šฉ(File Operation)

ํŒŒ์ผ ์šด์šฉ(File Operation) ํŒŒ์ผ ์—ด๊ธฐ/์ƒ์„ฑ ํŒŒ์ผ์— ์“ฐ๊ธฐ ํŒŒ์ผ ๋‚ด์šฉ ์ฝ๊ธฐ ํŒŒ์ด์ฌ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์—์„œ ์‹คํ–‰ํ•œ ์—ฌ๋Ÿฌ ์ž‘์—…๋“ค์€ ์ปดํ“จํ„ฐ ์ฃผ๊ธฐ์–ต์žฅ์น˜์ธ RAM(random access memory)์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด ์ €์žฅ์†Œ๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ํ•จ๊ป˜ RAM์— ์ €์žฅ๋œ ์ž‘์—…๊ณผ์ •์ด๋‚˜ ๊ฒฐ๊ณผ๊ฐ€ ํœ˜๋ฐœ๋˜๋ฏ€๋กœ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅ๋˜๋Š” ํ•˜๋“œ๋””์Šคํฌ์— ๊ทธ ์ž‘์—…์„ ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์€ ํ‘œ 1์˜ ํ•จ์ˆ˜ ๋˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ ์šฉํ•˜์—ฌ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‘œ 1 ํŒŒ์ผ ์šด์šฉ์„ ์œ„ํ•œ ํ•จ์ˆ˜ ์ˆœ์„œ ํ•จ์ˆ˜/๋ฉ”์†Œ๋“œ ๋‚ด์šฉ 1 open() ํŒŒ์ผ ์—ด๊ธฐ, ํ•จ์ˆ˜ 2 write() ์“ฐ๊ธฐ(์ž…๋ ฅ) , ๋ฉ”์†Œ๋“œ 2 read() ์ฝ๊ธฐ , ๋ฉ”์†Œ๋“œ 3 close() ํŒŒ์ผ ๋‹ซ๊ธฐ, ๋ฉ”์†Œ๋“œ ํŒŒ์ผ ์—ด๊ธฐ/์ƒ์„ฑ ํŒŒ์ผ์„ ํ˜ธ์ถœ ๋˜๋Š” ์ƒˆ๋กœ์šด ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด์žฅํ•จ์ˆ˜์ธ open() ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์™€ ๊ทธ ํŒŒ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์˜ ์ฒ˜๋ฆฌ๋ฐฉ์‹์€ ํ‘œ 2์— ์†Œ๊ฐœํ•œ ๊ฒƒ๊ณผ ๊ฐ™์ด ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค. ํ‘œ 2 open() ํ•จ์ˆ˜์˜ mode ์ข…๋ฅ˜ mode ์˜  ๋ฏธ 'r' ์ฝ๊ธฐ์ „์šฉ(๊ธฐ๋ณธ๊ฐ’) 'w' ์“ฐ๊ธฐ ์ „์šฉ, ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์ƒˆ๋กœ์šด ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜๊ณ  ํŒŒ์ผ์ด ์กด์žฌํ•œ๋‹ค๋ฉด ์ด์ „ ๋‚ด์šฉ์€ ์ง€์›Œ์ง‘๋‹ˆ๋‹ค. 'x' ํŒŒ์ผ ์ƒ์„ฑ, ํŒŒ์ผ์ด ์กด์žฌํ•œ๋‹ค๋ฉด ์—๋Ÿฌ๋ฐœ์ƒ 'a' ํŒŒ์ผ์˜ ๊ธฐ์กด ๋‚ด์šฉ์˜ ๋์— ์ฒจ๊ฐ€๋˜๊ณ  ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ƒˆ ํŒŒ์ผ์ด ์ƒ์„ฑ 't' ํŒŒ์ผ์„ text ๋ชจ๋“œ๋กœ ์—ฝ๋‹ˆ๋‹ค(๊ธฐ๋ณธ). 'b' ํŒŒ์ผ์„ ์ด์ง„๋ชจ๋“œ๋กœ ์—ฝ๋‹ˆ๋‹ค. '+' ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด ์˜คํ”ˆํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋ฐฉ์‹์€ r ๊ณผ w๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. open() ํ•จ์ˆ˜ ์‚ฌ์šฉ ํ›„ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅ์„ ์œ„ํ•ด์„œ๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ์—์„œ ๊ทธ ๊ฐ์ฒด(๊ฒฐ๊ณผ)๋ฅผ...

[python] ์—ฐ์‚ฐ์ž(Operator) I: ์‚ฐ์ˆ , ๋น„๊ต, ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž

1.4 ์—ฐ์‚ฐ์ž(operator) ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž ๋น„๊ต ์—ฐ์‚ฐ์ž ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž(logical operators) ๋น„ํŠธ ์—ฐ์‚ฐ์ž ํŠน์ˆ˜ํ•œ ์—ฐ์‚ฐ์ž ๋ฐ์ดํ„ฐ๋“ค ์‚ฌ์ด์— ์—ฐ์‚ฐ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์—ฐ์‚ฐ์˜ ์ข…๋ฅ˜๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ ์•ฝ์†์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ด ์•ฝ์†๋œ ๊ทœ์น™ ๋˜๋Š” ํ‘œํ˜„์„ ์—ฐ์‚ฐ์ž(operator) ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์—ฐ์‚ฐ์ž๋Š” ํŠน์ •ํ•œ ๋ช…๋ น(๋“ค)์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ ์ฝ”๋“œ๋“ค์„ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ํ•จ์ˆ˜ ์ž…๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ์€ ์‚ฐ์ˆ , True ๋˜๋Š” False์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋…ผ๋ฆฌ ์—ฐ์‚ฐ ๋“ฑ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ์ž๋“ค์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ด ์—ฐ์‚ฐ์— ์ฐธ์—ฌํ•˜๋Š” ๊ฐ’๋“ค์„ ํ”ผ์—ฐ์‚ฐ์ž(operand) ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ์ฝ”๋“œ๋Š” ๋‘ ์ˆ˜์น˜ํ˜• ๋ฆฌํ„ฐ๋Ÿด์˜ ๋ง์…ˆ์„ ์‹คํ–‰ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 5+8 13 ๋‘ ์ •์ˆ˜์˜ ๋ง์…ˆ์—ฐ์‚ฐ์€ ์—ฐ์‚ฐ์ž ' + '์— ์˜ํ•ด ์‹คํ–‰๋˜๋ฉฐ ์ด ์—ฐ์‚ฐ์— ๊ด€๊ณ„๋œ 5์™€ 8์ด ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋Š” 13์ž…๋‹ˆ๋‹ค. ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž(Arithmatic operators) ํ‘œ 1์€ ๋‘ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์—ฐ์‚ฐ์ž ์ž…๋‹ˆ๋‹ค. ํ‘œ 1 ์‚ฐ์ˆ ์—ฐ์‚ฐ์ž ์—ฐ์‚ฐ์ž ์˜๋ฏธ x + y ๋‹จ์ผ ๋˜๋Š” ๋‘๊ฐœ์˜ ํ”ผ์—ฐ์‚ฌ์ž์˜ ๋ง์…ˆ x - y ๋‹จ์ผ ๋˜๋Š” ๋‘๊ฐœ์˜ ํ”ผ์—ฐ์‚ฌ์ž์˜ ๋บ„์…ˆ x * y ๋‘๊ฐœ์˜ ํ”ผ์—ฐ์‚ฌ์ž์˜ ๊ณฑ์…ˆ x / y ๋‘๊ฐœ์˜ ํ”ผ์—ฐ์‚ฌ์ž์˜ ๋‚˜๋ˆ—์…ˆ์œผ๋กœ ๊ฒฐ๊ณผ๋Š” ์‹ค์ˆ˜ํ˜• x % y ๋‘๊ฐœ์˜ ํ”ผ์—ฐ์‚ฌ์ž์˜ ๋‚˜๋ˆ—์…ˆ์˜ ๋‚˜๋จธ์ง€๋ฅผ ๋ฐ˜ํ™˜ x // y ๋‘๊ฐœ์˜ ํ”ผ์—ฐ์‚ฌ์ž์˜ ๋‚˜๋ˆ—์…ˆ์˜ ๋ชซ์„ ๋ฐ˜ํ™˜ x**y ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ (power) x=5 y=2 print(x+y) # ๋ง์…ˆ print(x-y) # ๋บ„์…ˆ print(x*y) # ๊ณฑ์…ˆ print(x/y) # ๋‚˜๋ˆ—์…ˆ 7 3 10 2.5 print(x//y) # ๋ชซ print(x%y) # ๋‚˜๋จธ์ง€ 2 1 print(x**y) # ๊ฑฐ๋“ญ์ œ๊ณฑ 25 ...

์ด ๋ธ”๋กœ๊ทธ์˜ ์ธ๊ธฐ ๊ฒŒ์‹œ๋ฌผ

[python] ๋ฐ‘์ค„๊ณผ ๋‚ด์žฅ๋ฉ”์†Œ๋“œ(Underscores & Built-in method)

๋ฐ‘์ค„๊ณผ ๋‚ด์žฅ ๋ฉ”์†Œ๋“œ(Underscores & Built-in method) 1. ๋ฐ‘์ค„์˜ ์œ ํ˜• ๋‹จ์ผ ๋ฐ ์ด์ค‘ ๋ฐ‘์ค„(" _, __ ")์€ ์ผ๋ถ€๋Š” ๋‹จ์ง€ ๊ด€๋ก€์ ์œผ๋กœ ์‚ฌ์šฉ๋˜์ง€๋งŒ ํด๋ž˜์Šค๋ฅผ ์ดˆ๊ธฐํ™”์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ ์šฉ๋˜๋Š” ๋‚ด์žฅ ๋ฉ”์„œ๋“œ์ธ ์ƒ์„ฑ์ž __init__() ์™€ ๊ฐ™์ด ์ผ๋ถ€๋Š” ํŒŒ์ด์ฌ ๋ณ€์ˆ˜ ๋ฐ ๋ฉ”์„œ๋“œ์— ์ฒจ๊ฐ€ํ•˜์—ฌ ํŠน์ •ํ•œ ์˜๋ฏธ๋ฅผ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋žต์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ ์„ ํ–‰ ๋ฐ‘์ค„: _var ๋ณ€์ˆ˜ ๋˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ๋‚ด๋ถ€ ์‚ฌ์šฉ์„ ์œ„ํ•œ ๊ฒƒ์ž„์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ทœ์น™ ๋‹จ์ผ ์„ ํ–‰๋ฐ‘์ค„์˜ ๊ฐ์ฒด๋ฅผ ์™€์ผ๋“œ์นด๋“œ(*)๋กœ ํ˜ธ์ถœํ•  ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ  ์‹คํ–‰์ƒ ์ฐจ์ด๋Š” ์—†์Œ ๋‹จ์ผ ํ›„ํ–‰ ๋ฐ‘์ค„: var_ ํ›„ํ–‰ ๋ฐ‘์ค„(์ ‘๋ฏธ์‚ฌ)์€ ๊ทœ์น™์— ๋”ฐ๋ผ ํŒŒ์ด์ฌ ํ‚ค์›Œ๋“œ์™€์˜ ์ด๋ฆ„ ์ถฉ๋Œ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด์ค‘ ์„ ํ–‰ ๋ฐ‘์ค„: __var ์ž‘๋™์˜์—ญ์„ ํ•œ์ •์‹œํ‚ด ์ด์ค‘ ์„ ํ–‰ ๋ฐ ํ›„ํ–‰ ๋ฐ‘์ค„: __var__ ํŒŒ์ด์ฌ ํด๋ž˜์Šค์— ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋‚ด์žฅ ๋ฉ”์†Œ๋“œ(๋งค์ง ๋ฉ”์†Œ๋“œ)๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ๋ช…๋ช… ๊ทœ์น™ ๋‹จ์ผ ๋ฐ‘์ค„:_ ์ž„์‹œ ๋˜๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์€ ๋ณ€์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ผ ๊ฒฝ์šฐ ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ช…๊ทœ์น™ 2. ๋‹จ์ผ ์„ ํ–‰ ๋ฐ‘์ค„(Single leading underscore) ๋ณ€์ˆ˜ ๋ฐ ๋ฉ”์„œ๋“œ ์ด๋ฆ„๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋‹จ์ผ ๋ฐ‘์ค„ ์ ‘๋‘์‚ฌ๋Š” ๊ด€๋ก€์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์˜ ๋™์ž‘์—๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•ด ๋‹จ์ผ ๋ฐ‘์ค„๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ณ€์ˆ˜ ๋˜๋Š” ๋ฉ”์„œ๋“œ๋Š” ๋‚ด๋ถ€ ์‚ฌ์šฉ์„ ์œ„ํ•œ ๊ฒƒ์ž„์„ ์•”์‹œํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ์€ Java์™€ ๊ฐ™์ด "๊ฐœ์ธ" ๋ณ€์ˆ˜์™€ "๊ณต์šฉ" ๋ณ€์ˆ˜๋ฅผ ํฌ๊ฒŒ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ–‰ ์ƒ ์–ด๋–ค ๋ณ€ํ™”๋ฅผ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. class test: def __init__(self): self.foo=11 self._bar=23 t=test() t.foo 11 t._bar 23 ๋‹จ์ผ ๋ฐ‘์ค„ ์ ‘๋‘์‚ฌ๋Š” ๋‹จ์ง€ ํ•ฉ์˜๋œ ๊ทœ์น™์ด๊ธฐ ์ด๋ฏ€๋กœ ํด๋ž˜์Šค test์˜ ์†์„ฑ _bar ์˜ ์‹คํ–‰์€ ์ •์ƒ์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ...

[python] ์—ฐ์‚ฐ์ž II: ๋น„ํŠธ ์—ฐ์‚ฐ์ž, ํŠน์ˆ˜ํ•œ ์—ฐ์‚ฐ์ž

์—ฐ์‚ฐ์ž II ๋น„ํŠธ ์—ฐ์‚ฐ์ž(Bitwise operators) ํŠน์ˆ˜ํ•œ ์—ฐ์‚ฐ์ž ์žฌํ• ๋‹น์—ฐ์‚ฐ์ž ๋‹ค์ค‘ํ• ๋‹น in, is ์—ฐ์‚ฐ์ž ๊ฐ€๋ณ€์—ฐ์‚ฐ์ž('*') ๋น„ํŠธ ์—ฐ์‚ฐ์ž(Bitwise operators) ์ปดํ“จํ„ฐ ์—ฐ์‚ฐ์€ 2์ง„๋ฒ•์— ์˜ํ•ด ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜๋˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ํ•œ ๊ฐœ(1๋น„ํŠธ)๋‹น 0 ๋˜๋Š” 1๋กœ ์ €์žฅ ๋ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅ๋œ ๋‘ ๋ฐ์ดํ„ฐ์˜ ์—ฐ์‚ฐ์€ ๋‹ค์Œ์˜ ์ˆœ์„œ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ ๋™์ผํ•œ ์œ„์น˜์— ์ €์žฅ๋œ ๊ฐ’๋“ค ์‚ฌ์ด์— ๋น„ํŠธ๋‹จ์œ„๋กœ ์—ฐ์‚ฐ ์˜ˆ๋ฅผ ๋“ค์–ด ์‹ญ์ง„์ˆ˜ 2์™€ 10์˜ ๊ฒฝ์šฐ 2์ง„์ˆ˜๋กœ b0010, b1010์ด ๋ฉ๋‹ˆ๋‹ค. ๋‘์ˆ˜์˜ ๊ฐ ๋น„ํŠธ์˜ ์—ฐ์‚ฐ์€ ํ‘œ 1๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ‘œ 1 2์™€ 10์˜ ๋น„ํŠธ ์—ฐ์‚ฐ ์‹ญ์ง„์ˆ˜ ์ด์ง„์ˆ˜ 2 0 0 1 0 10 1 0 1 0 (+)12 1 1 0 0 ๋น„ํŠธ๋กœ ํ‘œํ˜„๋œ ๊ฐ์ฒด ๋˜๋Š” ๊ฐ์ฒด๋“ค ์‚ฌ์ด์— ์—ฐ์‚ฐ์€ ํ‘œ 2์— ์†Œ๊ฐœํ•œ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋น„ํŠธ ์—ฐ์‚ฐ์„ ์œ„ํ•ด์„œ๋Š” ์ด์ง„์ˆ˜๋กœ ์ „ํ™˜์ด ํ•„์š”ํ•˜๋ฉฐ ์Œ์˜ ์ด์ง„์ˆ˜๋กœ์˜ ๋ณ€ํ™˜์„ ์œ„ํ•ด์„œ๋Š” ๋ณด์ˆ˜๋ฒ• ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ‘œ 2 ๋น„ํŠธ ์—ฐ์‚ฐ์ž ์—ฐ์‚ฐ์ž ์˜๋ฏธ x & y ๋น„ํŠธ ๋‹จ์œ„๋กœ AND x | y ๋น„ํŠธ ๋‹จ์œ„๋กœ OR ~x ๋น„ํŠธ ๋‹จ์œ„๋กœ NOT, 1์˜ ๋ณด์ˆ˜(complement) x^y ๋น„ํŠธ ๋‹จ์œ„๋กœ XOR (๋‹ค๋ฅธ ๊ฐ’: True(1), ๊ฐ™์€ ๊ฐ’: False(0)) x >> a ๊ฐ์ฒด x๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ a ๋น„ํŠธ ์ด๋™ x << a ๊ฐ์ฒด x๋ฅผ ์™ผ์ชฝ์œผ๋กœ a ๋น„ํŠธ ์ด๋™ ํ‘œ 1์—์„œ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ๊ณผ ๊ฐ™์ด ํ‘œ 2์—์„œ ์†Œ๊ฐœํ•œ ๋น„ํŠธ์—ฐ์‚ฐ์ž ์—ญ์‹œ ๋™์ผํ•œ ์œ„์น˜์˜ ๋น„ํŠธ ์‚ฌ์ด์—...

[python] ๋ชจ๋“ˆ(Module), ํŒจํ‚ค์ง€(Package)

๋ชจ๋“ˆ(Module), ํŒจํ‚ค์ง€(Package) ํ”„๋กœ๊ทธ๋žจ ์ค‘ ์‹คํ–‰๊ฐ€๋Šฅํ•œ ์ผ์ •ํ•œ ๋ถ€๋ถ„์„ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ทธ ๋ถ€๋ถ„์— ์ด๋ฆ„์„ ๋ถ€์—ฌํ•˜์—ฌ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด ๋™์ผํ•œ ์ž‘์—…์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ๋งˆ๋‹ค ๊ทธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ทธ ๋ถ„๋ฆฌ๋œ ๊ฐ์ฒด ์ž์ฒด๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์ด ๋˜๋ฉฐ ๋ชจ๋“ˆ(Module) ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์ž๋ฃŒํ˜•์„ ์‚ฌ์šฉํ•˜๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ชจ๋“ˆ์„ ํ•˜๋‚˜์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋‚ด๋กœ ๋ฌถ์„ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ํŒจํ‚ค์ง€(package) ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ํŒจํ‚ค์ง€์˜ ์กด์žฌํ•˜๋ฉฐ ๊ณ„์† ์ƒ์„ฑ๋˜๊ณ  ์—…๋ฐ์ดํŠธ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์™€ ๊ฐ™์ด ํฐ ํ”„๋กœ๊ทธ๋žจ์„ ๋ชจ๋“ˆํ™”ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰๊ณผ ์ˆ˜์ •, ๋ณต๊ตฌ ๋“ฑ ๋‹ค์–‘ํ•œ ์ธก๋ฉด์—์„œ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ(Module) ๊ฐ์ฒด ์ •์˜(definition)์™€ ๋ฌธ(statement)์„ ํฌํ•จํ•˜๋Š” ํŒŒ์ผ ํŒŒ์ด์ฌ์—์„œ ์ƒ์„ฑํ•˜๋Š” ๋ชจ๋“ˆ์˜ ํ™•์žฅ๋ช…์€ .py์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ถ€๋ถ„๋“ค์˜ ์กฐํ•ฉ์œผ๋กœ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ ๋ชจ๋“ˆ ์ „์ฒด ๋˜๋Š” ์ผ๋ถ€๋ฅผ ๋‹ค๋ฅธ ๋ชจ๋“ˆ, ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ์—์„œ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ์ฒด๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ํ™•์žฅ์ž " .py " ํ˜•์‹์œผ๋กœ ๋ณ„๋„์˜ ํŒŒ์ผ์— ์ €์žฅํ•œ๋‹ค๋ฉด ๋ชจ๋“ˆ์ด ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ/ํŒจํ‚ค์ง€์˜ import " ์ž„ํฌํŠธ(import) "๋Š” ํŒŒ์ด์ฌ์„ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ์ฝ”๋“œ ํ•ด์„๊ธฐ(interpreter)์— ๋ชจ๋“ˆ์„ ์žฅ์ฐฉํ•˜๋Š” ๋ช…๋ น ํ‚ค์›Œ๋“œ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋‘ ์ˆ˜๋ฅผ ๋”ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜๋กœ ๋ณ„๋„์˜ ํŒŒ์ผ(test.py)์— ์ €์žฅ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ํŒŒ์ด์ฌ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์˜ ๋ชจ๋“  ์˜์—ญ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํŒŒ์ด์ฌ ์ž์ฒด๋ฅผ ์ข…๊ฒฐํ•œ ํ›„ ์ƒ์„ฑํ•œ ํ•จ์ˆ˜๋„ ์†Œ๋ฉธ๋˜๋ฏ€๋กœ ์ถ”ํ›„์— ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ณ„๋„์˜ ํŒŒ์ผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ €์žฅ๋œ ํŒŒ์ด์ฌ ํŒŒ์ผ์ด ๋ชจ๋“ˆ์ด ๋ฉ๋‹ˆ๋‹ค. def add(a, b): return a+b ์œ„ ํŒŒ์ผ์„ ๋ชจ๋“ˆ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‹คํ–‰ํŒŒ์ผ์—์„œ test.py๋ฅผ ์ž„ํฌํŠธ ํ•ฉ๋‹ˆ๋‹ค. ์ž„ํฌํŠธ ๋œ ๋ชจ๋“ˆ์˜ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์‹ 1๊ณผ ๊ฐ™์ด ๊ทธ ํ•จ์ˆ˜์˜ ๋ชจ๋“ˆ...