当前位置: 首页 > news >正文

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)
>运算符左侧操作数结果是否大于右侧操作数结果,如果大于,则条件为真,否则为假
<运算符左侧操作数结果是否小于右侧操作数结果,如果小于,则条件为真,否则为假
>=运算符左侧操作数结果是否大于等于右侧操作数结果,如果大于等于,则条件为真,否则为假
<=运算符左侧操作数结果是否小于等于右侧操作数结果,如果小于等于,则条件为真,否则为假

逻辑运算符

运算符逻辑表达式描述实例
andx and y布尔"与":x 和 y 均为 True,则 x and y 为 True,否则为 FalseTrue and False,返回 False
orx or y布尔"或":x 和 y 均为 False,则 x and y 为 False,否则为 TrueTrue or False,返回 True
notnot x布尔"非":如果 x 为 True,返回 False。如果 x 为 False,返回 Truenot 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 语句来指定当没有异常发生时要执行的代码块
  • 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语言&#xff0c;给出 RANDOMIZED-SELECT的一个基于循环的版本。 文心一言&#xff1a; 在循环中实现 RANDOMIZED-SELECT 的一个版本可以如下所示。这个版本使用 Go 语言编写&#xff0c;利用随机化来选择一个元素&#xff0c;并在循环中不断地调整选择的元素&#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 优化 子传子&#xff08;…...

接口测试——接口协议抓包分析与mock_L1

目录&#xff1a; 接口测试价值与体系常见的接口协议接口测试用例设计postman基础使用postman实战练习 1.接口测试价值与体系 接口测试概念 接口&#xff1a;不同的系统之间相互连接的部分&#xff0c;是一个传递数据的通道接口测试&#xff1a;检查数据的交换、传递和控制…...

四种常用的自动化测试框架

一直想仔细研究框架&#xff0c;写个流水账似的测试程序不难&#xff0c;写个低维护成本的测试框架就很难了&#xff0c;所以研究多种测试框架还是很有必要的&#xff0c;知道孰优孰劣&#xff0c;才能在开始编写框架的时候打好基础&#xff0c;今天读到了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&#xff0c;从23.3版本开始支持mod操作符&#xff0c;其语义同 ‘%’ 操作符&#xff0c;使用案例如下&#xff1a; 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 案例一&#xff08;获取类、方法以及属性上的注解&#xff09; 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接口

本文主要介绍日常开发、测试、教学或者分享中&#xff0c;可能遇到的模拟数据问题。分享免费开发的测试数据接口&#xff0c;以及如何利用github快速搭建定制化的接口数据&#xff0c;避免使用真实数据的风险以及自己现编数据的麻烦。 文章目录 一、场景说明二、免费公开的Fak…...

leetcode 18. 四数之和

给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若两个四元组元素一一对应&#xff0c;则认为两个四元组重复&#xff09;&#xff1a; 0 < a,…...

树上背包问题动态规划

目录 树状动态规划概述 示例 求解思路 树状动态规划概述 树状动态规划&#xff08;Tree DP&#xff09;是一种在树结构上进行动态规划的方法。在树状DP中&#xff0c;我们利用树的特殊结构性质&#xff0c;通过递归地向下更新子节点的状态&#xff0c;最终得到整个树的最…...

linux查看进程对应的线程(数)

首先&#xff0c;top或ps查看进程列表&#xff0c;确定要查看的进程pid&#xff0c;如下面40698 查看进程的线程情况 查看进程&#xff1a;top -p 40698 查看线程&#xff1a;top -p 40698 -d 3 -H 其中-d是刷新频率 可看到此进程共211个线程&#xff0c;运行中的是211个。…...

Python中的桌面应用开发库有哪些?

Python中有几个受欢迎的桌面应用开发库。以下是其中一些&#xff1a; Tkinter&#xff1a;这是Python的标准GUI库&#xff0c;它提供了构建简单的桌面应用程序的基本组件和功能。 PyQt&#xff1a;这是一个成熟的、功能强大的跨平台图形用户界面框架&#xff0c;它是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盘用户文件夹下用户文件夹为中文,解决方案

说明&#xff1a; 1. 博主电脑为Windows11操作系统&#xff0c;亲测有效&#xff0c;修改后无任何影响&#xff0c;软件都可以正常运行&#xff01; 2. Windows10系统还不知道可不可行&#xff0c;因为Windows11的计算机管理中没有本地用户和组&#xff0c;博主在csdn上看到很…...

Python正则表达式(re)

正则表达式&#xff0c;又称规则表达式,&#xff08;Regular Expression&#xff0c;在代码中常简写为regex、regexp或RE&#xff09;&#xff0c;是一种文本模式&#xff0c;包括普通字符&#xff08;例如&#xff0c;a 到 z 之间的字母&#xff09;和特殊字符&#xff08;称为…...

【PyTorch 08】如果要手动安装对应的包

例如有时候我们要下载 PyG &#xff0c;但是需要手动下载&#xff0c;需要进行以下步骤&#xff1a; 网站链接&#xff1a;https://data.pyg.org/whl/ 首先查看当前安装好的Pytorch版本和对应的cuda版本 1. pip list&#xff1a;查看torch版本 2. torch.version.cuda&#xf…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

Ubuntu系统多网卡多相机IP设置方法

目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机&#xff0c;交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息&#xff0c;系统版本&#xff1a;Ubuntu22.04.5 LTS&#xff1b;内核版本…...

基于江科大stm32屏幕驱动,实现OLED多级菜单(动画效果),结构体链表实现(独创源码)

引言 在嵌入式系统中&#xff0c;用户界面的设计往往直接影响到用户体验。本文将以STM32微控制器和OLED显示屏为例&#xff0c;介绍如何实现一个多级菜单系统。该系统支持用户通过按键导航菜单&#xff0c;执行相应操作&#xff0c;并提供平滑的滚动动画效果。 本文设计了一个…...