๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ Python/python-programming

[python] (2) Data type ์ž๋ฃŒํ˜• & Variable ๋ณ€์ˆ˜ | ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ํƒ€์ž… ์ •๋ฆฌ

python ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ์ข…๋ฅ˜์— ๋Œ€ํ•ด ํฌ๊ฒŒ ์•Œ์•„๋ณด๊ณ , ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ์„ธ๋ถ€์ ์œผ๋กœ ๊ณต๋ถ€ํ•ด๋ด…์‹œ๋‹ค!

ํŒŒ์ด์ฌ ์ž๋ฃŒํ˜•

1. Data type(๋ฐ์ดํ„ฐ ํƒ€์ž…, ์ž๋ฃŒํ˜•)

'์ž๋ฃŒํ˜•'์ด๋ž€ '์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ํ˜•ํƒœ'๋ผ๋Š” ๋œป! python ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ๋น„์Šทํ•˜๋‹ค.

1) ๊ธฐ๋ณธํ˜• (๊ธฐ๋ณธ์ž๋ฃŒํ˜•)

โ–ช๏ธ Numeric(์ˆซ์žํ˜•) : ์ •์ˆ˜(int) , ์‹ค์ˆ˜(float)

  • int+float=float :  ์ •์ˆ˜ํ˜•๊ณผ ์‹ค์ˆ˜ํ˜•์„ ์—ฐ์‚ฐํ•˜๋ฉด, ์‹ค์ˆ˜ํ˜•
  • ์‹ค์ˆ˜(float)ํ˜•์€ ์†Œ์ˆ˜์  ๋ฐ˜์˜ฌ๋ฆผ, ์˜ฌ๋ฆผ, ๋‚ด๋ฆผ์— ๋Œ€ํ•œ ํ‘œํ˜„์„ ์ถ”๊ฐ€์ ์œผ๋กœ ์•Œ๊ณ ์žˆ์œผ๋ฉด ํŽธ๋ฆฌํ•จ

์ˆซ์žํ˜•

'''
float ์†Œ์ˆ˜์  ํ‘œํ˜„ ํ•จ์ˆ˜
round(์‹ค์ˆ˜, n) : ์†Œ์ˆ˜์  n๋ฒˆ์งธ๊นŒ์ง€ ๋ฐ˜์˜ฌ๋ฆผํ•˜์—ฌ ์ถœ๋ ฅ
roundํ•จ์ˆ˜ ์™ธ์—๋„ foramting ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์Œ! ๋’ค์— ๋”ฐ๋กœ ๋‹ค๋ฃฐ ์˜ˆ์ •
'''
round(3.141592)  # 3 : ์ •์ˆ˜์ž๋ฆฌ๊นŒ์ง€๋งŒ ๋ฐ˜์˜ฌ๋ฆผํ•˜์—ฌ ์ถœ๋ ฅ
round(3.9)  # 4 : ์ •์ˆ˜์ž๋ฆฌ๊นŒ์ง€๋งŒ ๋ฐ˜์˜ฌ๋ฆผํ•˜์—ฌ ์ถœ๋ ฅ
round(3.141592, 2)  # 3.14 : 2๋ฒˆ์งธ์ž๋ฆฌ๊นŒ์ง€๋งŒ ๋ฐ˜์˜ฌ๋ฆผํ•˜์—ฌ ์ถœ๋ ฅ
round(3.149, 2)  # 3.15 : 2๋ฒˆ์งธ์ž๋ฆฌ๊นŒ์ง€๋งŒ ๋ฐ˜์˜ฌ๋ฆผํ•˜์—ฌ ์ถœ๋ ฅ

โ–ช๏ธ ๋ถ€์šธ(bool) : False, True

  • ๋ช…์ œ์— ๋Œ€ํ•œ ์˜ˆ, ์•„๋‹ˆ์˜ค๋กœ ์˜ˆ์•ฝ์–ด์ž„
  • True, False๋ฅผ ๊ฐ๊ฐ int๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋ฉด ์ •์ˆ˜ 1๊ณผ 0์ด ๋œ๋‹ค. ๋ฐ˜๋Œ€๋„ ์„ฑ๋ฆฝํ•œ๋‹ค.
  • ์ฃผ์˜ : "True", "False"๋Š” stirng type(๋ฌธ์ž์—ด)์ž„! ๋”ฐ์˜ดํ‘œ๋ฅผ ๋นผ๊ณ  ๊ทธ๋Œ€๋กœ ์ž…๋ ฅํ•ด์•ผํ•จ
  • ์—ฐ์‚ฐ : AND, OR, NOT

๋ถ€์šธํ˜•

โ–ช๏ธ None type

  • ์•„๋ฌด๊ฒƒ๋„ ์•„๋‹Œ ํƒ€์ž…์œผ๋กœ, ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์—์„œ์˜ Null ๊ฐ’๊ณผ ๊ฐ™์€ ๊ฒƒ!
  • ์‚ฌ์ „์ƒ์˜ ์˜๋ฏธ๋Š” Null : Nullify(๋ฌดํšจํ™”ํ•˜๋‹ค)๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ
  • ๊ฒฐ์ธก์น˜, Missing value ๋ผ๊ณ ๋„ ํ•จ

None type

2) ์ž๋ฃŒ๊ตฌ์กฐ(Data Structure)

โ–ช๏ธ ์‹œํ€€์Šค(Sequence) : ๋ฌธ์ž์—ด(str), ๋ฆฌ์ŠคํŠธ(List), ํŠœํ”Œ(Tuple)

  • ์ˆœ์„œ๊ฐ€ ์žˆ์œผ๋ฉฐ, ๋ฐฐ์—ด·๋‚˜์—ด ํ˜•์‹
  • ์ธ๋ฑ์‹ฑ(indexing), ์Šฌ๋ผ์ด์‹ฑ(slicing) ๊ฐ€๋Šฅ
  • +์—ฐ์‚ฐ์ž๋กœ ์—ฐ๊ฒฐ, *์—ฐ์‚ฐ์ž๋กœ ๋ฐ˜๋ณต
  • in์—ฐ์‚ฐ์ž๋กœ ์ž๋ฃŒ ์œ ๋ฌด ํ™•์ธ ๊ฐ€๋Šฅ
  • mutable(๊ฐ€๋ณ€ ํƒ€์ž…, ๊ฐ’ ์ˆ˜์ • ๊ฐ€๋Šฅ) vs immutable(๋ถˆ๋ณ€ ํƒ€์ž…, ๊ฐ’ ์ˆ˜์ • ๋ถˆ๊ฐ€๋Šฅ)
    • ๋ฆฌ์ŠคํŠธ๋Š” ๋ฐ์ดํ„ฐ ์ˆ˜์ • ๊ฐ€๋Šฅ : 'mutable'ํ•œ ์ž๋ฃŒํ˜•
      • ํ•ด๋‹น value๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜์—ˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ๋‚ด์šฉ ์ˆ˜์ • ๊ฐ€๋Šฅ
      • cf) list, set, dict
    • ๋ฌธ์ž์—ด, ํŠœํ”Œ์€ ๋ฐ์ดํ„ฐ ์ˆ˜์ • ๋ถˆ๊ฐ€๋Šฅ : 'immutable'ํ•œ ์ž๋ฃŒํ˜•
      • ํ•œ๋ฒˆ ์ƒ์„ฑํ•œ ์ธ์Šคํ„ด์Šค์˜ ์†์„ฑ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€(์ด๋ฏธ ๋ฉ”๋ชจ๋ฆฌ ์œ„์— ์žˆ๋Š” value๋Š” ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€)
      • cf) bool, int, float, tuple, string
      • ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ์ฒด ์ž์ฒด๋Š” ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Œ

mutable๊ณผ immutable

๋ฌธ์ž์—ด, ๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ ๊ทธ๋ฆฌ๊ณ  ์…‹, ๋”•์…”๋„ˆ๋ฆฌ ๋ชจ๋‘ ์ค‘์š”ํ•œ ๊ฐœ๋…์ด๋ผ ํ•ด๋‹น ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ๋งŒ ์ •๋ฆฌํ•˜๊ณ , ๋”ฐ๋กœ ํ•˜๋‚˜์”ฉ ์ •๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ‘€

    • ๋ฌธ์ž์—ด(String)
      • ํฐ๋”ฐ์˜ดํ‘œ(")์™€ ํ™‘๋”ฐ์˜ดํ‘œ(') ๋ชจ๋‘ ์‚ฌ์šฉ ๊ฐ€๋Šฅ, ๋‹จ ํ˜ผ์šฉ ์‚ฌ์šฉ X
      • """ ๋ฌธ์ž์—ด ๋‚ด์šฉ """(or ํ™‘๋”ฐ์˜ดํ‘œ)์„ ์‚ฌ์šฉํ•˜๋ฉด ์ค„๋ฐ”๊ฟˆ(\n) ๊ฐ€๋Šฅ
      • ๋ฌธ์ž์—ด์€ ์ค‘์š”ํ•œ ๋‚ด์šฉ์ด๋ผ formatting, indexing ๋“ฑ๊ณผ ํ•จ๊ป˜ 
    • ๋ฆฌ์ŠคํŠธ(List) : [ ]
      • ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๊ฐ€๋ณ€ ๊ฐ’๋“ค์˜ ๋ชจ์ž„
      • ๋ฐ์ดํ„ฐ ๊ฐ’ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
    • ํŠœํ”Œ(Tuple) : ( )
      • ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๋ถˆ๋ณ€ ๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ
      • ๋ฐ์ดํ„ฐ ๊ฐ’ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅ โžก๏ธ ์ฝ๊ธฐ ์ „์šฉ(์กฐํšŒ๋งŒ!), ์•ˆ์ „์„ฑ·๋ณด์•ˆ์„ฑ์˜ ์žฅ์ , ์ˆ˜์ •์€ ์•ˆ๋˜์ง€๋งŒ ์ถ”๊ฐ€๋Š” ๊ฐ€๋Šฅ

โ–ช๏ธ ์…‹(Set) : { }

  • ์ˆœ์„œ๊ฐ€ ์—†๋Š” ์ค‘๋ณต๋˜์ง€ ์•Š์€ ๊ฐ’๋“ค์˜ ๊ฐ€๋ณ€ ๋ชจ์ž„
  • ์ˆ˜ํ•™์˜ ์ง‘ํ•ฉ๊ณผ ๋น„์Šทํ•จ
  • ๋ฐ์ดํ„ฐ ๊ฐ’ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
  • ์ง‘ํ•ฉ ์—ฐ์‚ฐ๋“ค(ํ•ฉ์ง‘ํ•ฉ, ๊ต์ง‘ํ•ฉ, ์ฐจ์ง‘ํ•ฉ, ๋Œ€์นญ์ฐจ์ง‘ํ•ฉ ์—ฐ์‚ฐ) ๊ฐ€๋Šฅ
  • ๊ณต์ง‘ํ•ฉ์„ ๋งŒ๋“ค ๋•Œ๋Š”, set()๋กœ ๋งŒ๋“ ๋‹ค. (cf. {}๋กœ ๋งŒ๋“ค๋ฉด, dictionary์ž„!)

โ–ช๏ธ ๋”•์…”๋„ˆ๋ฆฌ(Dictionary, Mapping) : { key : value }

  • ํ‚ค(key)์™€ ๊ฐ’(value)๊ฐ€ ์Œ์œผ๋กœ ์ €์žฅ๋˜๋Š” ๊ฐ’๋“ค์˜ ๊ฐ€๋ณ€ ๋ชจ์ž„
  • ํ‚ค(key)์™€ ๊ฐ’(value)๊ฐ€ ์„œ๋กœ ๋งคํ•‘๋œ๋‹ค(mapping)
  • ์ˆœ์„œ ์—†์Œ
  • ๋ฐ์ดํ„ฐ ๊ฐ’ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
  • key๋Š” ์ค‘๋ณต ๋ถˆ๊ฐ€๋Šฅ & value๋Š” ์ค‘๋ณต ๊ฐ€๋Šฅ
  ์ค‘๋ณต ์ˆœ์„œ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ / ๋ถˆ๊ฐ€๋Šฅ
๋ฆฌ์ŠคํŠธ(List) O O O
ํŠœํ”Œ(Tuple) O O X
๋”•์…”๋„ˆ๋ฆฌ(Dictionary) key๋Š” X, value๋Š” O X key๋Š” X, value๋Š” O
์ง‘ํ•ฉ, ์„ธํŠธ(Set) X X O

2. Variable(๋ณ€์ˆ˜)

  • ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„
  • (ํŒŒ์ด์ฌ์€) ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ํ•จ๊ป˜ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. (๊ฐ’์ด ๋จผ์ € ๋™์ ์œผ๋กœ ํ• ๋‹น๋˜๊ณ  ๋‚˜์„œ, ๊ฑฐ๊ธฐ์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์•Œ์•„๋‚ธ๋‹ค)
  • ํ• ๋‹น = assign = ๋Œ€์ž… = ์ฃผ์ž… = set = ๊ฐ’์„ ๋„ฃ๋Š”๋‹ค
  • ๋ฐ˜ํ™˜ = return = get
  • ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์€ ์ง€๋‚œ ํฌ์ŠคํŒ…์—์„œ ๋ฐฐ์šด ์‹๋ณ„์ž(identifier) ๊ทœ์น™๊ณผ ๊ด€๋ก€์— ๋งž์ถ”์–ด ์ง€์–ด์ค€๋‹ค.

Reference