숫자(Number) - int, float
문자열(Text) - str
논리값(Boolean) - bool
복합객체(Collectable) - list, dict, tuple, set
number1 = 1234567890
number2 = 0
number3 = -1234567890
표현방법의 차이일뿐 정수형 값의 차이는 똑같다.
bin_num = 0b10 ex) 2진수
oct_num = 0o10 ex) 8진수
dec_num = 10 ex) 10진수
hex_num = 0x10 ex) 16진수
정수형
number1 = 1_234_567_890
number2 = 0
number3 = -1234567890
print(number1, type(number1))
print(number2, type(number2))
print(number3, type(number3))
2진수,8진수,10진수,16진수 표현법
bin_num = 0b10 #2진수
oct_num = 0o10 #8진수
dec_num = 10 #10진수
hex_num = 0x10 #16진수
print(bin_num, type(bin_num))
print(oct_num, type(oct_num))
print(dec_num, type(dec_num))
print(hex_num, type(hex_num))
number4 = 123_456_789 ex) 3.6 버전 이후
print(number4, type(number4))
number1 = int("1234567890") ->10진수 스트링을 int로 변환
number2 = int("0x10", 16) ->16진수 스트링을 int로 변환
number3 = int(-1234567890.123) ->실수를 int 로 변환
print(number1, type(number1))
print(number2, type(number2))
print(number3, type(number3))
잘못된 정수의 형식을 int() 로 변환하려고 하면 에러가 난다
계산식 문자열을 정수로 변환 할수 없다
int("123 + 11")
부호 다음에 스페이스(빈칸)이 있으면 안된다
int("- 13")
10 진수가 아닌 경우 base 를 지정해 주어야 한다
int("0b0101")
int 데이터가 아닌 문자열은 변환 할수 없다
int("123.456")
python 큰 정수형 데이터
x = 10000000000000000000000000000000000000000000;
print(x, type(x))
x = 10 ** 400
print(x, type(x))
x = x + 1
print(x)
float_number1 = 123.4567890
float_number2 = -123.4567890
float_number3 = 123.456e-10
float_number4 = 123.456_789 (3.6버전 이후)
float_number5 = 1.12345678901234567890
print(float_number5)
출력 : 1.123456789012345 <- 실수형의 경우 정확하게 16자리가 출력된다.
- 더하기 : +
- 빼기 : -
- 곱하기 : *
- 나누기 : /
- 나누기 몫 : //
- 나누기 나머지 : %
- 거듭제곱 : **
17 + 5
출력 : 22
17 - 5
출력 : 12
17 * 5
출력 : 85
17 / 5
출력 : 3.4
17 // 5
출력 : 3 -> 결과값 integer
17 % 5
출력 : 2 -> 결과값 integer
2 3 -> 2의 3승
출력 : 8**
연산 시 값은 같지만 숫자에 소수점이 붙으면 데이터 타입이 달라짐.