일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- findContours
- text2img
- c언어
- #실생활영어
- python __init__
- python 알고리즘
- 완전탐색
- tokenizing
- #opencv
- opencv SURF
- TensorFlow
- #일상영어
- convexhull
- python list
- #Android
- 이미지 생성
- 딥러닝
- Convolution Neural Network
- #프로젝트
- keras
- 영어명언
- tensorflow update
- #영어 명언
- 영어
- object detection
- word embedding
- #1일1영어
- #실생활 영어
- #English
- #영어
- Today
- Total
When will you grow up?
python_숫자 본문
새로운 언어를 배울때 일반적으로 'Hello World'를 출력으로 시작한다.
그 다음 숫자와 산술 연산을 이용하여 뭔가를 계산한다.
숫자는 정수(integer), 부동소수점(float), 복소수(complex)로 나타낸다.
사람에게는 10개의 손가락으로 표현하는 십진법(decimal)로 표현하는것이 자연스러운 반면에 컴퓨터는 상태의 신호(참, 거짓)를 주고받는 이진법(binary)로 표현하는것이 자연스럽다.
따라서 컴퓨터는 정보를 bit로 표현하고 8진법, 16진법 등 2의 배수 표현도 사용한다.
정수(integer)
파이썬에서는 정수를 int로 나타내며 불변(immuable)형이다. 불변형 객체는 변수와 객체 참조간 차이가 없고 컴퓨터 메모리에 의해 제한된다.
-> (1024).bit_length()
어떤 문자열을 정수로 변환(casting)하거나, 다른 진법의 문자열을 정수로 변환하려면 int(문자열, 밑) 메소드를 이용
#ex)
s = '11'
d = int(s) # 문자열을 정수로 변환
print(d)
b = int(s, 2) # 문자열을 정수(10진법)으로 변환
print(b)
부동소수점(float)
IEEE 754는 컴퓨터에서 부동소수점을 표현하는 가장 널리 쓰이는 표준 방법이다.
파이썬에서는 float로 나타내며 불변형이다.
부동소수점을 이진수 분수(binary fraction)로 표현되기 때문에 함부로 비교하거나 빼면 안된다.
#ex)
0.3*3==0.6 #(False)
1.3-0.3==1.0 #(True)
비교를 위해 unittest 모듈의 assertAlmostEqual() 메소드 접근법을 이용하며, 부동소수점 숫자는 메모리에서 비트패턴으로 비교 가능하다.
-> 두 숫자가 음수면, 부호를 뒤집고 숫자를 반전하여 비교하고 자수 패턴이 같으면 가수를 비교하는 방식이다.
복소수(complex number)
파이썬에서 복소수는 z=4+3j 와 같이 생긴 부동소수점 쌍을 갖는 불변형이다.
z.real, z.imag, z.conjugate() ->실수부, 허수부, 켤레 복소수를 구할 수 있는 메소드이다.
정확한 10진법의 부동소수점 숫자가 필요하면 decimal.Decimal을 사용할 수 있다.
Decimal() 메소드는 정수 또는 문자열을 인수로 취함
ex)
sum(0.2 for i in range(3)) == 0.6 # False
from decimal import Decimal
sum(Decimal('0.2') for i in range(3)) == Decimal('0.6') # True
2진수, 8진수, 16진수
bin(x) 는 정수 x의 2진수 문자열 반환
bin(123) # '0b1111011'
oct(x) 는 정수 x의 8진수 문자열 반환
oct(123) # '0o173'
hex(x) 는 정수 x의 16진수 문자열 반환
hex(123) # '0x7b'
refer : 파이썬 자료구조와 알고리즘
'02. Study > Algorithm' 카테고리의 다른 글
python_그래프 기초 (0) | 2019.09.02 |
---|---|
python_자료구조 (0) | 2019.08.31 |
python_구조와 모듈 (0) | 2019.08.29 |
python_(Set, Dictionary) (0) | 2019.08.28 |
python_내장시퀀스타입 (0) | 2019.08.28 |