红色系 网站,个人网站备案资料,网站开发风险协议,平台维护工作内容一、运算符与表达式 运算符 就是对字面量或者变量进行操作的符号#xff1b;表达式 是指用运算符把字面量或者变量连接起来#xff0c;符合 Python 语法的式子。不同运算符连接的表达式体现的是不同类型的表达式#xff1b;Python 中的运算符主要包括 算术运算符、赋值运算符…一、运算符与表达式 运算符 就是对字面量或者变量进行操作的符号表达式 是指用运算符把字面量或者变量连接起来符合 Python 语法的式子。不同运算符连接的表达式体现的是不同类型的表达式Python 中的运算符主要包括 算术运算符、赋值运算符、比较关系运算符、逻辑运算符 和 位运算符。
二、算数运算符 算术运算符是用来处理四则运算的符号。
算数运算符运算范例结果加5 27-减5 - 23*乘5 * 210/除5 / 22.5%取模取余5 % 21//取整除返回商的整数部分5 // 22**幂即返回 x 的 n 次方5**225即 $ 5^{2}$
a 5
b 2
print(a, , b, , (a b)) # 5 2 7
print(a, , b, , (a - b)) # 5 - 2 3
print(a, , b, , (a * b)) # 5 * 2 10
print(a, , b, , (a / b)) # 5 / 2 2.5
print(a, , b, , (a % b)) # 5 /% 2 1
print(a, , b, , (a // b)) # 5 // 2 2
print(a, , b, , (a ** b)) # 5 ** 2 25a hello
b world
print(a, b, , (a b)) # hello world helloworld在代码中如果有小数参与运算其结果可能是不精确的 % 取模运算结果的正负与被模数一致即a%b 等价于 a-a/b*b取模结果的正负与 a 的正负一致 字符串之间也可以进行加法运算。如果将两个字符串相加则会自动将两个字符串拼接为一个字符串 如果将字符串和数字相乘则会对字符串进行复制操作即把字符串重复指定的次数并返回例如“字符串”*m表示将字符串复制 m 次 使用除法运算符/ 或 //和取余运算符时除数不能为 0否则会报以下异常ZeroDivisionError: division by zero 三、赋值运算符 赋值运算符 用于将右侧表达式的值赋值给左侧变量。
赋值运算符运算范例结果赋值a 10将 10 赋值给变量a加后赋值a b将 a b 的值给 a-减后赋值a - b将 a - b 的值给 a*乘后赋值a * b将 a * b 的值给 a**幂运算后赋值a ** b将 a b a^b ab 的值给 a/除后赋值a / b将 a / b 的值给 a//整除后赋值a // b将 a//b 的值给 a%取余后赋值a % b将 a % b 的值给 a
# 多个变量赋值时使用逗号分隔
a,b 10,5a b
print(a ,a) # 15
print(b ,b) # 5
print()a 10
b 5a - b
print(a ,a) # 5
print(b ,b) # 5
print()a 10
b 5a * b
print(a ,a) # 50
print(b ,b) # 5
print()a 10
b 5a ** b
print(a ,a) # 100000
print(b ,b) # 5
print()a 10
b 5a / b
print(a ,a) # 2.0
print(b ,b) # 5
print()a 10
b 5a // b
print(a ,a) # 2
print(b ,b) # 5
print()a 10
b 5a % b
print(a ,a) # 0
print(b ,b) # 5
四、关系运算符 关系运算符 也被称为 比较运算符它用于表达式的 比较并返回一个 真值 或 假值。
关系运算符运算范例结果比较两个对象的值是否相等4 3False!比较两个对象的值是否不相等4 ! 3True比较左侧值是否小于右侧值4 3False比较左侧值是否大于右侧值4 3True比较左侧值是否小于等于右侧的值4 3True比较左侧值是否大于等于右侧的值4 3True
a 4
b 3print(a, , b, : , (a b)) # False
print(a, ! , b, : , (a ! b)) # True
print(a, , b, : , (a b)) # False
print(a, , b, : , (a b)) # False
print(a, , b, : , (a b)) # True
print(a, , b, : , (a b)) # Truea 1
b 2
print(a, , b, : , (a b)) # True a abc
b ab
print(a, , b, : , (a b)) # Truea 1
b True
print(a, , b, : , (a b)) # True在 Python 中关系运算符可以连的使用。
result 1 2 3 # 相当于 1 2 and 2 3
print(result)result 10 20 15 # 相当于 10 20 and 20 15
print(result)在 Python 中可以对字符串进行大于等于或小于等于的运算当对字符串进行比较时实际上比较的是字符串的 Unicode 编码比较两个字符串的 Unicode 编码时是逐位比较的 如果不希望比较两个字符串的 Unicode 编码则需要将其转换为数字然后进行再进行比较 相等和不等比较的是对象的值而不是 id 五、逻辑运算符 逻辑运算符 用于根据表达式的值返回 真值 或 假值。对于非布尔值进行逻辑运算会将数据转换为布尔值然后再进行逻辑运算。 在 Python 中所有的对象都可以进行真值测试其中只有下面列出的几种情况得到的值为假。
False 或 None数值中的零包括 0、0.0、虚数0空序列包括 字符串、空元组、空列表、空字典自定义对象的实例该对象的 __bool__ 方法返回 False 或者 __len__ 方法返回 0
逻辑运算符功能and逻辑与全真为真有假为假or逻辑或有真为真全假为假not逻辑非非假为真非真为假 运算结果
aba and ba or bnot aTrueTrueTrueTrueFalseTrueFalseFalseTrueFalseFlaseTrueFalseTrueTrueFalseFalseFalseFalseTrue
a True
b True
c False
d Falseprint(a, and , b, : , (a and b)) # True
print(a, and , c, : , (a and c)) # False
print(c, and , d, : , (c and d)) # False
print()print(a, or , b, : , (a or b)) # True
print(a, or , c, : , (a or c)) # True
print(c, or , d, : , (c or d)) # False
print()print(not , a, : , (not a)) # False
print(not , c, : , (not c)) # True
print()# 对于非布尔值进行逻辑运算会先将数据转化为布尔值然后再进行逻辑运算
a 1
print(not , a, : , (not a)) # False在 Python 中 与运算 和 或运算 都具有短路效果即当左边的表达式能确定最终结果时那么右边就不会参与运算了
与运算符与运算是找 False的如果第一个值为 False则不再看第二个值。或运算符或运算是找 True 的如果第一个值为 True则不再看第二个值。
print(与运算的短路运算)
True and print(我执行了)
False and print(我不会执行)
print()print(或运算的短路运算)
True or print(我不会执行)
False or print(我执行了)当我们对非布尔值进行与或运算时Python 会将其当作布尔值运算最终会返回原值。与运算是找 False 的如果第一个值是 False则直接返回第一个值否则返回第二个值。或运算是找 True 的如果第一个值是 True则直接返回第一个值否则返回第二个值。
print(非布尔值的与运算)
# Ture and True
print(1 and 2: , (1 and 2)) # 2
# True and False
print(1 and 0: , (1 and 0)) # 0
# False and True
print(0 and 1: , (0 and 1)) # 0
# False and False
print(0 and None: , (0 and None)) # 0
print()print(非布尔值的或运算)
# Ture or True
print(1 or 2: , (1 or 2)) # 1
# True or False
print(1 or 0: , (1 or 0)) # 1
# False or True
print(0 or 1: , (0 or 1)) # 1
# False or False
print(0 or None: , (0 or None)) # None六、身份运算符
身份运算符功能is判断两个表示是否引用同一个对象若引用的是同一个对象则返回 True否则返回 Falseis not判断两个表示是否引用同一个对象若引用的不是同一个对象则返回 True否则返回 False
a 123
b 123
c -123
d -123print(id(a): ,id(a))
print(id(b): ,id(b))
print(id(c): ,id(c))
print(id(d): ,id(d))
print(fa {a},b {b},c {c},d {d})
print()print(a is b: , (a is b)) # True
print(a is c: , (a is c)) # False
print()print(a is not b: , (a is not b)) # False
print(a is not c: , (a is not c)) # True
print()print(a is b: ,(a is b))
print(c is d: ,(c is d))在 Python 解释器启动的那一刻开始就会在内存中实现申请好一系列内存空间存放好常用的整数范围为 [-5,256]。 如果用 Pycharm 等 IDE会自动优化 七、成员运算符
成员运算符功能in在指定序列中找到值时返回 True否则返回 Falsenot in在指定序列中没有找到值时返回 True否则返回 False
a s
b a
c Sakuraprint(a , a,, b , b,, c , c)
print()print(a in c: , (a in c)) # False
print(a not in c: , (a not in c)) # True
print()print(b in c: , (b in c)) # True
print(b not in c: , (b not in c)) # False八、位运算符 位运算符是直接对整数的二进制进行的运算 所有数字在计算机底层都以二进制形式执行所有的整数值底层都以补码的方式存储
正数三码合一符号位为 0负数符号位为 1 原码直接将数值转成二进制数最高位是符号位反码对原码按位取反符号位不变补码其反码加 1
位运算符运算范例左移空位补0被移除的高位舍弃3 2 12右移空位使用符号位填充被移除的低位舍弃3 1 1与运算二进制位进行与运算全1为1有0为06 3 2|或运算二进制位进行或运算有1为1全0为06| 3 7^异或运算二进制位进行异或运算相同为0不同为16 ^ 3 5~按位取反二进制位进行取反运算非0为1非1为0~6 -7
print(3 2: , (3 2)) # 12
print(3 1: , (3 1)) # 1
print(-3 1: , (-3 1)) # -2
print(6 3: , (6 3)) # 2
print(6 | 3: , (6 | 3)) # 7
print(6 ^ 3: , (6 ^ 3)) # 5
print(~6: , (~6)) # -7在一定范围内每向左移一位相当于乘以2 在一定范围内每向右移一位相当于除以2 九、三元运算符 三元运算符的格式如下
语句1 if 条件表达式 else 语句2它的执行流程如下
条件运算符在执行时会先对条件表达式进行求值判断 如果判断结果为 True则执行语句1并返回执行结果如果判断结果为 False则执行语句2并返回执行结果
num int(input(请输入一个数))
print(你输入的数比10大) if num 10 else print(你输入的数不大于10)a 10
b 20max a if a b else b
print(max)三元运算符一定可以改成 if-else 语句反之不成立 如果程序既可以使用三元运算符又可以使用 if-else 语句优先使用三元运算符 十、运算符的优先级 我们可以使用小括号来提升运算符的优先级
优先级运算符名称或含义使用形式结合方向说明1(expressions...)圆括号(表达式)左到右[expressions...]列表[表达式]左到右{key:value}字典{键:值}左到右{expressions...}集合{表达式}左到右2[index]索引[常量]左到右[start:end:step]切片[起始索引:结束索引:步长]左到右x(arguments...)方法调用方法名(形参列表)左到右x.attribute属性访问对象.属性左到右3**乘方表达式**表达式左到右4正号运算符表达式右到左单目运算符-负号运算符-表达式单目运算符~按位取反~表达式左到右5*乘表达式 * 表达式左到右双目运算符/除表达式 / 表达式双目运算符//整除表达式 // 表达式双目运算符%取余表达式 % 表达式双目运算符6加表达式 表达式左到右双目运算符-减表达式 - 表达式双目运算符7左移变量 表达式左到右双目运算符右移变量 表达式双目运算符8按位与表达式 表达式左到右双目运算符9^按位异或表达式 ^ 表达式左到右双目运算符10|按位或表达式 | 表达式左到右双目运算符11大于表达式 表达式左到右双目运算符大于等于表达式 表达式双目运算符小于表达式 表达式双目运算符小于等于表达式 表达式双目运算符等于表达式 表达式双目运算符!不等于表达式 ! 表达式双目运算符isis 运算符变量 is 变量左到右双目运算符is notis not 运算符变量 is not 变量双目运算符inin 运算符元素 in 序列左到右双目运算符not innot in 运算符元素 not in 序列双目运算符12not逻辑非not 表达式左到右单目运算符13and逻辑与表达式 and 表达式左到右单目运算符14or逻辑与表达式 and 表达式左到右单目运算符15if-else三元表达式语句1 if 条件表达式 else 语句216赋值运算符变量表达式右到左/除后赋值变量/表达式*乘后赋值变量*表达式%取模后赋值变量%表达式加后赋值变量表达式-减后赋值变量-表达式左移后赋值变量表达式右移后赋值变量表达式按位与后赋值变量表达式^按位异或后赋值变量^表达式|按位或后赋值变量|表达式