๐ŸPYTHON3_#03 : int, float

5472 ๋‹จ์–ด 0bIntbin0o0xํŒŒ์ด์ฌ

์„ธ ๋ฒˆ์งธ ํŒŒ์ด์ฌ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.
์ด์ „ ์‹œ๊ฐ„(๐ŸPYTHON3_#02 : ์ž๋ฃŒํ˜•๊ณผ ์ž๋ฃŒ๊ตฌ์กฐ)์—๋Š” ์ž๋ฃŒํ˜•(data type)๊ณผ ์ž๋ฃŒ๊ตฌ์กฐ(data structure), mutable/immutable object, iterable object์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๋‚ด์šฉ์„ ์ฝ์–ด๋ณด๊ณ , ์ž˜ ๊ธฐ์–ต์ด ๋‚˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋ณต์Šตํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

โ—ผ ์ž๋ฃŒํ˜•(data type)์˜ ์ข…๋ฅ˜์™€ ํ˜•ํƒœ
โ—ผ ์ž๋ฃŒ ๊ตฌ์กฐ(data structure)์˜ ์ข…๋ฅ˜์™€ ์ƒ์„ฑ ๋ฐฉ๋ฒ•, ํŠน์ง•, ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ์˜ ํ˜•ํƒœ
โ—ผ mutable object์˜ ์ •์˜์™€ ์ข…๋ฅ˜
โ—ผ immutable object์˜ ์ •์˜์™€ ์ข…๋ฅ˜
โ—ผ iterable object์˜ ์ •์˜์™€ ์ข…๋ฅ˜ ๋ฐ ํŠน์ง•
โ—ผ object์˜ ํ˜•๋ณ€ํ™˜, type(), id(), enumerate()

์ด๋ฒˆ ์‹œ๊ฐ„์€ int, float ์ž๋ฃŒํ˜•์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ๋“ค์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


int ์ž๋ฃŒํ˜•

์ด์ „ ์‹œ๊ฐ„์—์„œ int ์ž๋ฃŒํ˜•์€ 10์ง„์ˆ˜๊ฐ€ ๊ธฐ๋ณธ์ด๋ฉฐ, ์ ‘๋‘์‚ฌ๋‚˜ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ์ง„์ˆ˜์ž„์„ ๋‚˜ํƒ€๋‚ด๊ฑฐ๋‚˜ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Œ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.
์ถ”๊ฐ€์ ์œผ๋กœ, int์˜ ํด๋ž˜์Šค ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•ด str๊ณผ float์˜ type์„ int๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ, ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š”
1. ์ ‘๋‘์‚ฌ๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ์ง„์ˆ˜์ž„์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•
2. ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋‹ค๋ฅธ ์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•
3. ํด๋ž˜์Šค ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•ด type์„ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•
์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

1. ์ ‘๋‘์‚ฌ๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ์ง„์ˆ˜์ž„์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•

์ปดํ“จํ„ฐ์—์„œ ์–ด๋–ค ์ˆซ์ž๋ฅผ 10์ง„์ˆ˜๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์ง„์ˆ˜๋กœ ํ•ด์„๋˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด ํ•ด๋‹น ์ง„์ˆ˜๋ฅผ ๊ฐ€์ง€๋Š” ์ˆซ์ž ์•ž์— ์•„๋ž˜์˜ ์ ‘๋‘์‚ฌ๋“ค์„ ๋ถ™์—ฌ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

- 2์ง„์ˆ˜ : 0b

์–ด๋–ค ์ˆซ์ž๊ฐ€ 2์ง„์ˆ˜์ž„์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•์€ 2์ง„์ˆ˜ ์•ž์— 0b์„ ๋ถ™์—ฌ์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

#2์ง„์ˆ˜ 10100 ์•ž์— 2์ง„์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ ‘๋‘์‚ฌ 0b์‚ฌ์šฉ
In [1] : 0b10100
#10100์„ 2์ง„์ˆ˜๋กœ ํ•ด์„ํ•˜๊ณ , ๋Œ€์‘ํ•˜๋Š” 10์ง„์ˆ˜ ๊ฐ’์ธ 20์„ ์ถœ๋ ฅ
Out [1] : 20

- 8์ง„์ˆ˜ : 0o

์–ด๋–ค ์ˆซ์ž๊ฐ€ 8์ง„์ˆ˜์ž„์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•์€ 8์ง„์ˆ˜ ์•ž์— 0o์„ ๋ถ™์—ฌ์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

#8์ง„์ˆ˜ 24 ์•ž์— 8์ง„์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ ‘๋‘์‚ฌ 0o์‚ฌ์šฉ
In [1] : 0o24
#24๋ฅผ 8์ง„์ˆ˜๋กœ ํ•ด์„ํ•˜๊ณ , ๋Œ€์‘ํ•˜๋Š” 10์ง„์ˆ˜ ๊ฐ’์ธ 20์„ ์ถœ๋ ฅ
Out [1] : 20

- 16์ง„์ˆ˜ : 0x

์–ด๋–ค ์ˆซ์ž๊ฐ€ 16์ง„์ˆ˜์ž„์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•์€ 16์ง„์ˆ˜ ์•ž์— 0x์„ ๋ถ™์—ฌ์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

#16์ง„์ˆ˜ 14 ์•ž์— 16์ง„์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ ‘๋‘์‚ฌ 0x์‚ฌ์šฉ
In [1] : 0x14
#14๋ฅผ 16์ง„์ˆ˜๋กœ ํ•ด์„ํ•˜๊ณ , ๋Œ€์‘ํ•˜๋Š” 10์ง„์ˆ˜ ๊ฐ’์ธ 20์„ ์ถœ๋ ฅ
Out [1] : 20

2. ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•

10์ง„์ˆ˜ ๊ฐ’์„ 2์ง„์ˆ˜, 8์ง„์ˆ˜, ํ˜น์€ 16์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ํ•ด๋‹นํ•˜๋Š” ํ•จ์ˆ˜์— 10์ง„์ˆ˜ ๊ฐ’์„ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. โš ๋ฐ˜ํ™˜๊ฐ’์€strํ˜•ํƒœ์ž„์— ์ฃผ์˜ํ•ฉ์‹œ๋‹ค. ๊ฐ ์ง„์ˆ˜๋ณ„ ํ•จ์ˆ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

- 2์ง„์ˆ˜ : bin()

10์ง„์ˆ˜๋ฅผ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ bin()ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ด„ํ˜ธ ์•ˆ์— ๋ฐ”๊พธ๊ณ  ์‹ถ์€ 10์ง„์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋Œ€์‘ํ•˜๋Š” 2์ง„์ˆ˜๋ฅผ returnํ•ด์ค๋‹ˆ๋‹ค. return data type ์€ strํ˜•์ž…๋‹ˆ๋‹ค.

#10์ง„์ˆ˜์ธ 20์„ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด bin()ํ•จ์ˆ˜ ์ด์šฉ
In [1] : bin(20)
#10์ง„์ˆ˜ 20์˜ 2์ง„์ˆ˜ ๊ฐ’์ธ 10100์˜ str์„ return.
#๋˜ํ•œ ์ถœ๋ ฅ๋œ ๊ฐ’์€ 2์ง„์ˆ˜์ž„์„ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•ด ์ ‘๋‘์‚ฌ 0b์‚ฌ์šฉ.
Out [1] : '0b10100'

- 8์ง„์ˆ˜ : oct()

10์ง„์ˆ˜๋ฅผ 8์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ oct()ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ด„ํ˜ธ ์•ˆ์— ๋ฐ”๊พธ๊ณ  ์‹ถ์€ 10์ง„์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋Œ€์‘ํ•˜๋Š” 8์ง„์ˆ˜๋ฅผ returnํ•ด์ค๋‹ˆ๋‹ค. return data type ์€ strํ˜•์ž…๋‹ˆ๋‹ค.

#10์ง„์ˆ˜์ธ 20์„ 8์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด oct()ํ•จ์ˆ˜ ์ด์šฉ
In [1] : oct(20)
#10์ง„์ˆ˜ 20์˜ 8์ง„์ˆ˜ ๊ฐ’์ธ 24์˜ str์„ return.
#๋˜ํ•œ ์ถœ๋ ฅ๋œ ๊ฐ’์€ 8์ง„์ˆ˜์ž„์„ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•ด ์ ‘๋‘์‚ฌ 0o์‚ฌ์šฉ.
Out [1] : '0o24'

- 16์ง„์ˆ˜ : hex()

10์ง„์ˆ˜๋ฅผ 16์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ hex()ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ด„ํ˜ธ ์•ˆ์— ๋ฐ”๊พธ๊ณ  ์‹ถ์€ 10์ง„์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋Œ€์‘ํ•˜๋Š” 16์ง„์ˆ˜๋ฅผ returnํ•ด์ค๋‹ˆ๋‹ค. return data type ์€ strํ˜•์ž…๋‹ˆ๋‹ค.

#10์ง„์ˆ˜์ธ 20์„ 16์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด hex()ํ•จ์ˆ˜ ์ด์šฉ
In [1] : hex(20)
#10์ง„์ˆ˜ 20์˜ 16์ง„์ˆ˜ ๊ฐ’์ธ 14์˜ str์„ return.
#๋˜ํ•œ ์ถœ๋ ฅ๋œ ๊ฐ’์€ 16์ง„์ˆ˜์ž„์„ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•ด ์ ‘๋‘์‚ฌ 0x์‚ฌ์šฉ.
Out [1] : '0x14'

3. ํด๋ž˜์Šค ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•ด type์„ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•

int์˜ ํด๋ž˜์Šค ์ƒ์„ฑ์ž(class constructor)์„ ์ด์šฉํ•˜๋ฉด float, str์˜ type์„ int๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

#int()๋ฅผ ์ด์šฉํ•ด float๋ฅผ intํ˜•์œผ๋กœ ๋ณ€ํ™˜
In [1] : int(3.9)
Out [1] : 3
#int()๋ฅผ ์ด์šฉํ•ด str์„ intํ˜•์œผ๋กœ ๋ณ€ํ™˜
In [2] : int("450")
Out [2] : 450

โš  ์ฃผ์˜ํ•  ์  โš 

  • int()๋Š” ๊ด„ํ˜ธ ์•ˆ์— floatํ˜•์„ ๋„ฃ์œผ๋ฉด ์‹ค์ˆ˜์˜ ์†Œ์ˆ˜์  ๋ถ€๋ถ„์„ ์ œ์™ธํ•˜๊ณ  ์ถœ๋ ฅํ•˜๋ฉฐ, round-off(๋ฐ˜์˜ฌ๋ฆผ)๋Š” ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ๊ด„ํ˜ธ ์•ˆ์— strํ˜•์„ ๋„ฃ์„ ๊ฒฝ์šฐ, ๋”ฐ์˜ดํ‘œ ์•ˆ์ด ์ˆซ์ž์ธ ๊ฒฝ์šฐ๋งŒ validํ•ฉ๋‹ˆ๋‹ค. ์ด์™ธ์˜ ๊ฒฝ์šฐ ValueError๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. 3+4์™€ ๊ฐ™์ด operation์ด ์žˆ๋Š” ๊ฒฝ์šฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ invalidํ•ฉ๋‹ˆ๋‹ค.


float ์ž๋ฃŒํ˜•

float ์ž๋ฃŒํ˜•๋„ int ์ž๋ฃŒํ˜•๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ float์˜ ํด๋ž˜์Šค ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•ด int์™€ str์˜ type์„ float๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. ํด๋ž˜์Šค ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•ด type์„ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•

float์˜ ํด๋ž˜์Šค ์ƒ์„ฑ์ž(class constructor)์„ ์ด์šฉํ•˜๋ฉด str, int์˜ type์„ float๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

#float()๋ฅผ ์ด์šฉํ•ด int๋ฅผ floatํ˜•์œผ๋กœ ๋ณ€ํ™˜
In [1] : float(3)
Out [1] : 3.0
#float()๋ฅผ ์ด์šฉํ•ด str์„ floatํ˜•์œผ๋กœ ๋ณ€ํ™˜
In [2] : float("3.4")
Out [2] : 3.4

โš  ์ฃผ์˜ํ•  ์  โš 

  • ๊ด„ํ˜ธ ์•ˆ์— strํ˜•์„ ๋„ฃ์„ ๊ฒฝ์šฐ, ๋”ฐ์˜ดํ‘œ ์•ˆ์ด ์ˆซ์ž์ธ ๊ฒฝ์šฐ๋งŒ validํ•ฉ๋‹ˆ๋‹ค. ์ด์™ธ์˜ ๊ฒฝ์šฐ ValueError๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. 3/4์™€ ๊ฐ™์ด operation์ด ์žˆ๋Š” ๊ฒฝ์šฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ invalidํ•ฉ๋‹ˆ๋‹ค.

โœ” Check_List

์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” int, float์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค.
์•„๋ž˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ฒœ์ฒœํžˆ ์ฝ์–ด๋ณด๋ฉด์„œ ์˜ค๋Š˜ ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ๋ณต์Šตํ•ด๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค.

โ—ผ ์ž…๋ ฅํ•œ ์ˆ˜๋ฅผ 10์ง„์ˆ˜๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์ง„์ˆ˜๋กœ ํ•ด์„ํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•
โ—ผ 10์ง„์ˆ˜๋ฅผ ๋‹ค๋ฅธ ์ง„์ˆ˜(2, 8, 16์ง„์ˆ˜)๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•
โ—ผ float, strํ˜•์„ intํ˜•์œผ๋กœ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ•
โ—ผ int, strํ˜•์„ floatํ˜•์œผ๋กœ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ•

๋‹ค์Œ ์‹œ๊ฐ„์—๋Š” str ์ž๋ฃŒํ˜•๊ณผ list, tuple ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด ๋”์šฑ ์ž์„ธํžˆ ๋‹ค๋ฃจ์–ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ