Python 的运算符和语句(条件、循环、异常)基本使用指南
运算符的分类
- 算数运算符
- 赋值运算符
- 复合赋值运算符
- 比较运算符
- 逻辑运算符
算数运算符
| 运算符 | 描述 | 实例 |
|---|---|---|
| + | 加 | 1 + 1 输出结果为 2 |
| - | 减 | 1 - 1 输出结果为 0 |
| * | 乘 | 2 * 2 输出结果为 4 |
| / | 除 | 10 / 2 输出结果为 5 |
| // | 整除 | 9 // 4 输出结果为 2 |
| % | 取余 | 9 % 4 输出结果为 1 |
| ** | 指数 | 2 ** 4 输出结果为 16,2 * 2 * 2 * 2 |
| () | 小括号 | 小括号用来提高运算优先级,即 (1 + 2) * 3 输出结果为 9 |
注:
-
混合运算优先级顺序: () ⾼于 ** ⾼于 * / // % ⾼于 + -
-
由于算术运算符是 双目运算符 ,即有两个操作数参加运算,当参加运算的两个操作数的类型不一致时,首先转换成同一类型,然后进行运算,否则会提示错误。
转换的基本规则是:
- 如果参加算术运算的两个操作数中有一个是 复数 ,则把另一个也转换为复数;
- 如果两个操作数中有一个是 浮点数 ,则把另一个也换成浮点数;
- 如果两个操作数中有一个是 长整数 ,则把另一个也转换成长整数。
转换时不同类型之间的转换必须遵守一定转换方向,例如不可以把一个浮点数转换为一个整数,也不能把一个复数转换为其它数值类型。
赋值运算符
-
单个变量赋值(简单赋值)
num = 1 print ( num ) -
多个变量赋值(序列赋值)
在序列赋值语句中,等号左侧是元组或列表表示的多个变量,等号右侧是元组、列表或字符串等序列表示的数据。Python 按先后顺序依次将数据赋值给变量。
num1, float1, str1 = 10, 0.5, 'hello world' print(num1) print(float1) print(str1)注:
-
等号右侧为字符串时,Python 会将字符串分解为单个字符,依次赋值给各个变量,此时,变量个数和字符个数必须相等,否则会出错;
a, b, c, d, f = 'hello' print(a) print(b) print(c) print(d) print(f) -
序列赋值时,可以在变量名之前使用 *,不带星号的变量仅匹配一个值,剩余的值作为列表赋值给带星号的变量。
a, b, *c = 'hello' print(a) print(b) print(c)
-
-
多变量赋相同值(多目标赋值)
a = b = 10 print(a) print(b)
复合赋值运算符
| 运算符 | 描述 | 实例 |
|---|---|---|
| += | 加法赋值运算符 | c += a 等价于 c == c + a |
| -= | 减法赋值运算符 | c -= a 等价于 c == c - a |
| *= | 乘法赋值运算符 | c *= a 等价于 c == c * a |
| /= | 除法赋值运算符 | c /= a 等价于 c == c / a |
| //= | 整除法赋值运算符 | c //= a 等价于 c == c // a |
| %= | 取余法赋值运算符 | c % = a 等价于 c == c % a |
| **= | 幂赋值运算符 | c **= a 等价于 c = c ** a |
比较运算符
| 运算符 | 描述 |
|---|---|
| == | 判断相等。如果两个操作数的结果相等,则条件结果为真(True),否则为假(False) |
| != | 不等于。如果两个操作数的结果不相等,则条件结果为真(True),否则为假(False) |
| > | 运算符左侧操作数结果是否大于右侧操作数结果,如果大于,则条件为真,否则为假 |
| < | 运算符左侧操作数结果是否小于右侧操作数结果,如果小于,则条件为真,否则为假 |
>= | 运算符左侧操作数结果是否大于等于右侧操作数结果,如果大于等于,则条件为真,否则为假 |
| <= | 运算符左侧操作数结果是否小于等于右侧操作数结果,如果小于等于,则条件为真,否则为假 |
逻辑运算符
| 运算符 | 逻辑表达式 | 描述 | 实例 |
|---|---|---|---|
| and | x and y | 布尔"与":x 和 y 均为 True,则 x and y 为 True,否则为 False | True and False,返回 False |
| or | x or y | 布尔"或":x 和 y 均为 False,则 x and y 为 False,否则为 True | True or False,返回 True |
| not | not x | 布尔"非":如果 x 为 True,返回 False。如果 x 为 False,返回 True | not True,返回 False |
三元运算符
在 Python 中,三元运算符(也称为条件运算符)是一种简洁的方式来编写条件表达式
-
语法结构如下:
value_if_true if condition else value_if_false# 示例 x = 10 y = 20 max_value = x if x > y else y # 输出:20
条件语句(if-elif-else)
-
if 语句
if 条件:条件成⽴执⾏的代码1条件成⽴执⾏的代码2...... -
if…else…
if 条件:条件成⽴执⾏的代码...... else:条件不成⽴执⾏的代码...... -
多重判断
if 条件1:条件1成⽴执⾏的代码...... elif 条件2:条件2成⽴执⾏的代码...... ...... else:以上条件都不成⽴执⾏执⾏的代码 -
if 嵌套
if 条件1:条件1成⽴执⾏的代码......if 条件2:条件2成⽴执⾏的代码......
循环语句(for、while)
-
for 循环
for 循环是 Python 中最常用的循环语句之一,可以遍历任何序列,如一个列表或者一个字符串。
基本语法为:
for variable in sequence:# 循环体 [else]# 循环体- variable :表示变量名
- sequence :表示要遍历的序列
示例:
# 遍历列表或元组 for number in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:print(number**2)# 遍历字符串 for char in "hello world":print(char.upper())# 遍历字典 d = {'apple': 2, 'banana': 3, 'orange': 4} for key, value in d.items():print(key, value)# 遍历文件内容 with open('file.txt', 'r') as f: for line in f:print(line.strip()) -
while 循环
基本语法:
while 条件:# 循环体 [else]# 循环体示例:
fruits = ['apple', 'banana', 'orange', 'grape'] i = 0 while i < len(fruits):print(fruits[i])i += 1 -
break 语句可以跳出 for 和 while 的循环体,如果从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
-
continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
-
pass 语句是空语句,是为了保持程序结构的完整性,pass 不做任何事情,一般用做占位语句
异常的捕获和处理(try-except-finally)
-
try 语句和 except 语句:用于捕获和处理异常
- try 语句:包含可能会引发异常的代码块。如果在
try代码块中发生异常,程序将立即跳转到except代码块,以执行异常处理操作。 - except 语句:在
except语句中,异常对象被赋值给变量e,可以使用它来获取有关异常的信息。 - else 语句:可以使用
else语句来指定当没有异常发生时要执行的代码块
- try 语句:包含可能会引发异常的代码块。如果在
-
finally 语句:指定无论是否发生异常都必须执行的代码块
-
自定义异常:可以创建自定义异常类,以便根据应用程序需求引发和捕获异常。
-
代码示例:
# 自定义异常类 class MyCustomError(Exception):passtry: # 可能会引发异常的代码块if some_condition:raise MyCustomError("This is a custom error") # 抛出自定义异常result = 10 / 0 # 除以零会引发一个异常 except MyCustomError as e: # 处理自定义异常print(f"Custom error occurred: {e}") except ZeroDivisionError as e:print(f"Division by zero error: {e}") except Exception as e:print(f"An error occurred: {e}") else: # 当没有异常发生时要执行的代码块print(f"Result is {result}") finally: # 无论是否发生异常都必须执行的代码块print("This code always runs")
相关文章:
Python 的运算符和语句(条件、循环、异常)基本使用指南
运算符的分类 算数运算符赋值运算符复合赋值运算符比较运算符逻辑运算符 算数运算符 运算符描述实例加1 1 输出结果为 2-减1 - 1 输出结果为 0*乘2 * 2 输出结果为 4/除10 / 2 输出结果为 5//整除9 // 4 输出结果为 2%取余9 % 4 输出结果为 1**指数2 ** 4 输出结果为 16&…...
文心一言 VS 讯飞星火 VS chatgpt (94)-- 算法导论9.2 3题
三、用go语言,给出 RANDOMIZED-SELECT的一个基于循环的版本。 文心一言: 在循环中实现 RANDOMIZED-SELECT 的一个版本可以如下所示。这个版本使用 Go 语言编写,利用随机化来选择一个元素,并在循环中不断地调整选择的元素&#x…...
React中组件通信01——props
React中组件通信01——props 1. 父传子——props1.1 简单例子——props1.2 props 可以传递任何数据1.2.1 传递数字、对象等1.2.2 传递函数1.2.3 传递模版jsx 2. 子传父 子传子——props2.1 父传子——传递函数2.2 子传父——通过父传子的函数实现2.3 优化 子传子(…...
接口测试——接口协议抓包分析与mock_L1
目录: 接口测试价值与体系常见的接口协议接口测试用例设计postman基础使用postman实战练习 1.接口测试价值与体系 接口测试概念 接口:不同的系统之间相互连接的部分,是一个传递数据的通道接口测试:检查数据的交换、传递和控制…...
四种常用的自动化测试框架
一直想仔细研究框架,写个流水账似的测试程序不难,写个低维护成本的测试框架就很难了,所以研究多种测试框架还是很有必要的,知道孰优孰劣,才能在开始编写框架的时候打好基础,今天读到了KiKi Zhao的翻译文章&…...
Fuxploider:一款针对文件上传漏洞的安全检测与研究工具
Fuxploider:一款针对文件上传漏洞的安全检测与研究工具 1.概述2. 工具使用1.概述 Fuxploider是一款功能强大的开源渗透测试工具,该工具专门针对文件上传漏洞而设计,可以帮助广大研究人员以自动化的方式检测和利用目标站点文件上传表单中的安全问题 由于该工具基于Python 3…...
Unity 安装及运行MLAgents
1、下载ML-Agents 下载地址 GitHub - Unity-Technologies/ml-agents: The Unity Machine Learning Agents Toolkit (ML-Agents) is an open-source project that enables games and simulations to serve as environments for training intelligent agents using deep reinfo…...
LightDB-A 兼容oracle支持mod操作符
LightDB-A 兼容oracle支持mod操作符 LightDB-A 为了兼容oracle,从23.3版本开始支持mod操作符,其语义同 ‘%’ 操作符,使用案例如下: select 5 mod 2;?column? ----------1 (1 row)select 0 % 0; ERROR: division by zerosel…...
SpringMVC之自定义注解
目录 一、Java注解 1.1 注解简介 1.2 注解分类 1.3 JDK基本注解 1.4 JDK元注解 1.5 自定义注解 1.5.1 标记注解 1.5.2 元数据注解 1.6 如何自定义注解 二、自定义注解的基本案例 2.1 案例一(获取类、方法以及属性上的注解) 2.1.1 Ingerited的…...
QT:使用普通按钮、网格布局管理器、标签、行编辑器、水平布局管理器、垂直布局管理器做一个小项目
widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPushButton> //普通按钮 #include <QGridLayout> //网格布局管理器 #include <QLabel> //标签 #include <QLineEdit> //行编辑器 #include <QHBoxLayo…...
【小沐学写作】程序员必备技能:在线协作文档汇总
文章目录 1、简介2、微软Office在线文档2.1 功能简介2.2 使用费用2.3 用户体验 3、石墨文档3.1 功能简介3.2 使用费用 4、腾讯文档4.1 功能简介4.2 使用费用 5、语雀5.1 功能简介5.2 使用费用 6、飞书6.1 功能简介6.2 使用费用 7、印象笔记7.1 功能简介7.2 使用费用 结语 1、简…...
「工具|数据接口」免费公开的REST API 如何借助github搭建自己的fake API接口
本文主要介绍日常开发、测试、教学或者分享中,可能遇到的模拟数据问题。分享免费开发的测试数据接口,以及如何利用github快速搭建定制化的接口数据,避免使用真实数据的风险以及自己现编数据的麻烦。 文章目录 一、场景说明二、免费公开的Fak…...
leetcode 18. 四数之和
给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复): 0 < a,…...
树上背包问题动态规划
目录 树状动态规划概述 示例 求解思路 树状动态规划概述 树状动态规划(Tree DP)是一种在树结构上进行动态规划的方法。在树状DP中,我们利用树的特殊结构性质,通过递归地向下更新子节点的状态,最终得到整个树的最…...
linux查看进程对应的线程(数)
首先,top或ps查看进程列表,确定要查看的进程pid,如下面40698 查看进程的线程情况 查看进程:top -p 40698 查看线程:top -p 40698 -d 3 -H 其中-d是刷新频率 可看到此进程共211个线程,运行中的是211个。…...
Python中的桌面应用开发库有哪些?
Python中有几个受欢迎的桌面应用开发库。以下是其中一些: Tkinter:这是Python的标准GUI库,它提供了构建简单的桌面应用程序的基本组件和功能。 PyQt:这是一个成熟的、功能强大的跨平台图形用户界面框架,它是Python绑定…...
【大数据】Neo4j 图数据库使用详解
目录 一、图数据库介绍 1.1 什么是图数据库 1.2 为什么需要图数据库 1.3 图数据库应用领域 二、图数据库Neo4j简介 2.1 Neo4j特性 2.2 Neo4j优点 三、Neo4j数据模型 3.1 图论基础 3.2 属性图模型 3.3 Neo4j的构建元素 3.3.1 节点 3.3.2 属性 3.3.3 关系 3.3.4 标…...
Windows11系统C盘用户文件夹下用户文件夹为中文,解决方案
说明: 1. 博主电脑为Windows11操作系统,亲测有效,修改后无任何影响,软件都可以正常运行! 2. Windows10系统还不知道可不可行,因为Windows11的计算机管理中没有本地用户和组,博主在csdn上看到很…...
Python正则表达式(re)
正则表达式,又称规则表达式,(Regular Expression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为…...
【PyTorch 08】如果要手动安装对应的包
例如有时候我们要下载 PyG ,但是需要手动下载,需要进行以下步骤: 网站链接:https://data.pyg.org/whl/ 首先查看当前安装好的Pytorch版本和对应的cuda版本 1. pip list:查看torch版本 2. torch.version.cuda…...
如何反查竞品最近30天内新增的差评关键词,并优化Listing卖点?
很多亚马逊卖家做竞品分析,只盯价格、BSR、广告位、关键词排名,却很少认真看竞品最近30天新增的差评。其实,最新差评往往比老差评更有价值。老差评更多反映历史问题,可能来自旧批次、旧包装、旧版本;但最近30天新增差评…...
CodeGPT:基于AI的Git提交信息自动生成工具实战指南
1. 项目概述:CodeGPT,一个用Go写的AI驱动Git工具 如果你和我一样,每天都要在终端里敲无数次 git commit -m "..." ,并且为写一个清晰、规范的提交信息而绞尽脑汁,那今天分享的这个工具绝对能让你眼前一亮…...
专业术语统计报告_园区综合能源系统多时间尺度协同优化运行方法研究
专业术语统计报告_园区综合能源系统多时间尺度协同优化运行方法研究 一、概要简析 【概要分析】 本文档《园区综合能源系统多时间尺度协同优化运行方法研究》超用心地围绕研究主题展开了系统性探讨哦😜!文档总字符数足足有158527,其中中文字符53671个,英文字词12011个,…...
免费开源运动分析神器:Kinovea 完全指南
免费开源运动分析神器:Kinovea 完全指南 【免费下载链接】Kinovea Video solution for sport analysis. Capture, inspect, compare, annotate and measure technical performances. 项目地址: https://gitcode.com/gh_mirrors/ki/Kinovea Kinovea 是一款功…...
3步解锁Cursor AI编程助手完整功能:多账户管理与设备重置终极方案
3步解锁Cursor AI编程助手完整功能:多账户管理与设备重置终极方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reach…...
快速学C语言——第19章:C语言常用开发库
第19章:C语言常用开发库 C语言的标准库提供了丰富的函数来帮助开发者完成各种常见任务。掌握这些标准库的使用可以大大提高编程效率。 ⚠️本章只给出日常开发中常用的函数! 19.1 标准输入输出库(stdio.h) stdio.h 是最常用的库&a…...
新手避坑指南:用Virtuoso和Calibre做DRC/LVS检查时,IO Pad和电源连接的那些坑
数字后端验证实战:Virtuoso与Calibre中的DRC/LVS避坑指南 第一次用Virtuoso和Calibre做DRC/LVS检查的新手工程师,往往会在IO Pad和电源连接上栽跟头。这些看似基础的问题,轻则导致验证失败,重则影响芯片功能。本文将结合SIMC 0.18…...
如何3步完成CAJ转PDF:caj2pdf完全指南
如何3步完成CAJ转PDF:caj2pdf完全指南 【免费下载链接】caj2pdf Convert CAJ (China Academic Journals) files to PDF. 转换中国知网 CAJ 格式文献为 PDF。佛系转换,成功与否,皆是玄学。 项目地址: https://gitcode.com/gh_mirrors/ca/caj…...
简化OpenAI API调用:轻量级封装库实践指南
1. 项目概述:一个极简的OpenAI API封装库 如果你正在开发一个需要集成AI能力的应用,比如一个聊天机器人、一个内容生成工具,或者一个代码助手,那么你大概率绕不开OpenAI的API。它的功能强大,文档也还算清晰࿰…...
SuperMap GIS集成天地图服务:从协议解析到多端应用实战
1. 天地图服务与SuperMap GIS集成基础 第一次接触天地图服务集成时,我被各种参数和协议搞得晕头转向。后来在智慧城市项目中反复实践才发现,理解这些基础概念就像学做菜要先认识调料一样重要。 天地图服务主要分为国家版和地方版两种。国家天地图采用449…...
