1.算术运算符
算术运算符用来对数字进行数学运算,比如加减乘除等
算术运算符 | 说明 |
+ | 加 |
- |
减 |
* | 乘 |
/ | 除法,两个数相除,结果为浮点数(小数) |
// | 整除,两个数相除,结果为向下取整的整数 |
% | 取余,即返回两个数相除的余数 |
** | 幂运算,即返回 x 的 y 次方 |
示例
a = 10
b = 2
# 12
print(a + b)
# 8
print(a - b)
# 20
print(a * b)
# 5.0
print(a / b)
# 3
print(a // 3)
# 1
print(a % 3)
# 100
print(a**b)
提示Tips
① 当 + 用于数字时表示加法,但是当 + 用于字符串时,它还有拼接字符串的作用
aword = 'Hello'
bword = 'World'
# Hello World
print(aword + ' ' + bword)
② - 除了可以用作减法运算之外,还可以用作负运算(正数变负数,负数变正数)
a = 12
neg_a = -a
b = -85.5
neg_b = -b
# -12
print(neg_a)
# 85.5
print(neg_b)
③ * 除了可以用作乘法运算,还可以用来重复字符串,也就是将n个同样的字符串连接起来
str1 = 'Hudas437'
# Hudas437Hudas437
print(str1 * 2)
④ 由于开方是次方的逆运算,我们也可以使用 ** 运算符间接地实现开方运算
# 开方运算
# 9.0
print(81**(1/2))
# 3.0
print(81**(1/4))
# 2.0
print(32**(1/5))
2.比较运算符(关系运算符)
比较运算符也被称为关系运算符,用于对常量、变量或表达式的结果进行大小比较
如果这种比较是成立的,则返回 True,反之则返回 False
比较运算符 | 说明 |
== | 等于,如果 == 两边的值相等,则返回 True,否则返回 False |
!= | 不等于(等价于数学中的 ≠),如果 != 两边的值不相等,则返回 True,否则返回 False |
> | 大于,如果 > 前面的值大于后面的值,则返回 True,否则返回 False |
< | 小于,如果 < 前面的值小于后面的值,则返回 True,否则返回 False |
>= | 大于等于(等价于数学中的 ≥),如果 >= 前面的值大于或者等于后面的值,则返回 True,否则返回 False |
<= | 小于等于(等价于数学中的 ≤),如果 <= 前面的值小于或者等于后面的值,则返回 True,否则返回 False |
示例
a = 1
b = 10
print(a == b) # False
print(a != b) # True
print(a > b) # False
print(a < b) # True
print(a >= b) # False
print(a <= b) # True
3.赋值运算符
赋值运算符用来把右侧的值传递给左侧的变量
赋值运算符 | 说明 | 用法举例 | 等价说明 |
= | 赋值运算 | x = y | x = y |
+= | 加法赋值运算 | x += y | x = x + y |
-= | 减法赋值运算 | x -= y | x = x - y |
*= | 乘法赋值运算 | x *= y | x = x * y |
/= | 除法赋值运算 | x /= y | x = x / y |
%= | 取余数赋值运算 | x %= y | x = x % y |
**= | 幂运算赋值运算 | x **= y | x = x ** y |
//= | 取整数赋值运算 | x //= y | x = x // y |
示例1
a = b = c = 100
print(a) # 100
print(b) # 100
print(c) # 100
示例2
a = 2
b = 3
a+=b
# 5
print(a)
a -= b
# 2
print(a)
a *= b
# 6
print(a)
a /= b
# 2.0
print(a)
a %= b
# 2
print(a)
a **= b
# 8.0
print(a)
a //= b
# 2.0
print(a)
4.逻辑运算符
逻辑运算符 | 含义 | 基本格式 | 说明 |
and | 逻辑与运算,等价于数学中的“且” | a and b | 当 a 和 b 两个表达式都为真时,a and b 的结果才为真,否则为假 |
or | 逻辑或运算,等价于数学中的“或” | a or b | 当 a 和 b 两个表达式都为假时,a or b 的结果才是假,否则为真 |
not | 逻辑非运算,等价于数学中的“非” | not a | 如果 a 为真,那么 not a 的结果为假;如果 a 为假,那么 not a 的结果为真 |
示例1
age = int(input("请输入年龄:"))
height = int(input("请输入身高:"))
if age>=18 and age<=30 and height >=170 and height <= 185 :
print("恭喜,你符合报考飞行员的条件")
else:
print("抱歉,你不符合报考飞行员的条件")
输出以下指令和结果:
示例2
words = "Hello World"
print("----False and xxx-----")
False and print(words) # False
print("----True and xxx-----")
True and print(words) # Hello World
print("----False or xxx-----")
False or print(words) # Hello World
print("----True or xxx-----")
True or print(words) # True
5.成员运算符
成员运算符 | 说明 |
in | 当在指定的序列中找到值时返回 True,否则返回 False |
not in | 当在指定的序列中没有找到值时返回 True,否则返回 False |
示例
a = 1
b = 2
lists = [1,3,5,7,9]
# True
print(a in lists)
# True
print(b not in lists)
6.身份运算符
身份运算符 | 说明 |
is | 判断两个变量所引用的对象是否相同,如果相同则返回 True,否则返回 False |
is not | 判断两个变量所引用的对象是否不相同,如果不相同则返回 True,否则返回 False |
== 用来比较两个变量的值是否相等,而 is 则用来比对两个变量引用的是否是同一个对象(即是否指向同一个内存地址)
# 引入time模块
import time
# gmtime()用来获取当前时间
t1 = time.gmtime()
t2 = time.gmtime()
# 输出True
print(t1 == t2)
# 输出False
print(t1 is t2)
# 输出True
print(t1 is not t2)
a = [1,2,3]
b = a
c = [1,2,3]
# True
print(a is b)
# False
print(a is c)
# True
print(a is not c)
7.位运算符
按位运算符是把数字看作二进制来进行计算的
位运算符 | 说明 | 运算规则 |
& | 按位“与” | 参与运算的两个值,对应的两个二进制位都为 1,则结果为 1,否则为 0 |
| | 按位“或” | 参与运算的两个值,对应的两个二进制位有一个为 1 时,结果就为 1 |
^ | 按位“异或” | 参与运算的两个值,对应的两个二进制位相异时,结果为1 |
~ | 按位“取反” | 参与运算的值,对该值中的每个二进制位取反 |
<< | 左移 | 参与运算的值,各二进位全部左移若干位,由 << 右边的数字指定移动的位数,高位丢弃,低位补0 |
>> | 右移 | 参与运算的值,各二进位全部右移若干位,>> 右边的数字指定移动的位数 |
7.1按位与运算符(&)
参加运算的两个数据,按二进制位进行"与"运算
运算规则:0&0=0 0&1=0 1&0=0 1&1=1
# 12
print(60&13)
# 将十进制60、13和12转换为二进制
# 0b111100
print(bin(60)) # 00111100
# 0b1101
print(bin(13)) # 00001101
# 0b1100
print(bin(12)) # 00001100
示例:判断奇偶
只要根据二进制最末位是0还是1来决定,为0就是偶数,为1就是奇数
a = 22
print(bin(a)) # 0b10110
if (a & 1) == 0:
print('输入的值是偶数')
else:
print('输入的值是奇数')
7.2按位或运算符(|)
参加运算的两个对象,按二进制位进行"或"运算
运算规则:0|0=0 0|1=1 1|0=1 1|1=1
# 61
print(60|13)
# 将十进制60、13和61转换为二进制
# 0b111100
print(bin(60)) # 00111100
# 0b1101
print(bin(13)) # 00001101
# 0b111101
print(bin(61)) # 00111101
7.3按位异或运算符(^)
参加运算的两个数据,按二进制位进行"异或"运算
运算规则:0^0=0 0^1=1 1^0=1 1^1=0
# 49
print(60^13)
# 将十进制60、13和49转换为二进制
# 0b111100
print(bin(60)) # 00111100
# 0b1101
print(bin(13)) # 00001101
# 0b110001
print(bin(49)) # 00110001
7.4取反运算符(~)
运算规则:对一个二进制数按位取反,即将0变1,1变0
# -61
print(~60)
# 将十进制60和-61转换为二进制
# 0b111100
print(bin(60)) # 00111100
print(bin(-61)) # 11000011
将一个十进制的负数转换为二进制需要使用补码的方法
1.将该十进制数转换为对应的绝对值的二进制数
2.将二进制的每一位(包括符号位)取反,0变1,1变0
3.将取反后的二进制数加1
举个例子,我们将 -61 这个十进制数转换为8位二进制数:
① 将61转换为二进制数:00111101
② 取反:11000010
③ 加1:11000011
7.5左移运算符(<<)
将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)
# 240
print(60 << 2)
# 将十进制60和240转换为二进制
# 0b111100
print(bin(60)) # 00111100
# 0b11110000
print(bin(240)) # 11110000
运算对象每左移一位,相当于该数乘以2
7.6右移运算符(>>)
# 15
print(60 >> 2)
# 将十进制60和15转换为二进制
# 0b111100
print(bin(60)) # 00111100
# 0b1111
print(bin(15)) # 00001111
运算对象每右移一位,相当于该数除以2