零基础Python完全自学教程8:Python中常用的运算符
off999 2024-11-08 12:48 17 浏览 0 评论
欢迎你来到站长学堂,学习站长在线出品的在线课程《零基础Python完全自学教程》今日分享的是第8课《Python中常用的运算符》。本节课主要内容有:算术运算符、赋值运算符、比较(关系)运算符、逻辑运算符和位运算符。
运算符就是一些特殊的符号,用于数学计算、比较大小,判断逻辑等。Python的运费符主要包括算术运算符、赋值运算符、比较(关系)运算符、逻辑运算符和位运算符。使用运算符将不同类型的数据按照一定的规则链接起来的式子,称为表达式。
使用算术运算符连接起来的式子,称为算术表达式;使用逻辑运算符连接起来的式子,称为逻辑表达式。下面开始对Python中常用的的运算符进行详细介绍。
8.1、Python中的算术运算符
算术运算符也即数学运算符,用来对数字进行数学运算,比如加减乘除。下表列出了 Python 支持所有基本算术运算符。
在python算术运算中,和数学计算一样:
1、0是不能作为除数的。否则就会出错。
2、加法运算符很简单,和数学中的规则一样。当+用于字符串时,它还有拼接字符串(将两个字符串连接为一个)的作用。
8.2、Python中的赋值运算符
赋值运算符主要用来变量等赋值。赋值运算符用来把右侧的值传递给左侧的变量(或者常量);可以直接将右侧的值交给左侧的变量,也可以进行某些运算后再交给左侧的变量,比如加减乘除、函数调用、逻辑运算等。
图8.2为常用的赋值运算符
站长在线提醒大家,很多程序员常常把“=”和“==”搞混淆了。很多编程语言常常用错的两个符号。
8.3、Python中的比较运算符(关系运算符)
比较运算符,也称关系运算符,用于对常量、变量或表达式的结果进行大小比较。如果这种比较是成立的,则返回 True(真),反之则返回 False(假)。
Python 比较运算符汇总
图8.3Python 比较运算符汇总
Python 比较运算符的使用举例:
print("89是否大于100:", 89 > 100)
print("24*5是否大于等于76:", 24*5 >= 76)
print("86.5是否等于86.5:", 86.5 == 86.5)
print("34是否等于34.0:", 34 == 34.0)
print("False是否小于True:", False < True)
print("True是否等于True:", True < True)
运行结果:
89是否大于100: False
24*5是否大于等于76: True
86.5是否等于86.5: True
34是否等于34.0: True
False是否小于True: True
True是否等于True: False
>>>
8.4、Python中的逻辑运算符
高中数学中我们就学过逻辑运算,例如 p 为真命题,q 为假命题,那么“p且q”为假,“p或q”为真,“非q”为真。Python 的逻辑运算,主要包括and(逻辑与)、or(逻辑或)、not(逻辑非)。
本教程参考很多的书籍、在线课程,最终采用C语言中文网的说法:
Python 逻辑运算符用于操作 bool 类型的表达式,执行结果也是 bool 类型,这两点其实都是错误的!
Python 逻辑运算符可以用来操作任何类型的表达式,不管表达式是不是 bool 类型;同时,逻辑运算的结果也不一定是 bool 类型,它也可以是任意类型。请看下面的例子:
print(100 and 200)
print(45 and 0)
print("" or "https://www.olzz.com/xuetang/python/")
print(18.5 or "https://www.olzz.com/xuetang/python/")
运行结果:
200
0
https://www.olzz.com/xuetang/python/
18.5
>>>
你看,本例中 and 和 or 运算符操作的都不是 bool 类型表达式,操作的结果也不是 bool 值。
逻辑运算符的本质
在 Python 中,and 和 or 不一定会计算右边表达式的值,有时候只计算左边表达式的值就能得到最终结果。
另外,and 和 or 运算符会将其中一个表达式的值作为最终结果,而不是将 True 或者 False 作为最终结果。
以上两点极其重要,了解这两点不会让你在使用逻辑运算的过程中产生疑惑。
对于 and 运算符,两边的值都为真时最终结果才为真,但是只要其中有一个值为假,那么最终结果就是假,所以 Python 按照下面的规则执行 and 运算:
如果左边表达式的值为假,那么就不用计算右边表达式的值了,因为不管右边表达式的值是什么,都不会影响最终结果,最终结果都是假,此时 and 会把左边表达式的值作为最终结果。
如果左边表达式的值为真,那么最终值是不能确定的,and 会继续计算右边表达式的值,并将右边表达式的值作为最终结果。
对于 or 运算符,情况是类似的,两边的值都为假时最终结果才为假,只要其中有一个值为真,那么最终结果就是真,所以 Python 按照下面的规则执行 or 运算:
如果左边表达式的值为真,那么就不用计算右边表达式的值了,因为不管右边表达式的值是什么,都不会影响最终结果,最终结果都是真,此时 or 会把左边表达式的值作为最终结果。
如果左边表达式的值为假,那么最终值是不能确定的,or 会继续计算右边表达式的值,并将右边表达式的值作为最终结果。
8.5、Python中的位运算符
为运算符是把数字看作二进制数来进行计算的,因此需要将要执行运算的数据转换为二进制,然后才能运算。Python中的位运算符有按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左位移(<<)和右移位(>>)运算符。
8.5.1、“按位与”运算(&)
按位与运算的运算符为“&”,它的运算法则是,两个操作数的二进制表示,只有对应位都为1,结果才为1,否则为0。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。看下方12&8的运算过程。
#12&8的运算过程
0000 0000 0000 1100
& 0000 0000 0000 1000
0000 0000 0000 1000
8.5.2、“按位或”运算(|)
“按位或”运算的运算符为(|),它的运算法则是,两个操作数的二进制表示,只有对应位都为0,结果才为0,否则为1。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。看下方4|8的运算过程。
#4|8的运算过程
0000 0000 0000 0100
| 0000 0000 0000 1000 0000 0000 0000 11008.5.3、“按位异或”运算(^)
“按位异或”运算的运算符为(^),它的运算法则是,两个操作数的二进制表示相同(同时为0或同时为1),结果才为0,否则为1。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。看下方4|8的运算过程。看下方31^22的运算过程。
#31^22的运算过程
0000 0000 0001 1111
^ 0000 0000 0001 0110
0000 0000 0000 10018.5.4、“按位取反”运算(~)
“按位取反”运算也称“按位非”运算,运算符为“~”。“按位取反”运算就是将操作位数对应二进制中的1改为0,0改为1,如下所示:
#~123的运算过程
~ 0000 0000 0111 1011
1111 1111 1000 0100
在Python中,使用函数print()函数输出8.5.1~8.5.4的运算结果,代码如下:
print("12&8 = "+str(12&8)) #按位与计算整数的结果
print("4|8 = "+str(4|8)) #按位或计算整数的结果
print("31^22 = "+str(31^22)) #按位异或计算整数的结果
print("~123 = "+str(~123)) #按位取反计算整数的结果
运算结果如下:
12&8 = 8
4|8 = 12
31^22 = 9
~123 = -124
>>>
8.5.5、“左移位”运算(<<)
“左移位”运算的运算符为“<<”,它的运算法则是将第一个二进制操作数向左移动指定的位数,左边(高位端)溢出的被丢弃,右边(低位端)的空位用0补充。左移位运算相对于乘以2的N次方。
列:int类型的数据48对应的二进制数位00110000,将左移一位,根据左移位运算符的运算规则得出(00110000<<1)=01100000,所以转换为十进制数就是96(48*2);将其左移2位,根据左移位运算符的运算规则可以得出(00110000<<2)=11000000,所以转换为十进制数就是192,(48*2的2次方),执行过程如下:
#左移位运算过程
十进制:48 00110000(左移1位)
十进制:96 (0被丢弃)01100000(左移后补0)(左移2位)
十进制:192 (0被丢弃)11000000(左移后补0) 8.5.6、“右移位”运算(>>)
“右移位”运算的运算符为“>>”,它的运算法则是将第一个二进制操作数向右移动指定的位数,右边(低位端)溢出的位被丢弃,而当填充左边(高位端)的空位是,如果高位端是0(正数),则左侧空位填入0;如果最高位是1(负数),则左侧空位填入1。右移位运算相对于除以2的N次方。
正数的右移运算过程:
#正数48右移1位的运算过程
十进制:48 00110000
右移1位
十进制:24 00011000
左侧右移后补0 右侧0被舍弃 负数的右移位的运算过程:
#负数-80的右移2位的运算过程:
十进制:-80 10110000
右移2位
十进制:-20 11101100
左侧右移后补1 右侧0倍舍弃 站长在线微信提示:由于位移运算的速度很快,因此当程序中遇到表达式乘以或者除以2的N次方的情况下,一般采用位移运算来代替。
例如:使用位移运算符对密码进行加密解密。
在IDLE中创建一个名为jiamijiemi.py的文件,然后再该文件中定义两个变量:一个用于保存密码,另一个用于保存加密参数。然后应用左移位运算符实现加密,并输出结果,最后应用右移位运算符实现解密,输出结果代码如下:
passWord = 87654321 # 密码
key = 7 # 加密参数
print("\n原密码:",password) # 输出原密码
password = password << key # 将原密码左移,生成新的数字
print("\n加密后:",password) # 输出加密后的密码
password = password >> key # 将新密码右移,还原密码
print("\n解密后:",password) # 输出解密后的密码
运行结果:
原密码: 87654321
加密后: 11219753088
解密后: 87654321
>>>
以上就是对密码进行加密和解密的结果。
下节预告:零基础Python完全自学教程9:Python中运算符的优先级和条件表达式
本课内容比较多,且无课后习题。
上期答案:7.1、ABCD 7.2、BCD
相关推荐
- 最纯净的pe装机工具(pe工具哪个纯净)
-
U盘装系统步骤:1.制作U盘启动盘。这里推荐大白菜U盘启动盘制作工具,在网上一搜便是。2.U盘启动盘做好了,我们还需要一个GHOST文件,可以从网上下载一个ghost版的XP/WIN7/WIN8系统,...
- 装一个erp系统多少钱(wms仓库管理软件)
-
现在主流有客户端ERP和云端ERP两种客户端通常一次买断,价格在万元左右,但是还有隐性费用,你需要支付服务器、数据管理员,此外如果系统需要更新维护,你还需要支付另外一笔不菲的费用。云端ERP:优势...
- cad2014序列号和密钥永久(autocad2014序列号和密钥)
-
1在cad2014中修改标注样式后,需要将其保存2单击“样式管理器”按钮,在弹出的窗口中选择修改后的标注样式,然后单击“设置为当前”按钮,再单击“保存当前样式”按钮,将其保存为新的样式名称3为了...
- qq修改密保手机号(qq修改密保手机号是什么意思)
-
QQ更改绑定的手机号码操作步骤如下:1、打开手机主界面,找到“QQ”软件点击打开。2、输入正确的QQ账户和密码登录到qq主界面。3、点击左上角的头像“图片”,进入到个人中心界面。4、进入到个人中心界面...
- dell笔记本客服电话(dell笔记本客服电话人工服务)
-
戴尔中国的官方网站http://www.dell.com/zh-cn。通过这个网站购买的都没有问题;有问题也可以进入官网联系售后客服,也可以拔打dell电脑说明书上的售后热线,都可以为你解决的。还是建...
- 联想乐商店app官方下载(联想乐商店在哪下载)
-
您好!很遗憾!若是您的手机联想乐商店和联想游戏中心只能有流量,建议您核实是否乐安全有限制wifi上网,核实您所使用的wifi是否本身有限制。若还是无效,可清除缓存数据;备份资料恢复出厂设置尝试。欢迎您...
- 不用拉网线的路由器是真的吗
-
是真的不插卡不拉线有线就有网,这11个字其实就涵盖了无线路由器的特点,无线路由器免插卡、不用拉网线,完全摆脱了之前家用路由器和网线捆绑的模式,有电就有网,其实说的就是无线路由器的使用操作简单,通电就可...
- u盘检测软件下载(u盘测试软件)
-
1、u盘芯片检测工具(ChipEasy)可以查看USB设备PID、VID、SN、制造商、产品名等;2、查看USB设备主控芯片信息、闪存芯片信息、固件信息、电流控制3、SSD型号...
- 电脑现在什么系统最好(电脑现在用什么系统好)
-
WINXP好用,但过时了。VISTA不好用,没推开就夭折了。WIN8/8.1是针对触模屏设计的,如果你用的不是触摸屏平板电脑是普通电脑,使WIN8/8.1总觉着很蹩扭。新出的WIN10,功能...
- 账号怎么注册(steam账号怎么注册)
-
如果注册是qq账号【qq号码的申请办法】【1】双击qq登陆界面,在qq帐号填写空格的后面你可以看见:[申请帐号];【2】点击[申请帐号]进入,就可以在网上免费申请号码了;【3】进入www.qq.com...
- tmp文件是什么意思(tmp文件有什么用)
-
在系统C:\Windows\Temp文件夹中,我们经常会发现一些后缀名为TMP的文件,在该文件夹中的这些文件其实都是临时文件。它们可能是系统被误关机,或者其他程序没有删除而生的。而且在该文件夹中还有其...
- 怎么给u盘格式化(怎么给u盘格式化成FAT32)
-
u盘插入电脑,等待桌面弹出u盘图标。打开“计算机”。左键选中u盘,单击右键,在弹出的菜单中,点击“格式化”。点击“开始”,点击“确定”即可。格式化u盘详细步骤1、找到U盘盘符,鼠标右键点击,弹出菜单中...
- harmonyos主题下载(harmonyos主题怎么换)
-
首先,打开荣耀手机的应用市场,在搜索框中输入“华为鸿蒙主题”,然后点击搜索。找到“华为鸿蒙主题”应用后,点击下载即可。下载完成后,打开“华为鸿蒙主题”应用,选择心仪的主题,点击下载并应用即可享受华为鸿...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
慕ke 前端工程师2024「完整」
-
失业程序员复习python笔记——条件与循环
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
