Python基础之运算符
Python中运算符大体分为复合运算符(包含赋值运算符)、算术运算符、关系运算符、逻辑运算符、位运算符、成员运算符和身份运算符七种。
1.算术运算符
算术运算符 (+ - * / % // **)
//
地板除,获取商的整数部分(向下取整)
**
幂指数,m**n等价于m的n次方
注意:Python在做单纯的算术运算时,参与运算的两个数必须都是数值
“+”除了可以做单纯意义的求值运算外,还可以实现字符串的拼接,但是参与拼接的两个元素必须都是字符串类型
例:
num1, num2 = 10, 20
print(num1 + num2)
print(num1 - num2)
print(num1 * num2)
print(num1 / num2)
print(num1 % num2)
print(num1 // num2)
print(num1 ** num2)
# 结果
# 30
# -10
# 200
# 0.5
# 10
# 0
# 100000000000000000000
2.复合运算符(包括赋值运算符)
复合运算符(+= -= *= /= //= %= **=)
a += b <=> a = a + b
a -= b <=> a = a - b
a *= b <=> a = a * b
a /= b <=> a = a / b
a //= b <=> a = a // b
a %= b <=> a = a % b
a **= b <=> a = a ** b
复合运算符运算规律,将左侧变量和右侧变量中存储的数据做对应的算术运算,之后将算术运算的结构再赋值给左侧的变量
赋值运算符 ( = )
a = 1 #将整数1赋值给a
例:
num1 = 2
num2 = 3
num1 += num2
print(num1)
# 5
3.位运算符
位运算符 (& | ^ ~ << >>)
位运算符(&按位与,|按位或,^按位异或,~按位取反,<<左移,>>右移)
十进制转n进制:连除倒取余。操作原理:将十进制数连续除以n,得到一系列的余数,将余数倒过来排列可以得到n进制表示的数字
n进制转十进制:按位求和。操作原理:将n进制数字从右到左依次编号,编号从1开始,之后分别拿对应位置的n进制数字乘以n的(编号减1)次方,将最终结果依次求和,即得该十进制数
按位与&:参与运算的两个数字对应位置的二进制数,必须同时为1,此时该位置结果才为1,否则为0
按位或|:参与运算的两个数字对应位置的二进制数,只要有一个为1,此时该位置结果即为1,否则为0
按位异或^:参与运算的两个数字对应位置的二进制数,数字相同时结果为0,不同时结果为1
按位取反~:~n == -n - 1
左移<< 和 右移>>:当一个正整数,进行左移运算时,每移动一位等价于将该数字乘以2;进行右移运算时,每移动一位等价于将该数字除以2(向下取整);当一个负整数,进行左移运算时,每移动一位等价于将该数字乘以2;进行右移运算时,每移动一位等价于将该数字除以2(向上取整),符号位均不变
例:
# 通过位运算符,判断数字n的奇偶性
# 数字n和1做按位与运算(n&1),结果为0,此时n代表偶数;结果为1,此时n代表奇数
num = int(input("输入一个整数:"))
if num & 1 == 0:
print("偶数")
else:
print("奇数")
# 如何计算数字n是否是2的整数次幂
# n&(n-1),如果结果为0,此时结果是2的整数次幂,否则不是
num = int(input("输入一个整数:"))
if num & (num-1) == 0:
print("是2的整数次幂")
else:
print("不是2的整数次幂")
4.比较运算符
比较运算符 (> < = <= >= == != <>)
比较运算符用来完成数据的比较操作,返回结果是一个布尔类型的数据
在Python中[a,b]可以直接写成a<=x<=b
例:
result = 5 < 6 < 7
print(result)
# True
5.逻辑运算符
and(并且) or(或者) not(非) is(是)
逻辑表达式and/or
连接两个子表达式,共同构成一个条件,但是注意and连接的两个表达式只有同时成立、同时为真,整个条件才会成立;or连接的两个表达式只要有一个成立,整个条件就会成立
not
:对连接条件的否定
is
:对连接条件的肯定
例:
num = 5
result = (num >= 3) and (num <= 6)
print(result)
# True
result = (num <= 3) or (num >= 6)
print(result)
# False
6.身份运算符
身份运算符 is / not is
判断给定的元素是否是某一个引用的数据
例:
# 判断指定的数据是否是某一种对应的数据类型
num = 1
print(type(num) is int)
# True
# Python内置方法isinstance()更适合用来判断类型
print(isinstance(num, int))
# True
7.成员运算符
成员运算符 in / not in
判断给定的元素是否在列表、字典或元组、集合中
例:
num = 1
list1 = [1, 2, 3, 4, 5, 6, 7]
print(num in list1)
# True