κΈ°λ³Έ μ½˜ν…μΈ λ‘œ κ±΄λ„ˆλ›°κΈ°

κΈ€

[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] μžλ£Œν˜•(type)의 λΆ„λ₯˜

2.1 μžλ£Œν˜•(type) μˆ«μžν˜•(number typer) μˆ˜μΉ˜ν˜•μ˜ ν˜•λ³€ν™˜κ³Ό μ§„μˆ˜λ³€ν™˜ λ¬Έμžμ™€ λ¬Έμžμ—΄(character & string) 컴퓨터에 μž…λ ₯λ˜λŠ” 데이터 즉, λ¦¬ν„°λŸ΄(literal, raw data)은 0κ³Ό 1둜 λ³€ν™˜λ˜μ–΄ λ©”λͺ¨λ¦¬μ— μ €μž₯되기 λ•Œλ¬Έμ— λ°μ΄ν„°μ˜ μ’…λ₯˜λ₯Ό ꡬ뢄할 수 μ—†μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ―€λ‘œ μž…λ ₯된 데이터가 0κ³Ό 1 λ³€ν™˜λ˜κΈ° 전에 λ¬ΈμžμΈμ§€ μˆ«μžμΈμ§€λ₯Ό μ§€μ •ν•  ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€. λ©”λͺ¨λ¦¬ μž…λ ₯λ˜λŠ” μ›μ‹œλ°μ΄ν„°λ‘œ μžμ‹ μ„ μ°Έμ‘°ν•˜λŠ” 객체λ₯Ό μ΄λ―Έν•©λ‹ˆλ‹€. C, JAVA, Kotlinλ“±κ³Ό 같은 μ–Έμ–΄λŠ” 자료λ₯Ό μ„ μ–Έν•˜λŠ” λ‹¨κ³„μ—μ„œ κ·Έ νƒ€μž…μ„ λͺ…μ‹œμ μœΌλ‘œ μ§€μ •ν•΄μ•Ό ν•˜μ§€λ§Œ 파이썬의 κ²½μš°λŠ” μžλ£Œν˜•μ˜ 선언이 μ•”λ¬΅μ μœΌλ‘œ μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ™μΌν•œ μžλ£Œν˜•λ‚΄μ—μ„œλ§Œ 연산이 μ΄λ£¨μ–΄μ§€λ―€λ‘œ ν‘œ 1에 μ œμ‹œλœ μžλ£Œν˜•μ˜ λΆ„λ₯˜λ₯Ό μΈμ§€ν•˜κ³  μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. νŒŒμ΄μ¬μ€ 기본적으둜 μˆ«μžν˜•κ³Ό λ¬Έμžν˜•μœΌλ‘œ κ΅¬λΆ„ν•˜λ©° λ¦¬ν„°λŸ΄μ˜ 1개 μ΄μƒμ˜ 자료λ₯Ό κ·Έλ£Ήν™”ν•˜κΈ° μœ„ν•œ μ»¬λ ‰μ…˜(collection)(μ»¬λ ‰μ…˜ μ°Έμ‘°)을 κ°€μ§‘λ‹ˆλ‹€. ν‘œ 1 μžλ£Œν˜•μ˜ λΆ„λ₯˜ λΆ„λ₯˜ μžλ£Œν˜• 예 κΈ°λ³Έν˜• μˆ«μžν˜• int(μ •μˆ˜ν˜•) -13, 0, 231 float(μ‹€μˆ˜ν˜•) -2.31, 0.98, 2.31E2 complex(λ³΅μ†Œμˆ˜ν˜•) 0.+3j, 1+0j λ¬Έμžν˜• String(λ¬Έμžμ—΄) 'a', "string' λ³΅ν•©ν˜• (Collections) list [1, 3, 'a', 'string'] tuple (1, 3, 'a', 'string') dictionary {"one": 1, "cha":'a', "str":'string'} set ...

[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] 보수(complement)

보수(complement) μ»΄ν“¨ν„°μ—μ„œ 음수λ₯Ό μ§μ ‘μ μœΌλ‘œ ν‘œν˜„ν•  수 μ—†κΈ° λ•Œλ¬Έμ— λΆ€ν˜Έ λΉ„νŠΈλ₯Ό μ§€μ •ν•˜μ—¬ μ–‘μˆ˜μ— λŒ€ν•œ μŒμˆ˜λŠ” 2의 보수(tow's complement)λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚˜νƒ€λ‚Ό 수 μžˆμŠ΅λ‹ˆλ‹€. λ³΄μˆ˜λŠ” μ–΄λ–€μˆ˜λ₯Ό λ³΄μΆ©ν•˜μ—¬ μ™„μ „μˆ˜λ₯Ό λ§Œλ“€κ²Œ ν•˜λŠ” 수둜 1의 λ³΄μˆ˜μ™€ 2의 보수 방법이 있으며 μ–΄λ–€μˆ˜μ— λŒ€μ‘ν•˜λŠ” 음수의 μ΄μ§„μˆ˜ ν‘œν˜„μ€ 2의 보수 방법을 μ μš©ν•©λ‹ˆλ‹€. 1의 보수 ⇒ κ°’μ˜ λ°˜μ „, 즉 0 → 1, 1 → 0 예λ₯Ό λ“€μ–΄ 4λΉ„νŠΈμ—μ„œ μ™„μ „μˆ˜λŠ” 1111(2)이 λ©λ‹ˆλ‹€. κ·ΈλŸ¬λ―€λ‘œ 0010(2)에 1의 보수λ₯Ό λ”ν•˜λ©΄ λ‹€μŒκ³Ό 같이 μ™„μ „μˆ˜κ°€ λ©λ‹ˆλ‹€. 0 0 1 0  +  1 1 0 1  (1의 보수) 1 1 1 1  (μ™„μ „μˆ˜) 2의 보수⇒ 1의 보수 κ²°κ³Ό + 1 (2) 예λ₯Ό λ“€μ–΄ μœ„μ˜ 1의 λ³΄μˆ˜λ²•μ— μ˜ν•œ 결과인 1101 (2) 에 1 (2) λ₯Ό λ”ν•˜λ©΄ 1110 (2) 이 λ©λ‹ˆλ‹€. 기쀀이 λ˜λŠ” μ΅œμ™Όμͺ½μ— μžˆλŠ” λΉ„νŠΈλŠ” λΆ€ν˜Έλ₯Ό λ‚˜νƒ€λ‚΄λŠ” κ²ƒμœΌλ‘œ 1μ΄λ―€λ‘œ μŒμˆ˜μž„μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 이 μŒμˆ˜κ°’μ„ μ§μ ‘μ μœΌλ‘œ μ‹­μ§„μˆ˜λ‘œ μ „ν™˜ν•  수 μ—†μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ―€λ‘œ 이 값을 μ•ŒκΈ° μœ„ν•΄μ„œλŠ” λ‹€μ‹œ 2의 보수λ₯Ό κ²°μ •ν•©λ‹ˆλ‹€. 1 1 1 0 1의 보수 →  0 0 0 1 2의 보수 +  0 0 0 1 2 ⇐  0 0 1 0 μœ„ κ²°κ³Ό 1110 (2) 의 λΆ€ν˜Έλ³€ν™˜ κ²°κ³ΌλŠ” 2μ΄λ―€λ‘œ -2κ°€ λ©λ‹ˆλ‹€. 예) 16λΉ„νŠΈλ₯Ό κΈ°μ€€μœΌλ‘œ 2의 보수λ₯Ό μ‚¬μš©ν•˜μ—¬ μ‹­μ§„μˆ˜ 7의 음수인 μ΄μ§„μˆ˜λ₯Ό κ²°μ •ν•΄λ΄…λ‹ˆλ‹€. 0 0 0 0 … 0 1 1 1 7에 λŒ€ν•œ 2의 보수:  1 1 1 1 … 1 0 0 1  ⇒ -7 -7의 2μ§„μˆ˜λ₯Ό μ‹­μ§„μˆ˜λ‘œ ν™•μΈν•˜κΈ° μœ„ν•΄μ„œλŠ” λ‹€μ‹œ 2의 보수λ₯Ό μ μš©ν•©λ‹ˆλ‹€. -7에 λŒ€ν•œ 2의 보수:  0 0 0 0 … 0 1 1 1  ⇒ 7 numpy νŒ¨ν‚€μ§€μ˜ binary_repr() ν•¨μˆ˜λ₯Ό μ μš©ν•˜μ—¬ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. from numpy import binary_repr binary_repr(-7, width=16) '1111111111111001'...

[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] 얕은 볡사(shallow copy)와 κΉŠμ€ 볡사(deep copy)

얕은 볡사(shallow copy)와 κΉŠμ€ 볡사(deep copy) κ°μ²΄λ“€μ˜ μ°Έμ‘°λ‚˜ μš”μ†Œμ˜ κ°™μŒκ³Ό 닀름은 두 값이 κ°™μŒμ˜ μ—¬λΆ€λ₯Ό νŒμ •ν•˜λŠ” μ—°μ‚°μž == 와 ν‚€μ›Œλ“œ is 둜 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. a=[1, 2, 3] b=a; b [1, 2, 3] a==b True μœ„ κ²°κ³ΌλŠ” 두 객체의 값이 κ°™μŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이 κ²°κ³Όκ°€ 두 객체의 참쑰점의 μœ„μΉ˜λ₯Ό κ°™μŒμ„ μ˜λ―Έν•˜μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€. 즉, μœ„ κ²°κ³ΌλŠ” λ‹€μŒμ˜ κ²°κ³Όλ₯Ό 보μž₯ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. id(a[1])==id(b[1]) True μœ„ 두 μ½”λ“œμ™€ 같이 κ°’κ³Ό 참쑰점의 μœ„μΉ˜κ°€ κ°™μŒμ€ ν‚€μ›Œλ“œ is 에 μ˜ν•΄ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. a is b True μœ„ μ½”λ“œμ˜ 객체 bλŠ” aλ₯Ό ν• λ‹Ήν•œ κ²ƒμœΌλ‘œ λ™μΌν•œ μœ„μΉ˜μ— μžˆλŠ” μš”μ†Œλ“€μ„ μ°Έμ‘°ν•©λ‹ˆλ‹€. λ‹€μŒ μ½”λ“œμ˜ list() λŠ” 리슀트 μžλ£Œν˜•μ˜ 객체λ₯Ό μƒμ„±ν•˜λŠ” λ‚΄μž₯ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜μ— μ˜ν•΄ μƒμ„±λœ κ°μ²΄λŠ” 같은 값을 ν¬ν•¨ν•˜μ§€λ§Œ λ‹€λ₯Έ 참쑰점을 κ°€μ§‘λ‹ˆλ‹€. 즉, λ‹€λ₯Έ κ°μ²΄μž…λ‹ˆλ‹€. c=list(a); c [1, 2, 3] a==c True a is c False μœ„μ˜ 객체듀 쀑에 b의 첫 번째 μš”μ†Œκ°’μ„ λ³€κ²½μ‹œν‚€λ©΄ 같은 참쑰점을 κ°€μ§€λŠ” a μ—­μ‹œ μˆ˜μ •λ©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ‹€λ₯Έ 객체인 cμ—λŠ” 영ν–₯을 μ£Όμ§€ μ•ŠμŠ΅λ‹ˆλ‹€. b[0]=100; b [100, 2, 3] a [100, 2, 3] c [1, 2, 3] 결과적으둜 μœ„μ˜ 객체 b와 cλŠ” aλ₯Ό λ³΅μ‚¬ν•œ κ²ƒμž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ b와 cλŠ” λ‹€λ₯Έ κ°μ²΄μž…λ‹ˆλ‹€. 이와 같이 νŒŒμ΄μ¬μ€ 객체가 객체λ₯Ό λ³΅μ‚¬ν•˜λŠ” 2κ°€μ§€ 방법을 κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€(κ·Έλ¦Ό 1) 얕은 볡사(shallow copy) μœ„ a와 b 객체의 관계 λ™μΌν•œ 참쑰점에 μžˆλŠ” μš”μ†Œλ“€μ„ 포함 얕은 볡사에 μžˆλŠ” κ°μ²΄λŠ” μ„œλ‘œ μ—°κ²°λ˜μ–΄ 있음 κΉŠμ€ 볡사(deep copy) μœ„ a와 c 객체의 관계 λ™μΌν•œ μš”μ†Œλ“€μ„ κ°€μ§€μ§€λ§Œ 각 μš”μ†Œμ˜ 참쑰점은 λ‹€λ¦…λ‹ˆλ‹€. λ‹€λ₯Έ κ°μ²΄λ‘œμ„œ μ„œλ‘œ 영ν–₯을 μ£Όμ§€ μ•ŠμŒ 이 관계λ₯Ό κ·Έλ¦Ό 1κ³Ό 같이 λ‚˜νƒ€λ‚Ό 수 μžˆμŠ΅λ‹ˆλ‹€. κ·Έλ¦Ό 1. 얕은볡사와 κΉŠμ€λ³΅μ‚¬...

[python] 객체의 μœ νš¨λ²”μœ„

객체의 μœ νš¨λ²”μœ„ λ‚΄ 용 μ „μ—­(global) μ „μ—­λ³€μˆ˜μ™€ μ§€μ—­λ³€μˆ˜ μ „μ—­(global) 이름곡간 에 μ €μž₯된 이름 κ°μ²΄λŠ” νŠΉμ •ν•œ 데이터λ₯Ό μ°Έμ‘°, 즉 μ—°κ²°(binding) λ©λ‹ˆλ‹€. 이 연결은 기본적으둜 λͺ¨λ“ˆλ‹¨μœ„λ‘œ μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ numpyλŠ” λ²‘ν„°λ‚˜ ν–‰λ ¬ λ“±μ˜ 배열을 닀루기 μœ„ν•΄ νŠΉν™”λœ 파이썬 νŒ¨ν‚€μ§€μž…λ‹ˆλ‹€. 이 νŒ¨ν‚€μ§€μ˜ array() ν•¨μˆ˜λŠ” 배열을 μƒμ„±ν•˜κΈ° μœ„ν•œ ν•¨μˆ˜λ‘œμ„œ λ‹€μŒ μ½”λ“œμ™€ 같이 νŒ¨ν‚€μ§€λ₯Ό μž₯μ°©ν•œ 뒀에 식 1κ³Ό 같이 μ—°κ²°μ—°μ‚°μž(.) λ₯Ό μ‚¬μš©ν•˜μ—¬ ν•¨μˆ˜κ°€ μž‘λ™ν•  μ˜μ—­μ„ μ§€μ •ν•΄ μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€. import numpy as np x=np.array([1,2,3]);x array([1, 2, 3]) μœ„ μ½”λ“œμ˜ np.array()λŠ” array() ν•¨μˆ˜μ˜ μž‘λ™μ€ numpy νŒ¨ν‚€μ§€μ˜ μ˜μ—­μœΌλ‘œ ν•œμ •ν•œλ‹€λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ―€λ‘œ λ‹€μŒκ³Ό 같이 κ·Έ ν•¨μˆ˜μ˜ μœ νš¨λ²”μœ„λ₯Ό μ§€μ •ν•˜μ§€ μ•Šμ„ 경우 μ—λŸ¬κ°€ λ°œμƒν•©λ‹ˆλ‹€. y=array([1,2,3]); y NameError: name 'array' is not defined μ΄λŸ¬ν•œ λͺ¨λ“ˆ μž₯μ°© - λ™μž‘μ˜ μ˜μ—­ μ§€μ • - 이 λΆˆν•„μš”ν•œ κΈ°λ³Έ νŒŒμ΄μ¬μ„ 파이썬 μ½”μ–΄(core) 라고 ν•˜λ©° 이 μ½”μ–΄ ν”„λ‘œκ·Έλž¨μ€ 파이썬 μž‘μ„±μ— ν•„μˆ˜μ μΈ λ‹€μ–‘ν•œ ν•¨μˆ˜λ₯Ό ν¬ν•¨ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ ν•¨μˆ˜λ₯Ό λ‚΄μž₯ν•¨μˆ˜(built-in function) 라고 ν•©λ‹ˆλ‹€. 각 λͺ¨λ“ˆμ€ κ³ μœ ν•œ μžλ£Œν˜• λ˜λŠ” ν˜•μ‹μ„ κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ―€λ‘œ κ·Έ λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” μž…λ ₯ν•  자료의 ν˜•μ‹μ„ κ·Έ μœ ν˜•μ— μ ν•©ν•˜λ„λ‘ λ³€ν™˜λ©λ‹ˆλ‹€. μ΄λŸ¬ν•œ λ³€ν™˜μ€ 객체 μƒμ„±μ‹œ μžλ™μœΌλ‘œ λΆ€μ—¬λ˜λŠ” μ—¬λŸ¬ 속성(λ‚΄μž₯ 속성) λ•Œλ¬Έμ— κ°€λŠ₯ν•©λ‹ˆλ‹€. λ˜ν•œ νŠΉμ •ν•œ λͺ¨λ“ˆ λ˜λŠ” νŒ¨ν‚€μ§€μ˜ 객체에 λ‚΄μž₯ν•¨μˆ˜κ°€ μž‘λ™ν•˜λŠ” 이유 μ—­μ‹œ μ΄λŸ¬ν•œ 속성 λ•Œλ¬Έμž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ λ‹€μŒ μ½”λ“œμ˜ 객체의 길이λ₯Ό λ°˜ν™˜ν•˜λŠ” λ‚΄μž₯ ν•¨μˆ˜ len() 은 νŠΉμ •ν•œ μž‘λ™μ˜μ—­μ„ μ§€μ •ν•˜μ§€ μ•Šκ³  μ‚¬μš©ν•  수 있으며 λ‹€λ₯Έ λͺ¨λ“ˆμ—μ„œ μƒμ„±λœ 객체에 λŒ€ν•΄μ„œλ„ μž‘λ™ν•©λ‹ˆλ‹€. 즉, λ‚΄μž₯ν•¨μˆ˜λŠ” 파이썬 μ½”μ–΄κ°€ μž‘λ™ν•˜λŠ” λͺ¨λ“  λ²”μœ„μ—μ„œ μž‘λ™ν•©λ‹ˆλ‹€. ...

[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κ³Ό 같이 κ·Έ ν•¨μˆ˜μ˜ λͺ¨λ“ˆ...

이 λΈ”λ‘œκ·Έμ˜ 인기 κ²Œμ‹œλ¬Ό

[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] λ¦¬ν„°λŸ΄(literal)

Literals(λ¦¬ν„°λŸ΄) λ¦¬ν„°λŸ΄(literal) 은 λ©”λͺ¨λ¦¬μ— μž…λ ₯λ˜λŠ” μ›μ‹œλ°μ΄ν„°(raw data) , 즉 μžμ‹ μ„ μ°Έμ‘°ν•˜λŠ” 객체λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. νŒŒμ΄μ¬μ—μ„œλŠ” λ‹€μ–‘ν•œ νƒ€μž…μ˜ λ¦¬ν„°λŸ΄μ΄ μ‘΄μž¬ν•©λ‹ˆλ‹€. μˆ«μžν˜• λ¦¬ν„°λŸ΄ μˆ«μžν˜• λ¦¬ν„°λŸ΄μ—λŠ” 3κ°€μ§€ νƒ€μž…μ΄ μžˆμŠ΅λ‹ˆλ‹€(ν‘œ 1). ν‘œ 1 μˆ«μžν˜• λ¦¬ν„°λŸ΄ μˆ«μžν˜• λ¦¬ν„°λŸ΄ μ •μˆ˜ν˜• 2μ§„μˆ˜, 8μ§„μˆ˜, 10μ§„μˆ˜, 그리고 16μ§„μˆ˜λ‘œ ν‘œμ‹œ μ‹€μˆ˜ν˜• 3.14, 3e-2 λ“± λ³΅μ†Œμˆ˜ν˜• .imag: ν—ˆμˆ˜λΆ€λΆ„, .real: μ‹€μˆ˜λΆ€λΆ„ a=100 #Int a 100 b=3.14 #float b 3.14 c=3e-3 #float, 3e-3 ==3*10 -3 c 0.003 d=3+3.14j #complex d (3+3.14j) d.imag 3.14 d.real 3.0 λ¬Έμžν˜• λ¦¬ν„°λŸ΄(String) λ¬Έμžν˜• λ¦¬ν„°λŸ΄μ€ 일반적으둜 단일, 이쀑 λ”°μ˜΄ν‘œ λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. λ¬Έμžμ—΄μ„ μ—¬λŸ¬ μ€„λ‘œ λ‚˜νƒ€λ‚Ό 경우 삼쀑 λ”°μ˜΄ν‘œ 둜 λ‚˜νƒ€λƒ…λ‹ˆλ‹€. ch='a' ch2="b" ch, ch2 ('a', 'b') st='ν•œ 쀄에 λ¬Έμžμ—΄μ„ ν‘œμ‹œν•  λ•Œ 단일 λ˜λŠ” 이쀑 λ”°μ˜΄ν‘œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.' print(st) ν•œ 쀄에 λ¬Έμžμ—΄μ„ ν‘œμ‹œν•  λ•Œ 단일 λ˜λŠ” 이쀑 λ”°μ˜΄ν‘œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. st2="ν•œ 쀄에 λ¬Έμžμ—΄μ„ ν‘œμ‹œν•  λ•Œ 단일 λ˜λŠ” 이쀑 λ”°μ˜΄ν‘œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€." print(st2) ν•œ 쀄에 λ¬Έμžμ—΄μ„ ν‘œμ‹œν•  λ•Œ 단일 λ˜λŠ” 이쀑 λ”°μ˜΄ν‘œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. st3="""μ—¬λŸ¬μ€„μ— 걸쳐 λ¬Έμžμ—΄μ„ ν‘œμ‹œν•  경우 삼쀑 λ”°μ˜΄ν‘œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.""" print(st3) μ—¬λŸ¬μ€„μ— 걸쳐 λ¬Έμžμ—΄μ„ ν‘œμ‹œν•  경우 삼쀑 λ”°μ˜΄ν‘œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. Boolean literals True λ˜λŠ” Falseλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. True =1, False=0으둜 μˆ«μžν˜•μœΌλ‘œ μ „ν™˜...