文章目录
前言
一.运算符
1.1算术运算符
1.2比较运算符
1.3逻辑运算符
1.4赋值运算符
1.5位运算符
1.6身份运算符
1.7成员运算符
1.8三目运算符
1.9优先级
二.表达式
2.1 算术表达式
2.2 比较表达式
2.3 逻辑表达式
2.4 赋值表达式
2.5 成员表达式
2.6 身份表达式
2.7 三元表达式
2.8 函数调用表达式
三.推导式
3.1列表推导式
3.2 字典推导式
3.3 集合推导式
总结
这一章写的是在python中会用到的运算符、表达式以及推导式
运算符用于执行某种操作并返回一个结果,Python中的运算符可以分为以下几种:
就是在数学中常用的运算
1、+:加法
2、-:减法
3、*:乘法
4、/:除法
5、%:取模(取余数)
6、**:幂运算
7、//:整除(取整数部分)
这些都是非常基础的运算
作用就是用于比较两个值并返回布尔值 True 或 False
1、==:等于
2、!=:不等于
3、<:小于
4、>:大于
5、<=:小于等于
6、>=:大于等于
用于连接布尔值并返回布尔值
1、and:与(逻辑与) 既要又要
2、or:或(逻辑或) 只要
3、not:非(逻辑非)不要
and 与运算:两者同时为真,结果才为真
# x, y代表表达式
x and y
3 + 4 > 5 and 10**2
#and 与运算**:两者同时为真,结果才为真7 > 100
#False
真值表:
x的值 | y的值 | x and y的值 |
---|---|---|
True | True | True |
True | False | False |
False | True | False |
False | False | False |
记住and运算,全真才真,一假则假
优先返回假值对象, 如果x 为假值,返回x, 否则返回y
or 或运算:只要有一个为真,结果就为真
x or y # x, y代表表达式
x的值 | y的值 | x or y的值 |
---|---|---|
True | True | True |
True | False | True |
False | True | True |
False | False | False |
or运算,全假才假,一真则真
优先返回真值对象, 如果x 为真值,返回x, 否则返回y
not 非运算:将表达式的结果取 非 操作,就是取反
# 语法
not 表达式
# 例子
not True # False
not False # True
not 3.14 # False
not '' # True
not 1 + 2 # False
作用只是用于给变量赋值
1、=:赋值
2、+=:加法赋值
3、-=:减法赋值
4、*=:乘法赋值
5、/=:除法赋值
6、%=:取模赋值
7、**=:幂运算赋值
8、//=:整除赋值
9、:= : 海象运算符,允许在表达式内部进行变量赋值并返回该值
注意:没有 a++、 a-- 这种自增自减运算符;
用于对整数按位进行操作
1、&:按位与
表达式:a & b
功能:对于每一位,如果a和b的相应位都是1,则结果位为1,否则为0。
# 示例:计算两个二进制数的按位与
a = 0b1011 # 二进制表示的11
b = 0b1101 # 二进制表示的13
result_and = a & b # 计算两者之间的按位与
print(bin(result_and)) # 输出:0b1001 (十进制为9)
2、|:按位或
表达式:a | b
功能:对于每一位,只要a和b中至少有一位是1,则结果位为1,否则为0。
# 示例:计算两个二进制数的按位或
a = 0b1011
b = 0b1101
result_or = a | b # 计算两者之间的按位或
print(bin(result_or)) # 输出:0b1111 (十进制为15)
3、^:按位异或
表达式:a ^ b
功能:对于每一位,如果a和b的相应位不同(一个为1,另一个为0),则结果位为1,否则为0。
# 示例:计算两个二进制数的按位异或
a = 0b1011
b = 0b1101
result_xor = a ^ b # 计算两者之间的按位异或
print(bin(result_xor)) # 输出:0b110 (十进制为6)
4、~:按位取反
表达式:~a
功能:对操作数a的每一个二进制位进行取反,即将1变为0,0变为1。
# 示例:计算一个二进制数的按位取反
a = 0b1011
result_not = ~a # 计算a的按位取反
print(bin(result_not)) # 输出:-0b1100
5、<<:左移位
表达式:a << b
功能:将a的二进制表示向左移动b位,左边移出的部分会被丢弃,右边空出的位置补零。
相当于乘以2^n次方
# 示例:将一个二进制数向左移动两位
a = 0b1011
result_left_shift = a << 2 # 将a向左移动两位
print(bin(result_left_shift)) # 输出:0b101100 (十进制为44)
6、>>:右移位
表达式:a >> b
功能:
1、将a的二进制表示向右移动b位
2、对于无符号整数,右边移出的部分会被丢弃,左边空出的位置补零(通常补0);
3、对于有符号整数,右移时取决于具体实现,可能是算术右移(符号位扩展)或者逻辑右移(补0)。
同理,相当于除以2^n
# 示例:将一个有符号二进制数向右移动一位
a = -0b1000 # 十进制为-8
result_right_shift = a >> 1 # 将a向右移动一位
print(bin(result_right_shift)) # 输出:-0b100 (十进制为-4)
# 对于无符号数的例子
unsigned_a = 0b1000
unsigned_result_right_shift = unsigned_a >> 1
print(bin(unsigned_result_right_shift)) # 输出:0b100 (十进制为4)
身份运算符是用于比较对象的内存地址(即身份)
1、is:判断对象是否相同
2、is not:判断对象是否不同
基础类型:值和类型都相同时,存在一个内存空间里面
a = 1
b = 1
print(a == b) #True, 比较的是值
print(a is b) #True, 比较的是内存地址,同一个值放在一个内存里面
基础类型:类型不同时就需要存放在两个内存空间里
a=1
b=1.0
a == b #True,值是相等的
a is b #False,需要放在两个内存空间里面,分别表示int和float
引用类型:有序列表
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) #True, 比较的是值
print(a is b) #False,比较的是内存地址
更多1:有序的列表list
a = [1, 2, 3]
b = [1, 3, 2]
print(a == b) #False,比较的是值,列表是有序的,值不同
print(a is b) #False,比较的是地址
更多2:无序的集合Set
a = {1, 2, 3}
b = {1, 3, 2}
print(a == b) #True,比较的是值,Set是无序的,所以值相同
print(a is b) #False,比较的是地址
更多3:无序的字典Dict
a = {'name': '张三', 'age': 10}
b = {'age': 10, 'name': '张三'}
print(a == b) #True,比较的是值,字典是无序的,所以值相同
print(a is b) #False,比较的是地址
用于检查一个值是否是某个集合的成员
1、in :判断值是否存在于序列中
2、not in :判断值是否不存在于序列中
5 in [2, 34, 5, 67] # True
条件运算符、三元运算符
max = a if a>b else b
#如果 a>b 成立,就把 a 作为整个表达式的值,并赋给变量 max;
#如果 a> b 不成立,就把 b 作为整个表达式的值,并赋给变量 max。
一般我们都是借助()来明确优先级问题
表达式(expression)是由一个或多个操作数和运算符组成的。简单来说,表达式可以是任何会产生一个值的代码片段。
涉及数学运算的表达式。
a = 5
b = 3
result = a + b # 加法
result = a / b # 除法
result = a // b # 地板除
result = a % b # 取余
result = a ** b # 幂运算
用于比较两个值,通常返回布尔值 True
或 False
。
a = 5
b = 3
result = a > b # 大于Ture
result = a <= b # 小于等于False
用于连接布尔值,返回布尔值 True
或 False
。
a = True
b = False
result = a and b # 逻辑与
result = a or b # 逻辑或
result = not a # 逻辑非
将一个值赋给一个变量,通常用 =
运算符。
a = 5 # 赋值表达式
b = a + 3 # 计算并赋值
用于检查一个值是否在序列、集合或字典中。
a = [1, 2, 3]
result = 2 in a # 检查2是否在列表a中
result = 4 not in a # 检查4是否不在列表a中
用于比较两个对象的身份(即是否是同一个对象),返回布尔值。
a = [1, 2]
b = a
result = a is b # 判断a和b是否是同一个对象
result = a is not b # 判断a和b是否不是同一个对象
简化的 if-else
表达式,根据条件选择两个值之一。
a = 5
b = 3
result = a if a > b else b # 如果a > b,result为a,否则为b
调用函数并返回结果。
def add(x, y):
return x + y
result = add(5, 3) # 函数调用表达式
用更简洁的方式创建列表、字典和集合。是 Python 特有的一种表达式形式。
a = [1, 2, 3, 4]
result = [x * 2 for x in a] # 创建一个新列表,元素是原列表每个元素的两倍
a = ['a', 'b', 'c']
result = {x: ord(x) for x in a} # 创建一个字典,将字母映射到对应的ASCII值
a = [1, 2, 3, 4]q
result = {x * 2 for x in a} # 创建一个集合,元素是原列表每个元素的两倍
以上就是今天要讲的内容,本文简单介绍了Python中的运算符、表达式和推导式。运算符部分讲解了算术、比较、逻辑、赋值、位运算等运算符的使用方法