1. Numbers数字型
Python 有四种数字类型 int ( 整型 ) , float ( 浮点型 ) , bool ( 布尔 ) , complex ( 复数 ) .
1.1 int整型
整型 : 不包含小数部分的数字 , 包含正整数与负整数和 0.
print ( id ( 1 ) )
print ( id ( 2 ) )
Python的整数长度为 32 位 , 并且通常是连续分配内存空间的 , 不够用使会自动扩容
事实上整数类型的取值范围无限的 , 但实际受限于计算机内存的大小 .
24 + 32 = 56 从上面的空间地址看 , 地址之间正好差 32.
print ( id ( 1111111111111111111111111111111111111111111111111111111111111111111111 ) )
print ( id ( 1111111111111111111111111111111111111111111111111111111111111111111112 ) )
1.2 float浮点型
1. 浮点型
浮点型 : 带小数点的数字 , 于存储单精度浮点或双精度浮点数 .
浮点型除了可以使用小数点格式外还可以用科学计算法表示 .
在科学计数法中 , 为了使公式简便 , 可以用带 'E' 的格式表示 , 'E' 为exponent ( 指数 ) 的缩写 .
例如 : 1.03 乘 10 的 8 次方 , 可简写为 1.03E+08 的形式 .
f1 = 1.1
print ( f1)
print ( type ( f1) )
f2 = 1.03e8
print ( f2)
print ( type ( f2) )
2. 尾数问题
浮点数之间进行计算时会存在不确定尾数的情况 , 这个是计算机内部运算产生的 .
f1 = 0.1 + 0.2
print ( f1)
print ( f1 == 0.3 )
3. 溢出问题
float类型占用 4 字节内存 , 表示小数字 , 数据范围为- 2 ^ 128 ~ 2 ^ 128.
浮点型数据占用的字节小 , 计算结果过大存在溢出问题 .
print ( 10 ** 1000 )
print ( 10.0 ** 1000 )
运行工具窗口显示 :
10000000000000000000000000000000000000. . . .
Traceback ( most recent call last ) :
File "C:\Users\13600\PycharmProjects\test\test.py" , line 3 , in < module >
print ( 10.0 * * 1000 )
# 溢出错误 : ( 34 , "结果太大" )
OverflowError : ( 34 , 'Result too large' )
4. 高精度计算模块
decimal高精度计算模块 , 官网 : https : / / docs . python . org / zh-cn / 3 /library/decimal.html
优点 :
* 1. 所表示的数是完全精确的 .
* 2. 类包含有效位的概念 , 保留尾随零以表示有效位 , 例如 : 1.30 + 1.20 的结果是 2.50 .
* 3. 具有可更改的精度 ( 默认为 28 位 ) .
使用方法 :
* 1. 导入模块
from decimal import Decimal
* 2. 使用Decimal将浮点型数据进行转换 , 要求输入的必须是字符串 , 则不会使用decimal模块的运算.
对象 ( 十进制浮点数类型 ) = Decimal ( '0.10' )
* 3. 使用转换之后的十进制类型对象参与计算
from decimal import Decimal
f1 = Decimal( '0.10' ) + Decimal( '0.20' )
print ( f1, type ( f1) )
f2 = 0.30
print ( f1 == f2)
f2 = str ( f2)
print ( f1 == Decimal( f2) )
from decimal import Decimal
f1 = Decimal( '10.0' ) ** Decimal( '1000' )
print ( f1)
5. 无穷大
在Python中 , inf或float ( 'inf' ) 是一个特殊的浮点数值 , 表示 '正无穷大' .
这是IEEE 754 浮点数标准的一部分 , 用于表示大于任何有限浮点数的值 .
在Python中 , 可以使用它来比较或执行其他数学操作 , 但需要注意的是 , 某些操作可能不会产生有意义的结果 .
print ( float ( 'inf' ) )
1.3 complex复数
复数是由 '实部' 与 '虚部' 构成 . Python中 , 复数以j或J为后缀 .
c1 = 0.5j
print ( c1)
print ( type ( c1) )
1.4 bool布尔值
布尔值只有True '真' 与False '假' , ( 首字母大写 ) .
布尔值常用条件判断表达式 .
Python中的 '真' 与 '假' 的值 :
假:False , None , 0 , 0.0 , '' , [ ] , { } , ( , ) ··· 所有为空的元素···
真 : 除上之后都为真 .
Python中布尔值是属于数字类型 , bool 类 继承 int 类 .
isinstance ( 值 , 类型 ) 函数 : 判断某个值是否属于否个类型 .
2. 运算符
2.1 算术运算符
算术运算符 : + - * / % / / * *
* 整数与浮点数计算的话会结果是浮点型 , 整数做除法运算时结果为浮点型 .
* 浮点数之间进行计算时会存在不确定尾数的情况 .
这个是计算机内部运算产生的 , 在使用浮点数的时候 , 最后设置保留的小数尾数 , 以免出现意外 .
num_0 = 3
num_1 = 7
num = num_0 + num_1
print ( num)
num = num_1 - num_0
print ( num)
num = num_1 * num_0
print ( num)
num = num_1 / num_0
print ( num, type ( num) )
num = num_1 // num_0
print ( num)
num = num_1 % num_0
print ( num)
num = num_1 ** num_0
print ( num)
print ( 9 // 4 )
print ( - 9 // 4 )
2.2 增值运算符
增值运算符 : + = - = * = / = % = / / = * * =
num = 3
num_0 = 5
num_1 = 7
num += num_1
print ( num)
num -= num_1
print ( num)
num *= num_1
print ( num)
num /= num_1
print ( num)
num **= num_1
print ( num)
num %= num_1
print ( num)
num_1 //= num_0
print ( num_0)
3. 类型转换
3.1 转换为整型
Python内置int ( ) 函数 : 将括号内的数据转为整型 .
并是不所有数值都可以转换为整型 .
支持 :
浮点型 , 浮点型转整型舍去小数部分数据 .
纯整型字符串 , 不能是浮点型字符串 , 否则会报错 : TypeError : int ( ) 无法转换 . . .
i1 = 18
print ( i1, type ( i1) )
i1 = int ( '123' )
print ( int ( i1) , type ( i1) )
i2 = int ( 1.2 )
print ( i2, type ( i2) )
3.2 转为浮点型
Python内置float ( ) 函数 : 将括号内的数据转为浮点型 .
并是不所有数值都可以转换为浮点型 , 仅支持整型 , 纯整型 / 纯浮点型字符串 .
否则会报错 : ValueError : 无法将xxx转为浮点型 . . .
f1 = 123.4
print ( f1, type ( f1) )
print ( float ( 123 ) )
print ( float ( '123' ) )
print ( float ( '123.4' ) )
4. 进制转换
数字可以使用不同的进制数表示 .
* 以下方法进制转换的结果是字符串类型
4.1 十进制转二进制
bin ( ) 函数 : 支持十进制转二进制 , 使用 ( 0 b ) 开头表示二进制数 .
b1 = bin ( 100 )
print ( b1, type ( b1) )
4.2 十进制转二进制
oct ( ) 函数 : 支持十进制转八进制 , 使用 ( 0 o , 零小写o ) 开头表示十进制数 .
o1 = oct ( 100 )
print ( o1, type ( o1) )
4.3 十进制转十六进制
hex ( ) 函数 : 支持十进制转十六进制 , 使用 ( 0 x ) 开头表示十六进制数 .
h1 = hex ( 100 )
print ( h1, type ( h1) )
4.4 转为十进制
int ( ) 函数 : 支持将二进制 , 八进制 , 十六进制数转为十进制整数 .
使用格式 : int ( '各进制字符串' , 进制 )
第一个参数 : 需要将进制数用单引号扩起来 .
第二个参数 : 写现在是多少位的进制数 .
i1 = int ( '0101010101' , 2 )
print ( i1, type ( i1) )
i2 = int ( ' 7654321' , 8 )
print ( i2, type ( i2) )
i3 = int ( ' A6B4321' , 16 )
print ( i3, type ( i3) )
5. 常用函数
5.1 绝对值
Python内置abs ( ) 函数 : 计算数字的绝对值 .
print ( abs ( - 10.1 ) )
5.2 商余
Python内置divmod ( ) 函数 : 把除数和余数运算结果结合起来 , 返回一个包含商和余数的元组 ( a / / b , a % b ) .
print ( divmod ( 7 , 2 ) )
5.3 幂余
Python内置pow ( ) 函数 : 计算的次方及计算此方的余数 .
pow ( x , y ) 计算x的y次方 .
pow ( x , y , z ) 计算x的y次方再对z求余 .
print ( pow ( 2 , 4 ) )
print ( pow ( 2 , 4 , 3 ) )
5.4 四舍五入
Python内置round ( ) 函数 : 按指定的小数位进行四舍五入运算 , 默认不保留小数部分 .
print ( round ( 9.4545 ) )
print ( round ( 9.4545 , 2 ) )
5.5 求最大值
Python内置max ( ) 函数 : 返回给定参数的最大值 , 参数可以为序列 .
print ( max ( range ( 4 ) ) )
print ( max ( [ 1 , 2 , 3 ] ) )
print ( max ( 1 , 2 , 3 ) )
print ( max ( 'abc' ) )
5.5 求最小值
Python内置min ( ) 函数 : 返回给定参数的最小值 , 参数可以为序列 .
print ( min ( range ( 4 ) ) )
print ( min ( [ 1 , 2 , 3 ] ) )
print ( min ( 1 , 2 , 3 ) )
print ( min ( 'abc' ) )