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…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...

2.3 物理层设备
在这个视频中,我们要学习工作在物理层的两种网络设备,分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间,需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质,假设A节点要给…...
深度解析云存储:概念、架构与应用实践
在数据爆炸式增长的时代,传统本地存储因容量限制、管理复杂等问题,已难以满足企业和个人的需求。云存储凭借灵活扩展、便捷访问等特性,成为数据存储领域的主流解决方案。从个人照片备份到企业核心数据管理,云存储正重塑数据存储与…...

CSS 工具对比:UnoCSS vs Tailwind CSS,谁是你的菜?
在现代前端开发中,Utility-First (功能优先) CSS 框架已经成为主流。其中,Tailwind CSS 无疑是市场的领导者和标杆。然而,一个名为 UnoCSS 的新星正以其惊人的性能和极致的灵活性迅速崛起。 这篇文章将深入探讨这两款工具的核心理念、技术差…...

未授权访问事件频发,我们应当如何应对?
在当下,数据已成为企业和组织的核心资产,是推动业务发展、决策制定以及创新的关键驱动力。然而,未授权访问这一隐匿的安全威胁,正如同高悬的达摩克利斯之剑,时刻威胁着数据的安全,一旦触发,便可…...