python数值运算(数学运算、布尔运算、逻辑运算、位元运算、索引切片运算)

1、数学运算

特别要注意的是浮点型的精度问题

a = 0.1 +0.2 +0.3
print(a)

b = 1-0.9
print(b)

c = (1-0.9)==0.1
print(c)

输出:
0.6000000000000001
0.09999999999999998
False

解决办法:通过引入decimal,可以通过decimal.getcontext().prec=x 来设定精度

import decimal
decimal.getcontext().prec = 4
a = decimal.Decimal(1)-decimal.Decimal(0.9)
print(a)

输出:
0.1000
a = 3**3  #指数
print(a)
a = 64**0.5  #开方
print(a)
a = 15//2  #取商
print(a)
a = 15%2  #取余
print(a)

输出:
27
8.0
7
1

布尔值进⾏加减乘除运算的时候True 是 1  False 是 0

python数值运算(数学运算、布尔运算、逻辑运算、位元运算、索引切片运算)_第1张图片

2、布尔运算

python数值运算(数学运算、布尔运算、逻辑运算、位元运算、索引切片运算)_第2张图片

a = 3<2<5
print(a)

a = 3==3==3
print(a)

a = 3==3==2
print(a)

a = 3==2==3
print(a)

输出:
False
True
False
False

可以输出连续判断的结果,跟人的思考方式一样,都是从左向右依次判断求交集

3、逻辑运算

and / or / not

not是第一优先级、or第二优先级、and第三优先级,有括号的话括号优先

python数值运算(数学运算、布尔运算、逻辑运算、位元运算、索引切片运算)_第3张图片

4、位元运算

python数值运算(数学运算、布尔运算、逻辑运算、位元运算、索引切片运算)_第4张图片

5、索引切片运算(重点)

 

python数值运算(数学运算、布尔运算、逻辑运算、位元运算、索引切片运算)_第5张图片

 

[头下标:尾下标]、[头下标:尾下标:步长] 获取的子字符串包含头下标的字符,但不包含尾下标的字符(左闭右开)。

a = 'China'
print(a[0:3])
print(a[3:])
print(a[0:-1])
print(a[-3:-1])
print(a[0:3:2])
print(a[2::2])
print(a[::2])
print(a[::-1])

输出:
Chi
na
Chin
in
Ci
ia
Cia
anihC
a = [1,2,3,4,5]
print(a[0:3])
print(a[3:])
print(a[4:])
print(a[0:-1])
print(a[-3:-1])
print(a[0:3:2])
print(a[2::2])
print(a[::2])
print(a[::-1])

输出:
[1, 2, 3]
[4, 5]
[5]         #注意,虽然输出的是一个数字,但这是列表
[1, 2, 3, 4]
[3, 4]
[1, 3]
[3, 5]
[1, 3, 5]
[5, 4, 3, 2, 1]
a = [1,2,3,4,5]
print(a[6:])  #列表中没有所查找的内容,所以会返回空列表
print(a[6])   #列表中没有这么一项,所以会报错

输出:
[]
错误信息

6、总结与对比

python数值运算(数学运算、布尔运算、逻辑运算、位元运算、索引切片运算)_第6张图片

你可能感兴趣的:(python学习)