【Python从入门到进阶】7、运算符

news2024/10/1 21:41:13

接上篇《6、变量规范及类型转换》
上一篇我们学习了Python变量的命名规范以及类型转换。本篇我们来学习Python的运算符部分,包括算数运算符、赋值运算符、比较运算符、逻辑运算符等。

一、运算符含义

运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。在Python中运算符大致可以分为5种类型:算数运算符、赋值运算符、复合赋值运算符、比较运算符、逻辑运算符。

二、算数运算符

下面以a=10,b=20为例进行计算

注意:混合运算时,优先级顺序为:**高于* / % //高于+ -,为了避免歧义,建议使用()来处理运算符优先级。
并且,不同类型的数字在进行混合运算时,整数将会转换成浮点数进行运算。如:
10+5.5*2=21.0
(10+5.5)*2=31.0
测试实例代码:

a=3
b=2

print("a+b=",a + b)
print("a-b=",a - b)
print("a*b=",a * b)
print("a/b=",a / b)
# 取整
print("a//b=",a // b)
# 取余
print("a%b=",a % b)
# 指数 幂
print("a**b=",a ** b)
# 加括号提高运算符优先级
print("(5+1)*2=",(5+1)*2)

结果:

拓展:字符串也可以通过算数运算符计算。
●如果是两个字符串做加法运算,会直接把两个字符串拼接成一个字符串
 

# 字符串使用运算符
# (1)字符串的加法,效果是将两个字符串拼接
a='123'
b='456'
print("字符串 a+b=",a + b)

效果:

字符串 a+b= 123456

●如果数字和字符串做加法运算,会直接报错

# 在Python中,+号两端都是字符串才可以进行加法运算
a='123'
b=456
print("字符串 a+str(b)=",a + str(b)) 
#如果不强行转换b为字符串,会报错
print("字符串 a+b=",a + b)

效果:

●如果数字和字符串做乘法运算,会将这个字符串重复多次
 

#(2)字符串的乘法,是将字符串重复多少次
a='你爱我 我爱你 蜜雪冰城甜蜜蜜 \n'
print("字符串 a*3=",a*3)

效果:

字符串 a*3= 你爱我 我爱你 蜜雪冰城甜蜜蜜 
你爱我 我爱你 蜜雪冰城甜蜜蜜 
你爱我 我爱你 蜜雪冰城甜蜜蜜

三、赋值运算符


赋值运算符测试代码:

# 单个变量赋值
num = 10
print("num=",num)

# 同时为多个变量赋值(使用等号连接)
a=b=4
print("a=",a)
print("b=",b)

# 多个变量赋值(使用逗号分割)
num1,f1,str1=100,3.14,"hello"
print("num1=",num1)
print("f1=",f1)
print("str1=",str1)

效果:

四、复合赋值运算符


复合赋值运算符测试代码:

# 示例:+=
a = 100
a +=1
print("a +=1 ",a)
# 示例:-=
a = 100
a -=1
print("a -=1 ",a)
# 示例:*=
a = 100
a *=2
print("a *=2 ",a)
# 示例:/=
a = 100
a /=2
print("a /=2 ",a)
# 示例://=
a = 100
a //=3
print("a //=3 ",a)
# 示例:%=
a = 100
a %=3
print("a %=3 ",a)
# 示例:**=
a = 100
a **=3
print("a **=3 ",a)

效果:

五、比较运算符


比较运算符测试代码:

# == 恒等 判断==两边的变量是否一致
a=10
b=20
c=10
print('a==b 结果 ',a==b)
print('a==c 结果 ',a==c)
# != 不等 判断!=两边的变量是否不一致
print('a!=b 结果 ',a!=b)
# 拓展:<> 不等 Python2版本使用,Python3遗弃
# print('a<>b 结果 ',a<>b)
# > 大于
print('a>b 结果 ',a>b)
# >= 大于等于
print('a>=c 结果 ',a>=c)
# < 小于
print('a<b 结果 ',a<b)
# <= 小于等于
print('a<=c 结果 ',a<=c)

效果:

六、逻辑运算符

1、逻辑运算符基础

逻辑运算符测试代码:

# and 与
# and两边的数据,必须全部是true的时候,才会返回true
# 只要有一端返回的是false,那么就返回false
print('10>20 and 10>11 结果:',10>20 and 10>11)
# and 一端是true,一端是false,返回的是false
print('10>5 and 10>11 结果:',10>5 and 10>11)
# and 一端是false,一端是true,返回的是false
print('10>11 and 10>5 结果:',10>11 and 10>5)
# and 两端返回的都是true,则返回结果为true
print('10>5 and 10>6 结果:',10>5 and 10>6)

print('----------------------')

# or 或者
# or的两端只要有一端是true,那么结果就是true
# or的两端都是false,则返回的是false
print('10>20 or 10>21 结果:',10>20 or 10>21)
# or的两端前面的是true,后面的是false,返回的是true
print('10>5 or 10>21 结果:',10>5 or 10>21)
# or的两端前面的是false,后面的是true,返回的是true
print('10>20 or 10>5 结果:',10>20 or 10>5)
# or的两端前面的是false,后面的是true,返回的是true
print('10>6 or 10>5 结果:',10>6 or 10>5)

print('----------------------')

# not 非 取反
print('not True 结果:',not True)
print('not False 结果:',not False)
print('not (10>20)) 结果:',not (10>20))

效果:

2、逻辑运算符性能优化

and、or对于运算符前后是有判断逻辑的,and前如果是false,就不再执行and后语句。or前如果是true,就不再执行or后语句。也就是逻辑运算符会存在“短路”的逻辑。
测试代码:

a = 36
# and的性能优化:当and前面的结果是false的情况下,and后面的代码不再执行
a < 10 and print('hello world 1') #此处不会打印 hello world 1
a > 10 and print('hello world 2') #此处会打印 hello world 2

# or的性能优化:
b = 38
# or的性能优化:当or前面的结果是true的情况下,or后面的代码不再执行
b > 39 or print('hello world 3') #此处会打印 hello world 3
b < 39 or print('hello world 4') #此处不会打印 hello world 4

效果:

至此,Python运算符的所有内容已经讲解完毕,下一篇我们来学习Python的输入和输出。


参考:尚硅谷Python爬虫教程小白零基础速通教学视频

转载请注明出处:https://blog.csdn.net/acmman/article/details/129042969

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/348227.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网友眼中越老越吃香的行业,果然是风向变了!

越老越吃香的行业&#xff0c;一直都是被热议的话题。对于年轻人来说&#xff0c;找到一个适合自己的并且具有前景的工作&#xff0c;不是一件容易的事情。 最近&#xff0c;看到有人在平台上问相关的问题&#xff0c;本着认真看一看的态度点进去&#xff0c;却差点被热评第一…

MyBatis详解1——相关配置

一、什么是MyBatis 1.定义&#xff1a;是一个优秀的持久层框架&#xff08;ORM框架&#xff09;&#xff0c;它支持自定义 SQL、存储过程以及高级映射。MyBatis是一个用来更加简单的操作和读取数据库的工具。 2.支持的操作方式&#xff1a;xml或者注解实现操作&#xff08;xm…

Hadoop集群配置

一、系统文件配置集群部署规划NameNode和SecondaryNameNode不要安装在同一台服务器ResourceManager也很消耗内存&#xff0c;不要和NameNode、SecondaryNameNode放在同一台机器上。这里装了四台机器&#xff0c;ant151,ant152,ant153,ant154。ant151ant152ant153ant154NameNode…

【JUC并发编程】18 CopyOnWriteArrayList源码也就够看2分钟

文章目录1、CopyOnWriteArrayList概述2、原理 / 源码1&#xff09;构造函数2、add()3&#xff09;get()4&#xff09;remove()5&#xff09;iterator()1、CopyOnWriteArrayList概述 CopyOnWriteArrayList相当于线程安全的ArrayList&#xff0c;底层是一个可变数组。 特点如下…

如何在外网访问内网的 Nginx 服务?

计算机业内人士对Nginx 并不陌生&#xff0c;它是一款轻量级的 Web 服务器/反向代理服务器及电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器&#xff0c;除了nginx外&#xff0c;类似的apache、tomcat、IIS这几种都是主流的中间件。 Nginx 是在 BSD-like 协议下发行的&…

PythonWeb Django PostgreSQL创建Web项目(一)

环境搭建与初始化 一、 python3下载安装测试 1. 下载地址 官网地址&#xff1a;https://www.python.org/ 国内速度比较慢 国内镜像网站地址&#xff1a;https://registry.npmmirror.com/binary.html?pathpython/ 推荐地址速度快 目前官网最新版本3.11.2如下官网截图 要用嘛…

物联网通信复习简记——助力通关期末考试

物联网通信复习简记——助力通关期末考试 文章目录物联网通信复习简记——助力通关期末考试1. 概述1.1 物联网通信体系架构的基本概念1.2 网络分层模型1.3 常见IoT通信技术2. 物理层2.1 编码/基带信号波形/数字基带调制2.2 信道编码-1- 奇偶校验码-2- 汉明码-3- 循环码差错检验…

人员定位需求多,场景目标各不同

GPS技术为现代人带来了许多便利&#xff0c;也提供了诸多基于位置的新型服务。随着科技的发展&#xff0c;人员位置信息在如今的生产生活中也越发重要起来。因此&#xff0c;不同行业领域开始关注人员定位&#xff0c;尤其关注室内人员定位。室内人员定位需求从目的性出发&…

Venom靶机

环境准备 靶机链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;fv06 虚拟机网络链接模式&#xff1a;桥接模式 攻击机系统&#xff1a;kali linux 2022.03 信息收集 1.探测目标靶机开放端口和服务情况 nmap -p- -sV -A 10.10.10.133 2.查看网页最下面&#xf…

GaiaX开源解读 | 表达式作为逻辑动态化的基础,我们是如何设计的

GaiaX跨端模板引擎&#xff0c;是在阿里优酷、淘票票、大麦内广泛使用的Native动态化方案&#xff0c;其核心优势是性能、稳定和易用。本系列文章《GaiaX开源解读》&#xff0c;带大家看看过去三年GaiaX的发展过程。 前言 GaiaX【https://github.com/alibaba/GaiaX】是由优酷应…

详解ArrayList

目录 1.数据结构 2.初始化 2.1.默认构造 2.2.带参构造 3.扩容 3.1.判断需要多少容量 3.2.判断是否需要扩容 3.3.扩容 4.遍历 5.拷贝 6.序列化 JDK版本&#xff1a;JDK8 1.数据结构 底层使用Object类型的数组实现&#xff0c;线程不安全&#xff0c;添加元素时如果内存…

【遇见青山】基于Redis的Feed流实现案例

【遇见青山】基于Redis的Feed流实现案例1.关注推送2.具体代码实现1.关注推送 关注推送也叫做Feed流&#xff0c;直译为投喂。为用户持续的提供"沉浸式”的体验&#xff0c;通过无限下拉刷新获取新的信息。 Feed流产品有两种常见模式&#xff1a; 这里我们实现基本的TimeL…

Python 爬虫工程师面试经验分享,金三银四

&#x1f643; 作为一个 Python 爬虫工程师&#xff0c;我可以分享一些我在面试中的经验和建议。 首先一点是在面试中要表现自信、友好、乐于合作&#xff0c;同时对公司的业务和文化也要有一定的了解和兴趣&#xff0c;这些也是公司在招聘中看重的因素。 文章目录&#x1f55b…

第06章_MySQL多表查询

第06章_多表查询 讲师&#xff1a;尚硅谷-宋红康&#xff08;江湖人称&#xff1a;康师傅&#xff09; 官网&#xff1a;http://www.atguigu.com 多表查询&#xff0c;也称为关联查询&#xff0c;指两个或更多个表一起完成查询操作。 前提条件&#xff1a;这些一起查询的表之…

node.js基于Vue的英语在线学习网站 vscode+mysql

该系统的基本功能包括管理员、学生、教师三个角色功能模块。 对于管理员可以使用的功能模块主要有首页、个人中心&#xff0c;学生管理、教师管理、班级管理、课程管理&#xff0c;在线学习管理、作业管理、试卷管理、试题管理、 在线论坛、系统管理、考试管理等功能。 对于学生…

STM32F765ZIT6中文规格STM32F765ZGT6引脚图 微控制器MCU

说明STM32F7 32 位 MCUFPU 基于高性能的 ARMCortex-M7 32 位 RISC 内核&#xff0c;工作频率高达 216MHz。Cortex-M7 内核具有单浮点单元(SFPU)精度&#xff0c;支持所有 ARM 单精度数据处理指令与数据类型。同时执行全套 DSP 指令和存储保护单元&#xff08;MPU&#xff09;&a…

各CCF期刊点评网站/学术论坛的信息汇总及个人评价

CCF中文期刊投稿选择之篇章一:各CCF期刊点评网站/学术论坛的信息汇总及个人评价中文科技期刊A类&#xff08;EI检索&#xff09;中文期刊投稿点评网站整理1.小木虫学术论坛2. Letpub3. Justscience4. 发表记5. 会伴&#xff08;Conference Partner)6. ijouranl7. 掌桥科研这是以…

Win11的两个实用技巧系列之如何关闭登录密码?

Win11如何关闭登录密码?Win11关闭登录密码的两种解决方法win11是电脑更新后的全新系统&#xff0c;每次开启需要输入密码。有的用户嫌麻烦想要关闭&#xff0c;下面小编就为大家带来了关闭的方法&#xff0c;一起来看看吧有不少用户在升级或者第一次使用Win11系统的时候&#…

uni-app做微信小程序的分包处理

我们的都知道微信小程序有随即随用&#xff0c;用完即走的优点&#xff0c;并且它开发门槛低&#xff0c;但是它也有一个致命的缺点&#xff0c;就是代码包体积的限制&#xff0c;这一缺点让小程序的开发有了一定的限制&#xff0c;现在有一方法可以减少代码包的体积&#xff0…

界面组件Telerik ThemeBuilder R1 2023开创应用主题研发新方式!

Telerik DevCraft包含一个完整的产品栈来构建您下一个Web、移动和桌面应用程序。它使用HTML和每个.NET平台的UI库&#xff0c;加快开发速度。Telerik DevCraft提供最完整的工具箱&#xff0c;用于构建现代和面向未来的业务应用程序&#xff0c;目前提供UI for ASP.NET包含一个完…