[Python] 常用运算符

时间:2022-06-15 01:21:36

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("抱歉,你不符合报考飞行员的条件")

输出以下指令和结果:

[Python] 常用运算符

示例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