[BASIC] λ¬Έμμ΄
π¨π» Python String λ¬Έλ²
λͺ©ν: νμ΄μ¬μ μ΄μ©ν΄μ λ¬Έμμ΄μ νλ©΄μ μΆλ ₯νλ μ¬λ¬κ°μ§ λ°©λ²μ λ°°μλλ€.
π λ¬Έμ μ λ¬Έμμ΄?
μ°λ¦¬λ μ΄λ©΄μ μ λ§ λ§μ λ¬Έμλ€μ λ΄ λλ€. λνλ―Όκ΅μμ νμ΄λ¬λ€λ©΄ λκ° μ²μμΌλ‘ λ³΄κ² λλ λ¬Έμκ° 'κ°' 'λ' 'λ€' 'λΌ' μ μ΄κ² μ§μ.
β‘ λ¬Έμλ
μ΄λ κ² 'κ°λλ€λΌ'μ κ°μ΄ μΈμ΄μ μ λ¬ μλ¨μ νλλ‘ μ¬μ©λλ λΆνΈ, μ ·μ λ±μΌλ‘ μ‘°ν©νκ²μ μλ―Έν©λλ€.
β‘ λ¬Έμμ΄μ΄λ
κ·Έλ λ€λ©΄ λ¬Έμμ΄μ΄λ 무μμΌκΉμ?
νλ μ΄μμ λ¬Έμλ€μ μ§ν©μ μλ―Ένλλ°μ, μλ₯Όλ€μ΄ "μλ νμΈμ."λ κ°κ°μ 'μ', 'λ ', 'ν', 'μΈ', 'μ' κ° λͺ¨μ¬μ λ§λ€μ΄μ§ λ¬Έμμ΄μ μλ―Έν©λλ€.
π λ¬Έμμ΄ λ§λ€κΈ°
νμ΄μ¬μλ CμΈμ΄λ JAVAμ²λΌ λ³μμ νμ μ΄ μ‘΄μ¬νμ§ μμ΅λλ€.
κ·Έλμ μ΄λ€ κ°μ μ§μ΄λ£λλμ λ°λΌ κ·Έ λ³μκ° λ¬Έμν λ³μ νΉμ μ«μν λ³μ λ±λ±μ΄ λμ΄μ§λλ€.
μ΄λ²μ μ ν¬λ λ¬Έμμ΄μ λ΄μ λ¬Έμν λ³μλ₯Ό λ§λ€μ΄ λ³Όν λ°μ μλμ μ¬μ§μ²λΌ μμ€μ½λλ₯Ό μ λ ₯ν΄μ£ΌμΈμ.
exampleμ΄λΌλ λ³μλ₯Ό λ§λ€κ³ κ·Έμμ μλ°μ΄ν νΉμ λ°μ΄ν["" or '']λ₯Ό μ΄μ©νμ¬ "μλ νμΈμ λ°κ°μ΅λλ€." λΌλ λ¬Έμμ΄μ λ΄μμ£Όμμ΅λλ€.
μ΄λ κ² λ¬Έμμ΄μ λ§λ€λλ μλ°μ΄ν νΉμ λ°μ΄νλ₯Ό μ΄μ©ν΄ ν΄λΉ λ¬Έμλ₯Ό κ°μΈμ£Όλ©΄ λ¬Έμμ΄μ΄ λμ΄μ§λλ€. κ·Έλ¦¬κ³ μ΄ λ¬Έμμ΄μ λ³μμ λ΄μΌλ©΄ λ¬Έμν λ³μκ° λμ΄μ§λ κ²λλ€.
νλ² λ°©κΈ μ λ ₯ν κ²°κ³Όλ¬Όμ ν¨κ» νμΈν΄λ³΄μμ£ .
typeμ΄λΌλ λ©μλλ₯Ό μ΄μ©ν΄μ μ°λ¦¬κ° λ§λ example λ³μκ° μ΄λ€ ννμΈμ§λ₯Ό νμΈμ΄ κ°λ₯νκ³ κ²°κ³Όλ‘ str μ¦ string(=λ¬Έμμ΄)μ μ€μλ§μ νμΈμ΄ κ°λ₯ν©λλ€.
μ΄ λ¬Έμμ΄μ κ΅¬μ§ λ³μμμ λ΄μ§ μμλ κ·Έ μ체λ₯Ό printμμ κΈ°μ ν΄μ μΆλ ₯μ΄ κ°λ₯νλ©°, λ³μμ λ΄μ μνλ‘λ μΆλ ₯μ΄ κ°λ₯ν©λλ€.
π Escape λ¬Έμ μ¬μ©νκΈ°
EscapeλΌλ λ¨μ΄λ μ°λ¦¬λ§λ‘ νμΆμ΄λΌλ μλ―Έλ₯Ό κ°μ§κ³ μμ΅λλ€.
μ¦ escapre stringμ νμΆν μΈμ΄λΌλ μλ―Έλ₯Ό κ°μ§κ² λ©λλ€.
νμΆν μΈμ΄, κ³Όμ° λ¬΄μμ νμΆνλ€λ μ΄μΌκΈ°μΌκΉμ?
μ§κΈλΆν° κ·Έ μ΄μΌκΈ°λ₯Ό λ€λ€λ³΄κ³ μ ν©λλ€.
CμΈμ΄λ Pythonμ΄λ μΈμ΄λ₯Ό λ§λ€λ ν΄λΉ μΈμ΄λ₯Ό λ§λ κ°λ°μκ° λ¬Έλ²μΌλ‘ μ§μ ν΄λ νΉμ μ½λλ€μ΄ μμ΅λλ€.
μλ₯Όλ€μ΄ [ \ ] λ¬Έμλ λ°±μ¬λμ¬ λΌκ³ μ½μΌλ©° λ¬Έλ²μμλ νΉμν μ©λλ‘ μ¬μ©λμ΄μ§λλ€. κ°μ₯ ν° μλ‘ κ°νμ ν λ μ¬μ©λμ΄μ§μ£ .
( [ \n ] μ λ¬Έμμ΄ λ§¨ μμ μΆκ°νλ©΄ μΆλ ₯μ λ¬Έμμ΄ μμ λΉμ΄μλ νμ€μ κ³΅λ°±μ΄ μκΉλλ€. )
μμ νμ΄λΌμ΄νΈλΆλΆμ΄ κ°νμ λͺ λ Ήνλ λΆλΆμ λλ€.
\(λ°±μ¬λμ¬) λ§κ³ λ λ¬Έμμ΄μ λ§λ€κΈ°μν "(μ λ°μ΄ν), '(λ°μ΄ν) λ λ§μλλ‘ μ¬μ©μ΄ λΆκ°λ₯ν©λλ€.
μ΄λ¬ν μ½λλ€μ κ°λ°μ μν΄ λ¬Έλ²μΌλ‘ μ§μ λ μ½λλ€μ΄κΈ° λλ¬Έμ λ¬Έμμ΄λ‘ μ¬μ©νλκ²μ΄ κ·Έλ₯ νμ©λμ΄μ§μ§ μμ΅λλ€.
κ·Έλ λ€λ©΄ μ΄λ»κ²ν΄μΌ μ΄λ¬ν λ¬Έμλ€μ λ¬Έμμ΄λ‘ μ¬μ©μ΄ κ°λ₯ν κΉμ?
μ λ΅μ λ°λ‘ escape stringμΌλ‘ λ§λ€μ΄μ£Όλ©΄ λλκ²λλ€.
μ¦, λ¬Έλ²μ νμΆν μΈμ΄μΈκ±°μ£ !
μ΄λ κ² λ¬Έλ²μ νμΆμμΌμ£ΌκΈ° μν΄μλ pythonμμλ ν΄λΉ λ¬Έμμ \(λ°±μ¬λμ¬)λ₯Ό λΆμ¬μ£ΌκΈ°λ§ νλ©΄ λ©λλ€.
λ§μ½ νλ©΄μ λ°±μ¬λμ¬λ₯Ό λμ°κ³ μΆλ€λ©΄ [ \\ ]
λ§μ½ νλ©΄μ μλ°μ΄νλ₯Ό λμ°κ³ μΆλ€λ©΄ [ \" ] λ₯Ό μ λ ₯ν΄ μ£Όλ©΄ λλ κ²μ΄μ£ .
π Python μΈμ½λ©
μΈμ½λ©μ΄λ 무μμΌκΉμ?
μΈμ½λ©μ μ 보μ ννλ νμμ λ³ννλ μ²λ¦¬λ μ²λ¦¬ λ°©μμ μλ―Έν©λλ€.
CμΈμ΄λ‘ μλ₯Όλ€μ΄ μ€λͺ νμλ©΄, CμΈμ΄μ Charν μλ£νμ 1byte ν¬κΈ°λ₯Ό κ°μ§κ² λλλ° 1λ°μ΄νΈλ 8λΉνΈ μ¦ 2*2*2*2*2*2*2*2 κ°μ§μ μ«μννμ΄ κ°λ₯ν΄μ§λλ€.
κ° μ«μλ§λ€ νΉμ λ¬Έμλ₯Ό 맀μΉμν¨λ€κ³ κ°μ νμλ 1byteλ‘ 256κ°μ§μ λ¬Έμλ₯Ό ννν μ μλκ²μ΄μ£ .
μ΄λ κ² λ¬Έμλ₯Ό νννλ λ°©μμ μ¬λ¬κ°μ§κ° μκ³ μ΄ λ°©λ²μλ°λΌ μ΄μ§μ½λλ₯Ό μ½μ΄ λ¬Έμλ‘ νννλλ‘ λͺ μν΄λ λ°©μμ΄ μΈμ½λ©μ΄λΌ μ΄μΌκΈ°λ릴 μ μκ² μ΅λλ€.
μ¬κΈ°μ μ ν¬κ° μ¬μ©νλ Pythonμ κΈ°λ³Έμ μΌλ‘ UnicodeκΈ°λ°μ΄λΌκ³ ν©λλ€.
κ·Έλ λ€λ©΄ μ¬κΈ°μ Unicode(μ λμ½λ)κ° λ¬΄μμΌκΉμ?
μ λμ½λλ, μ«μμ κΈμ, μ¦ ν€μ κ°μ΄ 1:1λ‘ λ§€νλ ννμ μ½λ μ λμ½λλΌκ³ ν©λλ€.
μμμ μ€λͺ λλ Έλ μΈμ½λ© λ°©μμ΄ μ λμ½λ λ°©μμΈ μ μ΄μ£ .
λ€μλ§ν΄ μμ€ν€μ½λλ‘ 0x41 = A λ‘ λ§€νλ κ² μ²λΌ, μμ€ν€μ½λλ‘ ννν μ μλ λ¬Έμλ€μ μ λμ½λλΌλ μ΄λ¦ μλ μ μΈκ³μ λͺ¨λ λ¬Έμλ₯Ό νΉμ μ«μ(ν€)μ 1:1λ‘ λ§€νν κ²μ λλ€.
κ·Έλ λ€λ©΄ λ€μμ μΈμ½λ© λ°©μμ€ μ΄λ€κ²λ€μ΄ μ λμ½λ λ°©μμΌκΉμ?
(ASCII, EUC-KR, CP949, UTF8, UTF16)
μ λ΅λΆν° λ§μλ리μλ©΄ μ΄ μ€μ μ λμ½λ κ·Έ μμ²΄μΈ κ²μ μμ΅λλ€.
κ·Έλλ§ UTF-8, UTF-16λ μ λμ½λλ₯Ό 'μ¬μ©'νλ μΈμ½λ© λ°©μμ΄κΈ° λλ¬Έμ μ λμ½λμ μ μΌ κ°κΉλ€κ³ λ³Ό μλ μκ² λ€μ.
μ μ΄μ μΈμ½λ© μ΄μΌκΈ°λ₯Ό κΊΌλΈ μ΄μ λ₯Ό μ€λͺ ν μ μκ² λ€μ.
μ°λ¦¬ vscodeμ printλ¬Έμ μ΄μ©ν΄ ββ¬βμ μΆλ ₯ν΄λ³Όκ±°μμ. μλ§ κ·Έλ₯ κΈμ΄μ μΆλ ₯νλ©΄ μΆλ ₯μ΄ μλμ€κΊΌλΌ μκ°μ΄ λλλ€.
(μλμ° μ μ λΌλ κ°μ νμ)
μμ λ§νκ±°μ²λΌ νμ΄μ¬μ μ λμ½λ κΈ°λ°μ΄κΈ° λλ¬Έμ ββ¬βμ κ°μ νΉμλ¬Έμλ₯Ό νλ©΄μ μΆλ ₯νκΈ° μν΄μλ μ°λ¦¬μ μμ€μ½λ μ΅ μλ¨μ μ΄λ€ μΈμ½λ© λ°©μμ μ¬μ©ν κ²μΈμ§ λͺ μλ₯Ό ν΄μ£Όμ΄μΌ ν΄λΉ νΉμλ¬Έμλ₯Ό μ½μ΄λ€μΌ μ μμ΅λλ€.
νμ μμ§ μ΄λ ν μΈμ½λ© λ°©μλ μ¬μ©νμ§ μκ³ μκΈ° λλ¬Έμ μ°λ¦¬μ μμ€μ½λ μ΅ μλ¨μ μ΄λ€ μΈμ½λ© λ°©μμ μ¬μ©ν κ²μΈμ§λ₯Ό λͺ μν΄ μ£Όμ΄μ νΉμλ¬Έμλ₯Ό ν΄λ ν΄ μ£Όμ΄μΌν©λλ€.
μλ κ·Έλ¦Όμ²λΌ μ λ ₯ ν νλ©΄μ μΆλ ₯ν΄ λ³Όκ²μ.
μμ κ·Έλ¦Όμ²λΌ μ΅ μλ¨μ utf-8 μΈμ½λ©μ μ¬μ©νκ² λ€λ λͺ μλ₯Ό μ£Όμμ ν΅ν΄ κ°λ₯νκ³ μμκ°μ΄ ν΄μ£Όμλ€λ©΄, μ λμ½λλ₯Ό utf-8 μΈμ½λ© λ°©μμΌλ‘ ν΄λ νκ² λ©λλ€.
κ·Έλ λ€λ©΄ 3μ€μ νΉμλ¬Έμ μμ uλ 무μμΌκΉμ?
μΌλ°μ μΌλ‘ μ λμ½λ λ¬ΈμλΌλκ²μ μ§μΉν λλ ν΄λΉ λ¬Έμμ΄ μμ uλ₯Ό λΆμ¬μ£Όμ΄ ννν΄μ€λλ€.
νΉμλ¬Έμ λ§κ³ μ λμ½λλ₯Ό λμ΄ν ν μ΄λΈμ μλ λ°©λ²μΌλ‘λ λκ°μ κ²°κ³Όλ₯Ό μΆλ ₯λ κ°λ₯ν©λλ€.