Python基础 P2数字类型与优先级
基础知识
数字类型
Python 有三种不同的数字类型,分别是:整数、浮点数和复数。
整数
先来看一下Python的整数是怎么使用的
Python的整数长度是不受限制的,也就是说它是有无限大的精度
整数可以进行加减乘除的数学运算
举个栗子
>>> 15 + 6
21
>>> 15 * 3
45
>>> 15 - 3
12
>>> 8 / 2
4.0
整数除了常见的十进制类型,还有二进制、八进制和十六进制
进制 | 符号 | 描述 |
---|---|---|
十进制 | 无 | 由字符0~9组成 |
二进制 | 0b或0B | 由字符0~1组成 |
八进制 | 0o或0O | 由字符0~7组成 |
十六进制 | 0x或0X | 由字符09和Af组成 |
举个栗子
>>> -293
-293
>>> 0b110101
53
>>> 0o354
236
>>> 0x1FE
510
数字分隔符
为了提高数字的可读性,Python 3.x允许使用下划线作为数字(包括整数和小数)的分隔符,下划线不会影响数字本身的值。
举个栗子
>>> 16_789_002
16789002
整数还可以通过函数进行更复杂的计算或者随机生成整数
举个栗子
浮点数
通常意义上的小数称为浮点数,而对于C还可分为float和double型
简单的浮点型加减乘除
>>> 1.8 + 3.5
5.3
>>> 6.3 - 2.5
3.8
>>> 2.5 * 7.8
19.5
>>> 9.3 / 3.6
2.5833333333333335
decimal模块去除浮点数不精确问题
浮点数在计算中的存储是存在偏差的,所以如果对精度要求高的话需要使用decimal模块来使用浮点更为准确
在不使用decimal模块的情况下
>>> 0.1 + 0.2
0.30000000000000004
使用decimal模块
import decimal
a = decimal.Decimal('0.1')
b = decimal.Decimal('0.2')
print(a+b)
decimal模块支持快速正确舍入的十进制浮点运算
E计法(科学计数法)
科学计数法是为了显示极小或者极大的数字用的
举个栗子
>>> 0.0000001
1e-07
复数
复数是有实数和虚数组成的,分为实部和虚部
复数是以complex的形式存放的,如果将一个复数赋值给一个变量x,则可以通过x.real访问该复数的实部,x.imag访问其虚部
数字运算
先来看一下Python大概都有哪些运输方式
操作 | 结果 |
---|---|
x + y | x加y的结果 |
x - y | x减y的结果 |
x * y | x乘以y的结果 |
x / y | x除以y的结果 |
x // y | x除以y的结果(地板除) |
x % y | x除以y的余数 |
-x | x的相反数 |
+x | x的本身 |
abs(x) | x的绝对值 |
int(x) | 将x转换成整数 |
float(x) | 将x转换成浮点数 |
complex(re, im) | 返回一个复数,re是实部,im是虚部 |
c.conjugate() | 返回C的共轭复数 |
divmod(x, y) | 返回(x // y,x % y) |
pow(x, y) | 计算x的y次方 |
x ** y | 计算x的y次方 |
加减乘除
操作 | 结果 |
---|---|
x + y | x加y的结果 |
x - y | x减y的结果 |
x * y | x乘以y的结果 |
x / y | x除以y的结果 |
>>> 7 + 9
16
>>> 156 - 79
77
>>> 5.4 * 6.5
35.1
>>> 1646 / 65
25.323076923076922
底板除(向下取整)与余数
操作 | 结果 |
---|---|
x // y | x除以y的结果(地板除) |
x % y | x除以y的余数 |
divmod(x, y) | 返回(x // y,x % y) |
>>> 6 // 4
1
>>> 10 % 4
2
>>> divmod(10, 4)
(2, 2)
相反数与本身
操作 | 结果 |
---|---|
-x | x的相反数 |
+x | x的本身 |
>>> -15
-15
>>> +56
56
绝对值
操作 | 结果 |
---|---|
abs(x) | x的绝对值 |
实数:正常取绝对值
>>> abs(564)
564
>>> abs(-532)
532
复数:取复数的模
>>> abs(45 + 72j)
84.90583018850944
类型转换
操作 | 结果 |
---|---|
int(x) | 将x转换成整数 |
float(x) | 将x转换成浮点数 |
complex(re, im) | 返回一个复数,re是实部,im是虚部 |
>>> int(123.522)
123
>>> float(545)
545.0
>>> complex(12, 43)
(12+43j)
幂运算
操作 | 结果 |
---|---|
pow(x, y) | 计算x的y次方 |
x ** y | 计算x的y次方 |
计算x的y次方
pow(a,b,c) = a ** b % c
>>> pow(5, 6)
15625
>>> 5 ** 6
15625
>>> pow(2, 3, 4)
0
布尔类型
布尔类型的值只有两个:
True或者False
也就是“真”或者“假”
布尔基础
使用bool()函数可以直接给出True或者False的结果
>>> bool(154)
True
>>> bool('dsgsd')
True
>>> bool(0)
False
>>> bool('')
False
结果是True的情况非常多,但False却是屈指可数,下面这些几乎就是结果为False的所有情况
1.定义为False的对象:None和False
2.值为0的数字类型:0,0.0,0j,Decimal(0),Fraction(0,1)
3.空的序列和集合:‘’,(),[],{},set(),range(0)
逻辑运算(布尔运算)
运算符 | 含义 |
---|---|
and | 左边和右边同时为True,结果为True |
or | 左边或右边其中一个为True,结果为True |
not | 如果操作数为True,结果为False;如果操作数为False,结果为True |
运算符 | 含义 |
---|---|
and | 左边和右边同时为True,结果为True |
>>> True and True
True
>>> True and False
False
运算符 | 含义 |
---|---|
or | 左边或右边其中一个为True,结果为True |
>>> True or True
True
>>> True or False
True
>>> False or False
False
运算符 | 含义 |
---|---|
not | 如果操作数为True,结果为False;如果操作数为False,结果为True |
>>> not True
False
>>> not False
True
短路逻辑
and 和 or 遵从短路逻辑
and同时满足2个true才可,取后面的值为结果
or满足一个true就可,第一是true就是第一个,第二才为true则就是第二输出
>>> 1 and 3
3
>>> 5 or 6
5
>>> 0 or 4
4
优先级
进阶练习
1.闰年判断器
2.进制转换及求和
3.单位转换
更多内容
其他内容