当前位置: 首页 > 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…...

黑马JVM总结(十二)

&#xff08;1&#xff09;五种引用_强软弱 实线箭头表示强引用&#xff0c;虚心线表示软弱虚终结器引用 在平时我们用的引用&#xff0c;基本都为强引用 &#xff0c;比如说创建一个对象通过运算符赋值给了一个变量&#xff0c;那么这个变量呢就强引用了刚刚的对象 强引用的…...

彻底搞懂线程池原理以及创建方式

1. 为什么要使用线程池 在实际使用中&#xff0c;线程是很占用系统资源的&#xff0c;如果对线程管理不善很容易导致系统问题。因此&#xff0c;在大多数并发框架中都会使用线程池来管理线程&#xff0c;使用线程池管理线程主要有如下好处&#xff1a; 降低资源消耗。通过复用…...

FreeSWITCH 1.10.10 简单图形化界面9 - 鼎兴FXO网关SIP中继内网IPPBX落地

FreeSWITCH 1.10.10 简单图形化界面9 - 鼎兴FXO网关SIP中继内网IPPBX落地 0、 界面预览1、创建一个话务台2、创建PBX SIP中继并设置呼入权限3、设置呼出规则4、设置分机呼出权限5、设置FXO 网关相关信息6、设置FXO网关端口组呼入号码7、设置FXO网关的SIP中继8、设置FXO网关呼叫…...

Oracle数据如何迁移导入到MySQL

使用Navicat工具建立数据连接&#xff0c;进行数据传输 1、打开Navicat工具&#xff0c;分别连接Oracle数据库和MySQL数据库。 2、连接源选择你的oracle数据&#xff0c;目标选mysql 即可成功导入...

卡尔曼滤波(Kalman Filter)原理浅析-数学理论推导-1

目录 前言数学理论推导1. 递归算法2. 数学基础结语参考 前言 最近项目需求涉及到目标跟踪部分&#xff0c;准备从 DeepSORT 多目标跟踪算法入手。DeepSORT 中涉及的内容有点多&#xff0c;以前也就对其进行了简单的了解&#xff0c;但是真正去做发现总是存在这样或者那样的困惑…...

Linux 文件创建、查看

touch、cat、more命令 ①touch命令——创建文件 ②cat命令——查看文件内容全部显示 这是txt.txt文件内容 使用cat命令查看 ③more命令——查看文件内容支持翻页 在查看的过程中&#xff0c;通过空格翻页&#xff0c;通过q退出查看...

WPF 如何让xmal的属性换行显示 格式化

WPF 如何让UI的xmal 按照下面的格式化显示 首先格式化显示在VS中的快捷键是 Ctrl &#xff2b;D 然后需要配置&#xff0c;工具 选项 -文本编辑器 -xmal -格式化-间距 更改成如下就可以了...

Linux学习之MySQL主从复制

MySQL配置一主一从 环境准备&#xff1a; 两台服务器&#xff1a; Master&#xff1a;192.168.88.53&#xff0c;Slave&#xff1a;192.168.88.54 在两台服务器上安装mysql-server # 配置主服务器192.168.88.53 # 启用binlog日志 [rootmysql53 ~]# yum -y install mysql-ser…...

【JavaSE笔记】抽象类与接口

一、抽象类 1、概念 在面向对象的概念中&#xff0c;所有的对象都是通过类来描绘的&#xff0c;但是反过来&#xff0c;并不是所有的类都是用来描绘对象的&#xff0c;如果一个类中没有包含足够的信息来描绘一个具体的对象&#xff0c;这样的类就是抽象类。 package demo2…...

详谈操作系统中的内核态和用户态

不知道大家有没有思考过这样一个问题:什么是处理器&#xff08;CPU&#xff09;的状态&#xff1f;&#x1f914; 其实CPU和人一样,没有执行程序的时候,是没有什么状态的,当它执行的程序是用户程序的时候就叫用户态&#xff0c;当执行的程序是操作系统的代码时就叫系统态或者内…...

如何用服务器做网站/品牌策划方案怎么写

这是基于java的电子邮件系统--工具软件下载&#xff0c;基于java开发的邮件系统&#xff0c;包括基本的邮件收发&#xff0c;附件功能-Java-based development of e-mail system&#xff0c; including the basic send and receive mail&#xff0c; attachments.软件介绍基于j…...

网站建设需求原型/hao123影视

文章来源&#xff1a;Python小例子告别枯燥&#xff0c;通过学习有趣的小例子&#xff0c;扎实而系统的入门Python&#xff0c;从菜鸟到大师&#xff0c;个人觉得这是很靠谱的一种方法。通过一个又一个的小例子&#xff0c;真正领悟Python之强大&#xff0c;之简洁&#xff0c;…...

如何利用淘宝建设网站挣钱/推广引流app

这几个月以来&#xff0c;一直有人发信或者发消息问GAE的中文问题&#xff0c;也怪我&#xff0c;一直没有好好整理出什么文档。在这里简单地写一个吧以StringProperty和TextProperty这两种类型来举个小例子&#xff1a;&#xff1d;&#xff1d;&#xff1d;&#xff1d;&…...

电脑课做网站所需的软件/自己怎么做网站

前言&#xff1a; 在使用gitLab中时遇到一个问题&#xff0c;就是我在gitLab新建分支后&#xff0c;在本地切换分支不成功&#xff0c;遇到了这个问题&#xff0c;在大佬的博客的指点下&#xff0c;顺利解决这个问题&#xff0c;记录下我一步一步解决问题的过程&#xff0c;最后…...

机关党建网站建设策划/seo在线工具

app点击一个按钮跳转到另外一个控制器非常常用&#xff0c;但是如果是点击的是UIImageView如何通过模态视图进入另外一个控制器呢&#xff1f;万一这个UIImageView在自定义的cell或者view里面&#xff0c;那该如何做呢&#xff1f; 首先要先知道的是时间响应者链&#xff0c; 响…...

成全视频观看高清在线观看/北京seo网站推广

一、电脑软硬件基础知识1、CPU型号怎么看&#xff1f;CPU是一台电脑的核心&#xff0c;而目前笔记本市场基本被Intel(英特尔)的CPU垄断。而Intel的CPU型号命名还算比较有规律。以i7-6920HQ为例&#xff1a;四位数的头一个数字是6指的是代际&#xff0c;也就是是英特尔第六代处理…...