Python7种运算符及运算符优先级-程序员宅基地

技术标签: 运算符优先级  Python运算符  Python从入门到精通  

作者简介:CSDN内容合伙人、新星计划第三季Python赛道Top1
本文已收录于Python系列专栏: Python从入门到精通
订阅专栏后可私信博主进入Python学习交流群,进群可领取Python视频教程以及Python相关电子书合集
私信未回可以加V:hacker0327 备注Python从入门到精通
在这里插入图片描述
Python从入门到精通系列专栏面向零基础以及需要进阶的读者倾心打造,9.9元订阅即可享受付费专栏权益,一个专栏带你吃透Python
从搭建环境、基础语法入手到深入学习掌握各种核心库和框架,学习利用Requests、Beautiful Soup、Scrapy等库从网络上获取数据、利用Pygame库进行游戏开发、利用NumPy、Pandas、Matplotlib等库进行数据分析,数据可视化、利用Django、Flask框架构建网站和Web应用程序等等,最终掌握并应用于实际项目。学习不断,持续更新,火热订阅中
在这里插入图片描述

算术运算符

运算符 描述
+
-
*
/
% 取摸-返回除法的余数
** 幂-返回x的y次方
// 取整数-返回商的整数部分

详解算术运算符

+运算符

用于将两个数相加(在后面学习字符串时还可用作连接字符串)

实例:将x和y的值相加并输出

x = 10
y = 7
print("两数相加:", x + y)

在这里插入图片描述

-运算符

用于将两个数相减

实例:将x和y的值相减并输出

x = 10
y = 7
print("两数相减:", x - y)

在这里插入图片描述

*运算符

用于将两个数相乘(在后面学习字符串时还可用作连接字符串)

实例:将x和y的值相乘并输出

x = 10
y = 7
print("两数相乘:", x * y)

在这里插入图片描述

/运算符

用于将两个数相除

实例:将x和y的值相除并输出

x = 10
y = 7
print("两数相除:", x / y)

在这里插入图片描述

%运算符

用于求两数相除的余数

实例:将x和y的值取余并输出

x = 10
y = 7
print("两数取余:", x % y)

在这里插入图片描述

**运算符

幂运算符,用于求x的y次方

实例:求x的y次方的值并输出

x = 10
y = 7
print("x的y次方:", x ** y)

在这里插入图片描述

//运算符

取整除,返回商的整数部分

实例:求x和y取整除的值并输出

x = 10
y = 7
print("x和y取整除:", x // y)

在这里插入图片描述

注意事项

使用除法(/或//)运算符和求余运算符,除数不能为0,否则将会出现异常 使用Python自带的IDLE验证一下

在这里插入图片描述

赋值运算符

运算符 描述
= 常规赋值运算符,将运算结果赋值给变量
+= 加法赋值运算符,例如 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

=运算符

常规赋值运算符,将运算结果赋值给变量

实例:将x的值赋值给y并输出y的值

x = 10
y = x
print("y的值:", y)

在这里插入图片描述

+=运算符

x+=y相当于x=x+y(将x+y的值重新赋值给x)

实例:将x和y的值进行加法赋值运算

x = 10
y = 7
x += y  # x = x + y
print("x的值:", x)

在这里插入图片描述

-=运算符

x-=y相当于x=x-y(将x-y的值重新赋值给x)

实例:将x和y的值进行减法赋值运算

x = 10
y = 7
x -= y  # x = x - y
print("x的值:", x)

在这里插入图片描述

*=运算符

x*=y相当于x=xy(将xy的值重新赋值给x)

实例:将x和y的值进行乘法赋值运算

x = 10
y = 7
x *= y  # x = x * y
print("x的值:", x)

在这里插入图片描述

/=运算符

x/=y相当于x=x/y(将x/y的值重新赋值给x)

实例:将x和y的值进行除法赋值运算

x = 10
y = 7
x /= y  # x = x / y
print("x的值:", x)

在这里插入图片描述

//=运算符

x//=y相当于x=x/y(将x//y的值重新赋值给x)

实例:将x和y的值进行取整除赋值运算

x = 10
y = 7
x //= y  # x = x // y
print("x的值:", x)

在这里插入图片描述

%=运算符

x%=y相当于x=x/y(将x%y的值重新赋值给x)

实例:将x和y的值进行取余(取模)赋值运算

x = 10
y = 7
x %= y  # x = x % y
print("x的值:", x)

在这里插入图片描述

**=运算符

x**=y相当于x=xy(将xy的值重新赋值给x)

实例:将x和y的值进行幂赋值运算

x = 10
y = 7
x **= y  # x = x ** y
print("x的值:", x)

在这里插入图片描述

&=运算符

x&=y相当于x=x&y(将x&y的值重新赋值给x)

实例:将x和y的值进行位与赋值运算

x = 10  # 10的二进制表示为:1010
y = 7  # 7的二进制表示为:0111
x &= y  # x = x & y
print("x的值:", x)

在这里插入图片描述

比较运算符

运算符 描述
== 等于(比较两个对象是否相等)
!= 不等于(比较两个对象是否不相等)
> 大于(返回x是否大于y)
< 小于(返回x是否小于y)
>= 大于等于(返回x是否大于等于y
<= 小于等于(返回x是否小于等于y

==运算符

比较两个对象是否相等,相等返回True,反之返回False

实例:x分别与y和z比较是否相等

x = 10
y = 10
z = 7
print("x是否等于y:", x == y)
print("x是否等于z:", x == z)

在这里插入图片描述

!=运算符

比较两个对象是否不相等,不相等返回True,反之返回False

实例:x分别与y和z比较是否不相等

x = 10
y = 10
z = 7
print("x是否不等于y:", x != y)
print("x是否不等于z:", x != z)

在这里插入图片描述

>运算符

比较x是否大于y,大于返回True,反之返回False

实例:比较x是否大于y

x = 10
y = 7
print("x是否大于y:", x > y)

在这里插入图片描述

<运算符

比较x是否小于y,小于返回True,反之返回False

实例:比较x是否小于y

x = 10
y = 7
print("x是否小于y:", x < y)

在这里插入图片描述

>=运算符

比较x是否大于等于y,大于等于返回True,反之返回False

实例:比较x是否大于等于y

x = 10
y = 10
print("x是否大于等于y:", x >= y)

在这里插入图片描述

<=运算符

比较x是否小于等于y,小于等于返回True,反之返回False

实例:比较x是否小于等于y

x = 10
y = 7
print("x是否小于等于y:", x <= y)

在这里插入图片描述

逻辑运算符

运算符 描述
and 逻辑与
or 逻辑或
not 逻辑非

and运算符

当两个条件表达式都为 True,则结果为 True;否则结果为 False

实例:计算x > 0 and y < 15的值

x = 7
y = 10

result_and = x > 0 and y < 15
print("Result of 'and' operation:", result_and)

在这里插入图片描述

or运算符

当两个条件表达式中至少有一个为 True 时,整个 or 表达式的结果为 True,只有当两个条件表达式都为 False 时,整个表达式的结果才为 False

实例:计算x > 0 or y < 15的值

x = 7
y = 10

result_or = x < 0 or y < 15
print("Result of 'or' operation:", result_or)

在这里插入图片描述

not运算符

对条件表达式的结果进行取反,即如果条件表达式为 True,则 not 表达式的结果为 False;如果条件表达式为 False,则 not 表达式的结果为 True

实例:计算not (x < 0)的值

x = 7
y = 10

result_not = not (x < 0)
print("Result of 'not' operation:", result_not)

在这里插入图片描述

扩展

在逻辑运算中,andor 都是短路运算符,即如果第一个条件已经能够确定整个表达式的结果,则不会再计算后续的条件。这种行为称为短路求值(Short-Circuit Evaluation)在某些情况下可以提高程序的性能并避免不必要的计算。

写一个示例,演示一下如何测试短路求值,这里我们可以在后面的表达式中设置一个异常,并使用异常处理来测试(异常处理在后面的文章会讲到,这里仅做了解)

x = False

# 在后面的表达式中设置一个异常来测试短路求值
try:
    # 如果 x 为 False,则后面的表达式不会被计算
    if x and 10 / 0:
        print("不会到达该语句")
    else:
        print("触发短路")
except ZeroDivisionError as e:
    print("捕获到异常:", e)

以上程序中,设置x的值为False,由于短路求值已经确定整个表达式的值,不会计算后面的表达式(10/0)
输出触发短路
在这里插入图片描述

如果在以上程序中,设置x的值为True,由于and当两个表达式的值为True,整个表达式的值才为True,所以会计算后面的表达式(10/0) 这时就会触发异常了,除数不能为0
输出捕获到异常: division by zero
在这里插入图片描述

身份运算符

运算符 描述
is 判断两个对象是不是引用自同一个对象
is not 判断两个变量是不是引用自不同对象

is运算符

判断两个变量是否引用自同一个对象,是返回True,反之返回False

实例:判断x和y是否引用自同一个对象

x = 10
y = 10
print("x和y引用自同一个对象:", x is y)

在这里插入图片描述

is not运算符

判断两个变量是否引用自不同对象,是返回True,反之返回False

实例:判断x和y是否引用自不同对象

x = 10
y = 7
print("x和y引用自不同对象:", x is not y)

在这里插入图片描述

易错点辨析
is和==的区别

  • is是用于判断两个变量是否引用自同一对象,比较的是两个变量的内存地址(可使用id()查看)
  • ==是判断两个变量的值是否相等
x = 10
y = 10.0
print("x的内存地址:", id(x))
print("y的内存地址:", id(y))
print("x和y的内存地址是否相同(是否引用自同一个对象):", x is y)
print("x和y的值是否相同:", x == y)

在这里插入图片描述

成员运算符

运算符 描述
in 在指定序列里找到值返回True,否则返回False
not in 在指定序列里没找到值返回True,否则返回False

in运算符

用于判断一个值是否存在序列中,存在返回True,反之返回False

实例:判断o是否在str_a中

str_a = "hello"
print("o是否在str_a中:", "o" in str_a)

在这里插入图片描述

not in运算符

用于判断一个值是否不在序列中,不在返回True,反之返回False

实例:判断a是否在str_b中

str_b = "world"
print("a是否不在str_b中:", "a" not in str_b)

在这里插入图片描述

位运算符(了解即可)

位运算符是把数字看作二进制数进行计算,需要先将要参与运算的数据转换为二进制然后进行计算(不常用,仅作了解即可)

  • &按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
  • |按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。
  • ^ 按位异或运算符:当两对应的二进位相异时,结果为1
  • ~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。
  • <<左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。
  • >>右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数

运算符优先级(由高到低)

优先级顺序 运算符 描述
1 **
2 * / % // 乘、除、取模、取整除
3 + - 加、减
4 《 》& ∧ ︳ 位运算符
5 == != < > <= >= 比较运算符
6 = %= /= //= -= += *= **= 赋值运算符
7 is is not 身份运算符
8 in not in 成员运算符
9 not or and 逻辑运算符
10 == != < > <= >= 赋值运算符

结束语

以上就是Python从入门到精通之Python7种运算符及运算符优先级

  • 专栏订阅地址: https://blog.csdn.net/xqe777/category_12252384.html
  • 专栏订阅者可私信博主领取专栏订阅福利,进入Python学习交流群,如私信未回可以加V:hacker0327 备注Python从入门到精通
  • 此专栏内容会持续更新直到完结为止(如有任何纰漏请在评论区留言或者私信)

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xqe777/article/details/137559473

智能推荐

无Internet,安全的解决方法-程序员宅基地

文章浏览阅读8.4w次,点赞5次,收藏18次。问题描述即无法访问互联网解决方案当时重装网卡和驱动也没能解决,不过运行过许多方法还是不行的话,就必须重装网卡和驱动后再去尝试。打开网络连接--WLAN--双击打开--属性,WifiMaster NAT Driver不勾选 -----不行继续看 若是属性为空白,看文尾 打开设备管理器--网络适配器--无线网卡右键属性--电..._无internet,安全

xmanager 出现Initialize Flexnet Service failed / Error code: 50003_error code:50003-程序员宅基地

文章浏览阅读4.2k次。因为想使用xshell 打开firefox浏览器,但是可能之前xmanager没安装好所以出现了上述问题现在是第6版,在网上找了许多,出现上述问题,建议https://www.portablesoft.org/flexnet-licensing-service/,因为csdn上的人贴出的链接都没法用所以直接贴出这个。按步骤下载打开批处理。就是原文方法,但是我电脑,没用,希望你好运,毕竟好多人都..._error code:50003

3.9.2Cache和主存的映射方式_cache的三种映射方式详解-程序员宅基地

文章浏览阅读7.8k次,点赞55次,收藏230次。计算机组成原理之Cache和主存的映射方式_cache的三种映射方式详解

《吃豆子过桥问题》——经典智力题、面试题_过一座26米的桥走一米吃一个豆子,最多装19颗豆子-程序员宅基地

文章浏览阅读1.1k次。吃豆子过桥问题  本题来自于百度校招面试题,通过一个简单的智力问题理解递归问题的解法。  一:问题描述  一个人要过一座80米的桥,每走一米需要吃一颗豆子,他最多可以装60颗豆子,问最少需要吃多少颗豆子才能走完桥?   二:初步分析  1.一趟(不折回)最多只能走60米豆子就会被吃完;  2.如果有折回,必须保证能够返回到有豆子的地点,且在折回点放下的豆子尽量多; _过一座26米的桥走一米吃一个豆子,最多装19颗豆子

odoo安装和体验-程序员宅基地

文章浏览阅读451次。为什么80%的码农都做不了架构师?>>> ..._odoo企业版安装包

[PTA]7-19 支票面额_一个采购员去银行兑换一张y元f分的支票,结果出纳员错给了f元y分。采购员用去了n分-程序员宅基地

文章浏览阅读353次。一个采购员去银行兑换一张 y 元 f 分的支票,结果出纳员错给了 f 元 y 分。采购员用去了 n 分之后才发觉有错,于是清点了余额尚有 2y 元 2f 分,问该支票面额是多少?_一个采购员去银行兑换一张y元f分的支票,结果出纳员错给了f元y分。采购员用去了n分

随便推点

VS中注释和取消注释的快捷键_vs解除注释-程序员宅基地

文章浏览阅读9.8k次,点赞5次,收藏6次。最近使用VS2010+OpenCV进行图像处理,发现注释和取消注释的快捷键是组合键。注释: 先CTRL+K,然后CTRL+C取消注释:先CTRL+K,然后CTRL+U_vs解除注释

C++文件操作(输入输出、格式控制、文件打开模式、测试流状态、二进制读写)...-程序员宅基地

文章浏览阅读357次。1.向文件写数据头文件#include <ofstream>  ①Create an instance of ofstream(创建ofstream实例)  ②Open the file with open() or ofstreamconstructor (用open()或者构造函数打开文件)  ③Writedata to the file with "<<"..._getline(chararray[], intsize, chardelimitchar)

服务器修改开机启动项,启动项设置_服务器开机启动项-程序员宅基地

文章浏览阅读8.2k次。最近很多观众老爷在苦觅关于启动项设置的解答,今天钦编为大家综合5条解答来给大家解开疑惑! 有98%玩家认为启动项设置_服务器开机启动项值得一读!启动项设置1.如何在bios设置硬盘为第一启动项详细步骤根据BIOS分类的不同操作不同:一、AMI BIOS 或Phoenix BIOS 通用设置1、以联想机型为例,启动时按Del或F1进入BIOS,切换到Boot界面,选择1st Boot Device回..._服务器bios启动项设置

鸿蒙os手机版正式版官方,亿万花粉有福了!鸿蒙手机OS正式版将于3月上线,或由P50系列首发...-程序员宅基地

文章浏览阅读116次。受制裁影响,华为手机的市场份额不断下滑。根据最新的数据,2021年1月,华为手机在国内的市场份额不低OPPO和vivo,仅名列第三。虽然困难重重,华为却未停止往前走的脚步,还开除了几名在网上声称“华为要出售手机业务”的内部员工。华为官方已经确认,新款手机还会正常发布,按照发布节奏,上半年的旗舰—P50系列已经离我们是越来越近了。P50系列除了会带来更加出色的拍照,还有一大绝招,那就有可能会首发鸿蒙..._鸿蒙手机版正式上线

npm默认安装路径设置_npm默认路径-程序员宅基地

文章浏览阅读1.6w次,点赞2次,收藏12次。默认情况下,在哪个文件夹下运行npm,npm就在当前目录创建一个文件夹node_modules,然后将要安装的程序安装到文件夹node_modules里面,这样我很不习惯哈。。。所以让我们给它设置一个默认位置吧!// 设置npm安装程序时的默认位置npm config set prefix “C:\Users\Default\AppData\Roaming\npm\node_modules”..._npm默认路径

初玩dlib:人脸识别(2)_shape_predictor_68_face_landmarks-程序员宅基地

文章浏览阅读512次。1. 简介利用训练好的 shape_predictor_68_face_landmarks.dat(人脸 68 点特征检测器),进行人脸面部轮廓特征的提取。下载地址:http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz22. 代码 face_landmark_detector_remark.py# -*-..._shape_predictor_68_face_landmarks

推荐文章

热门文章

相关标签