Python对象类型之数字
Python对象类型简介
Python中,数据总是以对象的形式出现,而对象是内存中的一部分,是包含数值和相关操作的集合。本大章节主要介绍Python的内置对象,因为内置对象往往包括了表现问题领域的所有结构,并且Python的内置类型优化了用C实现的数据结构和算法,使得程序的编写更加方便,减少了内存部署、内存分配、实现搜索和读取等任务的编写。
常见的内置对象类型有:数字、字符串、列表、字典、元组、文件、集合、其他类型、编程单元类型、与实现相关的类型等。 本小节将介绍数字类型。
数字
Python不仅支持通常的数字类型,而且能够通过常量直接创建数字以及处理数字的表达式。Python数字类型的完整工具包括: 整数和浮点数、复数、固定精度的十进制数、有理分数、集合、布尔类型、无穷的整数精度以及各种数字内置函数和模块。
1.常见数字类型
1.1 整数和浮点数
整数以十进制数字的字符串写法出现,浮点数带一个小数点或,也可以加上一个科学计数标志e或者E。如果编写一个带有小数点或幂的数字,Python将其变成一个浮点数对象,并且在表达式和运算中启用浮点数的运算法则。
#整数 1234, -24, 0, 11111111111
#浮点数 1.23, 3.1415, 2.7e8, 4E-10
整数的其他进制
整数除了默认的十进制,还可以以二进制、八进制以及十六进制的形式出现。二进制数以0b开头,后接由数字0和1构成的字符串;八进制数以0o或者0O开头(0和小写或者大写的字母"o"),后接由数字0-7构成的字符串;十六进制数以0x或者0X开头,后接数字0-9和字母A-F。Python默认显示十进制数字,但这些进制可以相互转换。
num1=0b100 #二进制
num2=0o100 #八进制
num3=0x100 #十六进制
num4=100 #十进制
print("num1: %d, num2: %d, num3 %d, num4: %d." %(num1,num2,num3,num4))
#结果为:
num1: 4, num2: 64, num3 256, num4: 100.
十进制转换为其他进制:分别使用bin(I), oct(I)和hex(I)将十进制数I转换为二、八、十六进制。
number = 100
print ("bin of number is: ", bin(number)) #转换为二进制
print ("oct of number is: ", oct(number)) #转换为八进制
print ("hex of number is: ", hex(number)) #转换为十六进制
#结果为:
bin of number is: 0b1100100
oct of number is: 0o144
hex of number is: 0x64
其他进制转换为十进制,使用int(str, base). str为需要转换的数字的字符串,base是被转换数字的基底。例如,**int(‘100’, 2)**就是将二进制数字100转换为十进制数字,也就是4。因为有了后面的基底,进制前面的前缀可以省略。
print("the decimals of 100: %d" %int('100',2))
print ("the decimals of 0b100 : %d" %int('0b100',2))
print ("the decimals of 0o100 : %d" %int('0o100',8))
print ("the decimals of 0x100 : %d" %int('0x100',16))
#结果为:
the decimals of 100 :