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