文章目录
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2dc24105b226bb954a03fa34e5ff43bf.png)
1. Numbers 数字类型
Python 有四种数字类型 int, float, bool, complex(复数).
1.1 int 整型
整型: 不包含小数部分的数字, 包含正整数与负整数和0.
Python 中整数类型的取值范围无限的, 但实际受限于计算机内存的大小.
num = 1
print(num) # 1
print(type(num)) # <class 'int'>
1.2 float 浮点型
1. 浮点型
浮点型: 带小数点的数字.
浮点型的取值范围及小数精度都存在限制, 但实际使用过程中可以忽略不计.
浮点型数据占用的字节小, 计算结果过大存在溢出问题.
浮点型除了可以使用小数点格式外还可以用科学计算法表示.
在科学计数法中, 为了使公式简便, 可以用带 'E'的格式表示, 'E' 是 exponent(指数)的缩写.
例如: 1.03乘10的8次方, 可简写为 1.03E+08 的形式.
f1 = 1.1
print(f1) # 1.1
print(type(f1)) # <class 'float'>
# 科学计数法
f2 = 1.03e8
print(f2) # 103000000.0
print(type(f2)) # <class 'float'>
2. 尾数问题
浮点数之间进行计算时会存在不确定尾数的情况, 这个是计算机内部运算产生的.
# 尾数问题
f1 = 0.1 + 0.2
print(f1) # 0.30000000000000004
print(f1 == 0.3) # False
3. 溢出问题
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. Decimal 所表示的数是完全精确的.
* 2. Decimal类包含有效位的概念, 保留尾随零以表示有效位, 例如: 1.30 + 1.20的结果是2.50.
* 3. Decimal具有可更改的精度(默认为28位).
使用方法:
* 1. 导入模块
from decimal import Decimal
* 2. 使用Decimal将浮点型数据进行转换, 要求输入的必须是字符串, 则不会使用 decimal 模块的运算.
对象(十进制浮点数类型) = Decimal('0.10')
* 3. 使用转换之后的十进制类型对象参与计算
# 使用Decimal避免尾数问题.
from decimal import Decimal
# 类型转换在计算
f1 = Decimal('0.10') + Decimal('0.20')
print(f1, type(f1)) # 0.30 <class 'decimal.Decimal'>
f2 = 0.30
print(f1 == f2) # False
# 将 转为字符串
f2 = str(f2)
# 将字符串类型纯数字转为十进制类型
print(f1 == Decimal(f2)) # True
# 解决溢出问题
from decimal import Decimal
# 类型转换在计算
f1 = Decimal('10.0') ** Decimal('1000')
print(f1) # 1.000000000000000000000000000E+100000
1.3 complex 复数
复数是由'实部'与'虚部'构成. Python 中, 复数以j或J为后缀.
c1 = 0.5j
print(c1) # 0.5j
print(type(c1)) # <class 'complex'>
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) # 10
num = num_1 - num_0
print(num) # 4
num = num_1 * num_0
print(num) # 21
num = num_1 / num_0
print(num, type(num)) # 2.3333333333333335 <class 'float'>
num = num_1 // num_0
print(num) # 2
num = num_1 % num_0
print(num) # 1
num = num_1 ** num_0
print(num) # 343
print(9 // 4) # 9 / 4 = 2.25 向下取整 为 2
print(-9 // 4) # -9 / 4 =-2.25 向下取整 为-3 ,负数向下-3
2.2 增值运算符
增值运算符: += -= *= /= %= //= **=
num = 3
num_0 = 5
num_1 = 7
num += num_1 # 10 等同于 num = num + num_1
print(num)
num -= num_1 # 3 等同于 num = num - num_1
print(num)
num *= num_1 # 21 等同于 num = num * num_1
print(num)
num /= num_1 # 3.0 等同于 num = num / num_1
print(num)
num **= num_1 # 2187.0 等同于 num = num ** num_1
print(num)
num %= num_1 # 3.0 等同于 num = num % num_1
print(num)
num_1 //= num_0 # 5 等同于 num = num // num_1
print(num_0)
3. 类型转换
3.1 转换为整型
Python 内置 int() 函数将括号内的数据转为整型.
并是不所有数值都可以转换为整型.
支持:
浮点型, 浮点型转整型舍去小数部分数据.
纯整型字符串, 不能是浮点型字符串, 否则会报错: TypeError:int () 无法转换...
i1 = 18
print(i1, type(i1)) # 18 <class 'int'>
# 将纯整型字符串转为整型
i1 = int('123')
print(int(i1), type(i1)) # 123 <class 'int'>
# 将浮点型转为整型
i2 = int(1.2)
print(i2, type(i2)) # 1 <class 'int'>
3.2 转为浮点型
Python 内置 float() 函数将括号内的数据转为浮点型.
并是不所有数值都可以转换为浮点型. 支持整型, 纯整型/纯浮点型字符串.
否则会报错: ValueError: 无法将xxx转为浮点型...
f1 = 123.4
print(f1, type(f1)) # 123.4 <class 'float'>
# 整数类型转浮点型
print(float(123)) # 123.0
# 纯整型字符串转浮点型
print(float('123')) # 123.0
# 将浮点型字符串转为浮点型
print(float('123.4')) # 123.4
4. 进制转换
* 结果是字符串类型
4.1 十进制转二进制
bin() 十进制转二进制, 使用 ( 0b ) 开头表示二进制数.
b1 = bin(100)
print(b1, type(b1)) # 0b1100100 <class 'str'>
4.2 十进制转二进制
oct() 十进制转八进制, 使用( 0o ) 开头表示十进制数.
o1 = oct(100)
print(o1, type(o1)) # 0o144 <class 'str'>
4.3 十进制转十六进制
hex() 十进制转十六进制, 使用( 0x ) 开头表示十六进制数
h1 = hex(100)
print(h1, type(h1)) # 0x64 <class 'str'>
4.4 转为十进制
int() 函数支持将二进制, 八进制, 十六进制数转为十进制整数.
使用格式: int('各进制字符串', 进制)
第一个参数: 需要将进制数用单引号扩起来.
第二个参数: 写现在是多少位的进制数.
# 二进制转十进制
i1 = int('0101010101', 2)
print(i1, type(i1)) # 341 <class 'int'>
# 八进制转十进制
i2 = int(' 7654321', 8)
print(i2, type(i2)) # 2054353 <class 'int'>
# 十六进制转十进制
i3 = int(' A6B4321', 16)
print(i3, type(i3)) # 174801697 <class 'int'>
5. 常用函数
5.1 绝对值
Python 内置 abs() 函数计算数字的绝对值.
print(abs(-10.1)) # 10.1
5.2 商余
Python 内置divmod() 函数把除数和余数运算结果结合起来, 返回一个包含商和余数的元组(a // b, a % b).
print(divmod(7, 2)) # (3, 1)
5.3 幂余
Python 内置 pow() 函数计算的次方及计算此方的余数.
pow(x, y) 计算x的y次方.
pow(x, y, z) 计算x的y次方再对z求余.
print(pow(2, 4)) # 16
print(pow(2, 4, 3)) # 1
5.4 四舍五入
Python 内置 round() 函数按指定的小数位进行四舍五入运算, 默认不保留小数部分.
print(round(9.4545)) # 9
print(round(9.4545, 2)) # 9.45
5.5 求最大值
Python 内置 max() 函数返回给定参数的最大值, 参数可以为序列.
# 生成一个整型序列
print(max(range(4))) # 3
print(max([1, 2, 3])) # 3
print(max(1, 2, 3)) # 3
print(max('abc')) # c
5.5 求最小值
Python 内置 min() 函数返回给定参数的最小值, 参数可以为序列.
# 生成一个整型序列
print(min(range(4))) # 0
print(min([1, 2, 3])) # 1
print(min(1, 2, 3)) # 1
print(min('abc')) # a
文章的段落全是代码块包裹的, 留言0是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言1是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言2是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言3是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言4是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言5是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言6是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言7是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言8是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言9是为了避免文章提示质量低.