Python/Today I learned
TIL#14 데이터타입(자료형)-숫자형
higher77
2021. 5. 14. 00:01

숫자형
숫자형 사용법
파이썬 모든 자료형
데이터 타입 선언
연산자 활용
형 변환
외부 모듈 사용
# 파이썬 지원 자료형
'''
int : 정수
float : 실수
complex : 복소수
bool : 불린(true 참, false거짓)
str : 문자열(시퀀스)
list : 리스트(시퀀스) #시퀀스: 반복을 처리 기능, 어떤 순서가 있거나 이런것들을 의미
tuple : 튜플(시퀀스)
set : 집합
dict : 사전
'''
이외에도 있지만 기본적으로 이 정도만 알아두자.
# 데이터 타입
str1 = "Python"
bool = True
str2 = 'Anaconda'
float_v = 10.0 #10은 정수(int) 10.0은 실수 (float)
int_v = 7
list = [str1, str2] #대괄호 사용
dict = {
"name": "Machine Learning", #name,version을 키(key)라고 부른다.
"version": 2.0
}
tuple = (3, 5, 7) #소괄호를 쓴다. 괄호없이 사용해도 된다.
set = {7, 8, 9} #중괄호 사용
# 데이터 타입 출력
print(type(str1)) #<class 'str'>
print(type(bool)) #<class 'bool'>
print(type(str2)) #<class 'str'>
print(type(float_v)) #<class 'float'>
print(type(int_v)) #<class 'int'>
print(type(dict)) #<class 'dict'>
print(type(tuple)) #<class 'tuple'>
print(type(set)) #<class 'set'>
# 숫자형 연산자
"""
+
-
*
/
// : 몫
% : 나머지
abs(x) #절대값
int(x)
float(x)
complex(x)
pow(x, y) #x의 y제곱
x ** y : #x의 y제곱
....
"""
# 정수 선언
# 정수 선언
i = 77
i2 = -14
big_int = 999999999999999999999999999999999999999
# 정수 출력
print(i) #77
print(i2) #-14
print(big_int) #999999999999999999999999999999999999999
# 실수 선언
# 실수 선언
f = 0.9999
f2 = 3.141592
f3 = -3.9
f4 = 3 / 9
# 실수 출력
print(f) #0.9999
print(f2) #3.141592
print(f3) #-3.9
print(f4) #0.3333333333333
# 연산 실습
i1 = 39
i2 = 939
big_int1 = 123456789123456789012345678901234567890
big_int2 = 999999999999999999999999999999999999999
f1 = 1.234
f2 = 3.939
# +
print(">>>>> + ")
print("i1 + i2 : ", i1 + i2) #i1 + i2 : 978
print("f1 + f2 : ", f1 + f2) #f1 + f2 : 5.173
print("big_int1 + big_int2 : ", big_int1 + big_int2)#big_int1 + big_int2 : 1123456789123456789012345678901234567889
#a = 3(정수형) + 1.0(실수형)
#a= 4.0 서로 다른 형을 계산하면 형 변환이 자동으로 이루어짐
#type(a)
#<class 'float'>
# -
print(">>>>> -")
print("i1 - i2: ", i1 - i2) #f1 - f2: -2.705
print("f1 - f2: ", f1 - f2) #f1 - f2: -2.705
print("big_int1 - big_int2: ", big_int1 - big_int2) #big_int1 - big_int2: -876543210876543210987654321098765432109
# *
print(">>>>> *")
print("i1 * i2: ", i1 * i2) #i1 * i2: 36621
print("f1 * f2: ", f1 * f2) #f1 * f2: 4.860726
print("big_int1 * big_int2: ", big_int1 * big_int2) #big_int1 * big_int2: 123456789123456789012345678901234567889876543210876543210987654321098765432110
# /
print(">>>>> /")
print("i2 / i1: ", i2 / i1) #i2 / i1: 24.076923076923077
print("f2 / f1: ", f2 / f1) #f2 / f1: 3.1920583468395463
print("big_int2 / big_int1: ", big_int2 / big_int1) #big_int2 / big_int1: 8.10000006561
# //
print(">>>>> //")
print("i2 // i1: ", i2 // i1) #i2 // i1: 24
print("f2 // f1: ", f2 // f1) #f2 // f1: 3.0
print("big_int2 // big_int1: ", big_int2 // big_int1) #big_int2 // big_int1: 8
# %
print(">>>>> %")
print("i1 % i2 :", i1 % i2) #i1 % i2 : 39
print("f1 % f2 :", f1 % f2) #f1 % f2 : 1.234
print("big_int1 % big_int2 :", big_int1 % big_int2) #big_int1 % big_int2 : 123456789123456789012345678901234567890
# **
print(">>>>> **")
print("2 ** 3: ", 2 ** 3) #2 ** 3: 8
print("i1 ** i2: ", i1 ** i2) #i1 ** i2: 1022506312626635583804665030439848517886568042318083335...
print("f1 ** f2: ", f1 ** f2) #f1 ** f2: 2.289235194260789
# 형 변환 실습
a = 3. #실수 0은 생략가능
b = 6 #정수
c = .7 #실수 0은 생략가능
d = 12.7#실수
# 타입 출력
print(type(a), type(b), type(c), type(d))#<class 'float'> <class 'int'> <class 'float'> <class 'float'>
# 형 변환
print(float(b)) # 정수 -> 실수 6.0
print(int(c)) # 실수 -> 정수 0
print(int(d)) # 실수 -> 정수 12
print(int(True)) # Bool -> 정수 1 True:1. False:0을 의미한다.
print(float(True)) # Bool -> 정수 1.0
print(int(False)) # Bool -> 정수 0
print(float(False)) # Bool -> 정수 0.0
print(complex(3)) # 정수 -> 복소수 (3+0J)
print(complex('3')) # 문자 -> 복소수 (3+0j) 문자열 3을 넣어도 내부적으로 문자혈 ->숫자형으로 바꾸고 실행된다.
print(complex(False)) # Bool -> 복소수 0j
# 앞의 코드에서 float=10.0, int=7로 변수에 네이밍을 줬기 때문에 float_v=10.0 int_v=7로 바꿔줘야한다.
안그러면 똑같은 예약어를 사용했기 때문에 에러가 난다.
# 수치 연산 함수
print(abs(-7)) #절대값 7
x, y = divmod(100, 8)
print(x, y) #12 4 x는 몫, y는 나머지
print(pow(5, 3), 5 ** 3) #125 125
#외부 모듈(패키지 안에 모듈이 있다고 한다.)
import math
#ceil
print(math.ceil(5.1)) #6 x 이상의 수 중에서 가장 작은 정수
#pi
print(math.pi) #3.141592653589793