ptyhon中的运算符
2018-10-19 本文已影响0人
像小象的云
ptyhon中的运算符
python中的运算符包括:数学运算符,逻辑运算符,位运算符,比较运算符,辅助运算符
1、数学运算符:+ 、-、、/、%、//、*
# a. +:求和,和数学中的+号功能一样
print(100 + 10)
print(-100 + 10)
print(12.5 + 3.14)
# b. -:求差,和数学中的-号功能一样
result = 99 - 23 # 将99-23的结果赋给变量result
print(result)
# c. *:求乘积,和数学中的×号功能一样
print(1.23 * 3)
print(-1.23 * 2)
print(-1.23 * -2)
# d. /(除):求商, 和数学中的÷号功能一样
# 注意:和C语言中的/不一样
print(5/2) # 2.5
print(12.5/5)
# e. %:求余数
# 注意:python中小数和整数都可以求余数
print(5%2)
print(6%2)
print(5.0 % 0.2)
# f. //(整除):求商,结果只取商的整数部分
print(5 // 2)
print(6.4 // 2)
# g. **(幂运算): 求幂
# x ** y : 求x的y次方
# 技巧:可以通过把y的值设置为1/2(0.5)来求一个数的开平方
print(2**3)
print(100**0.5)
2、比较运算符: >, <, ==, !=, >=, <=
# 所有比较运算的结果是布尔值:True/False
# ==: 判断左右两边的值是否相等, =:将右边的值赋给左边的变量
print(100 > 10)
print(100 < 10)
print(12.5 == 12.5)
print(10 == 12.5)
number = 10
print(number == 100) # False
print(number)
print(number != 100) # True
print(100 >= 100)
print(10 < 11) # True
print(10 <= 10) # True
3、逻辑运算符: and(与), or(或), not(非)
逻辑运算符的结果是布尔值。运算对象也必须是布尔值
# a. 值1 and 值2:两个都为True,结果才是True。否则都是False
print(True and True) # True
print(False and True) # False
print(True and False) # False
print(False and False) # False
# b. 值1 or 值2:两个都我False的时候结果才是False,否则就是True
print(False or False) # False
print(True or False) # True
print(True or True) # True
# 3. not 值: 值取反(True -> False; False -> True)
print(not True)
print(not False)
4、赋值运算符: =, +=, -=, *=, /=, %=, //=, **=
赋值运算符的左边必须是变量。赋值的时候是先算赋值符号右边的结果,然后再将结果赋给左边的变量
# a. =: 单纯的将=右边的值赋给左边
num1 = 100
# b. +=, -=, *=, /=, %=, //=, **=
# 要求左边的变量本身必须是有值的
# 变量1 += 值 ----> 变量1 = 变量1+值
num2 = 100
num2 += 10 # 相等于: num2 = num2 + 10
print(num2)
num3 = 4
num3 *= 2 # 相当于: num3 = num3 * 2
print(num3)
5、位运算符 >> 、<<、&、|、^
# 1.&(按位与)
# 数字1 & 数字2 :两个都为1结果才是1,否则为0
# 3 & 2 --> 00000011 & 00000010 == 00000010
# -3 & 2 --> 11111101 & 00000010 == 00000000
print(3&2)
print(-3&2)
# 作用:让指定位上数置零,或者保留某一位上的值
# 2.|(按位或)
# 数字1 | 数字2: 只要有一个为1,结果就是1;两个都为,结果才是0
# 3 | 2 --> 00000011 | 00000010 = 00000011
# -3 | 2 --> 11111101 | 00000010 = (补)11111111 = (原)10000001
print(3|2)
print(-3|2)
# 3.^(异或)
# 数字1 ^ 数字2: 不同为1,相同为0
# 3^2 --> 00000011 ^ 00000010 = 00000001
# -3^2 --> 11111101 ^ 00000010 = (补)11111111 = 10000001
print(3^2)
print(-3^2)
# 4.~(取反)
# ~数字: 将每一位取反
# ~3 ---> ~00000011 = 11111100(补) = 10000100
# ~-3 ---> ~11111101 = 00000010
print(~3)
print(~-3)
# 5.左移(重点掌握)
# 数字 << 位数: 将补码向左移动指定的位数,符号位不变,在最后面补指定个数的0
# 规律(正数和负数都实用):m << n == m * (2^n)
print(10 << 3) # 20 10*2^1 10*2^2 10*2^3
print(-10 << 2) # -20
print(2 << 2)
print(-23 << 2)
# num * 2 == num << 1 num * 4 == num << 2
# 6.右移
# 数字 >> 位数: 将补码向右移动指定的位数,符号位不变,在符号位的后面补指定个数的0(正)或者1(负)
# 规律(只适用于正数):m >> n == m // (2^n)
print(10 >> 1)
print(-10 >> 1)
print(-10 >> 2)
6、运算符优先级:
数学运算符>位运算符>比较运算符>逻辑运算符>赋值运算符
位运算符中:(>> <<) > & > ( ^ |)