整形
Python中对于整形的划分非常简单,只有一个int类型。
基本声明
以下是使用类的形式进行声明:
age = int(12)
print("值:%d,类型%s"%(age,type(age)))
# 值:12,类型
也可以选择使用更方便的字面量形式:
age = 12
print("值:%d,类型%s"%(age,type(age)))
# 值:12,类型
类型转换
整形可以与bool、浮点型、字符串等做转换,使用对应的构造函数即可:
num = 1
s_num = str(num) # 字符串
b_num = bool(num) # 布尔类型
f_num = float(num) # 浮点型
print("值:%s,类型%s"%(s_num,type(s_num)))
print("值:%s,类型%s"%(b_num,type(b_num)))
print("值:%s,类型%s"%(f_num,type(f_num)))
# 值:1,类型
# 值:True,类型
# 值:1.0,类型
进制转换
使用以下三个内置函数,可进行进制转换:
函数名
描述
bin()
转二进制
oct()
转八进制
hex()
转十六进制
num = 100
print("二进制形式:",bin(num)) # 0b1100100
print("八进制形式:",oct(num)) # 0o144
print("十六进制形式:",hex(num)) # 0x64
ASCII转换
使用以下两个内置函数,可进行ASCII码转换:
函数名
描述
chr()
根据字符,转换为ASCII码
ord()
根据ASCII码,转换为字符
print(chr(65)) # A
print(ord("A")) # 65
L类型
在Python2中,如果整形后加上L则代表长整型,在Python3中取消了这种类型。
浮点型
基本声明
以下是使用类的形式进行声明:
f = float(3.15)
print("值:%f,类型:%s"%(f,type(f)))
# 值:3.150000,类型:
也可以选择使用更方便的字面量形式:
f = 3.15
print("值:%f,类型:%s"%(f,type(f)))
# 值:3.150000,类型:
类型转换
浮点形可以与bool、整型、字符串等做转换,使用对应的构造函数即可:
注意:当浮点型转整形时,将采用向下取整的方式
num = 1.9
s_num = str(num) # 字符串
b_num = bool(num) # 布尔类型
i_num = int(num) # 浮点型
print("值:%s,类型%s"%(s_num,type(s_num)))
print("值:%s,类型%s"%(b_num,type(b_num)))
print("值:%s,类型%s"%(i_num,type(i_num)))
# 值:1.9,类型
# 值:True,类型
# 值:1,类型
四则运算
整形与浮点型均支持四则运算。
但是需要注意的是当整形与浮点型进行运算后,所得到的结果必然是浮点型:
print(100 * 1.0) # 100.0
同时,整形也可以与字符串进行*运算:
print("hello" * 3) # hellohellohello
其他特性
整形与浮点型都是属于原子型,即不可被修改。
浮点型属于值类型,进行赋值会创建新的一份相同数据,而整形则拥有小整数池的概念,小整数池外的整数也都属于值类型,小整数池之内的整数则属于引用类型。
强类型的特点
由于Python是强类型语言,故不会出现隐式转换的问题。
如下,使用整形与字符串做对比,返回的结果永远是False。
print(
"100" == 100
)
# False
同时,整形和字符串之间不能连接任何比较运算符。
print(
1 > "1000"
)
# TypeError: '>' not supported between instances of 'int' and 'str'
小整数池
Python解释器会觉得有一些数值会经常被使用(-5到255之间),故当脚本程序运行前就将这些数字写入堆内存中。
当用户定义变量且使用到其中的数值时会直接将该数值的内存地址引用到存在于栈内存的变量名上,这样做极大节省了内存空间。
如:一个程序中使用了100000次1这个数值。那么如果没有Python的这个机制则会开辟出100000个内存空间用来存放相同的数值。这么做显然极大的浪费了内存。故Python的这种机制是十分高效且合理的,并且它的名字叫做小整数池(范围:-5,255)。
int_1 = 1
int_2 = 1
print(id(int_1)) # 1558801440
print(id(int_2)) # 1558801440
# 超出小整数池范围
int_3 = -6
int_4 = -6
print(id(int_3)) # 2264143854288
print(id(int_4)) # 2264143854448