🐍PYTHON3_#03 : int, float

이트루·2021λ…„ 10μ›” 26일
0

🌡Python3

λͺ©λ‘ 보기
4/4

μ„Έ 번째 파이썬 μ‹œκ°„μž…λ‹ˆλ‹€.
이전 μ‹œκ°„(🐍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 μžλ£Œκ΅¬μ‘°μ— λŒ€ν•΄ λ”μš± μžμ„Ένžˆ 닀루어 보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€.

profile
λ‚΄ κΏˆμ€ μ„Έκ³„μ •λ³΅πŸ§

0개의 λŒ“κΈ€