【Python】基础语法体系:两种常用语句

在这里插入图片描述


个人主页:【😊个人主页】
系列专栏:【❤️Python】


文章目录

  • 前言
  • 条件语句
  • 动态实例
    • if语句
    • if-else 语句
    • if-elif-else 语句
    • 嵌套条件语句
  • 循环语句
    • for循环
    • while循环
  • 动态实例
  • 嵌套循环


前言

Python语句是构成Python程序的基本单元,用于执行各种操作,如变量赋值、条件判断、循环迭代、函数调用等,因此在学习Python过程中,熟练的掌握各种语句的运用是不可避免的环节。今天我们就在详细的介绍两种Python最常用的语句:条件语句,循环语句,想了解更多Python内容请订阅内容【Python系列教程】

在这里插入图片描述

条件语句

Python中的条件语句允许程序根据条件(或称为“表达式”)的真假来决定执行哪段代码。Python中主要有两种条件语句:if 语句if-else 语句,以及更复杂的 if-elif-else 结构。在这里插入图片描述
注:

  • 条件表达式的结果必须是布尔值(True 或 False)。Python中许多表达式都可以隐式地转换为布尔值,例如,非零数值被视为True,零和空对象(如空字符串""、空列表[]、空字典{}等)被视为False。
  • 缩进在Python中非常重要,它决定了代码块的开始和结束。条件语句下的代码块必须正确缩进。
  • elif 和 else 语句是可选的,但 if 语句后面必须跟一个冒号(:)和缩进的代码块。

动态实例

在这里插入图片描述

if语句

if 语句后面跟一个条件表达式,如果条件为真(True),则执行缩进的代码块。

x = 10  
if x > 5:  print("x is greater than 5")

在这里插入图片描述

if-else 语句

if-else 语句用于在条件为真时执行一个代码块,如果条件为假(False),则执行另一个代码块。

x = 3  
if x > 5:  print("x is greater than 5")  
else:  print("x is not greater than 5")

在这里插入图片描述
注:当if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。

if-elif-else 语句

if-elif-else 语句是 if 和 else 的扩展,允许在多个条件中进行选择。elif 是 “else if” 的缩写,用于检查多个表达式是否为真,并在为真时执行相应的代码块。

x = 10  
if x > 20:  print("x is greater than 20")  
elif x > 10:  print("x is greater than 10 but less than or equal to 20")  
else:  print("x is 10 or less")

在这里插入图片描述
注:python并不支持 switch 语句,多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。

嵌套条件语句

条件语句还可以嵌套使用,即在一个条件语句的代码块内部再包含一个或多个条件语句。

x = 15  
y = 20  
if x > 10:  if y > 15:  print("Both x and y are greater than 15")  else:  print("x is greater than 10, but y is not greater than 15")  
else:  print("x is 10 or less")

在这里插入图片描述

循环语句

循环语句允许我们执行一个语句或语句组多次,它通常允许你重复执行一段代码块,直到满足特定的条件。Python中有两种基本的循环语句:for 循环while 循环
在这里插入图片描述
注:在使用 while 循环时,必须确保循环条件在某个时刻会变为假,以避免创建无限循环。
for 循环通常比 while 循环更简洁,特别是当你知道需要遍历的序列时。
可以通过 break 语句来提前退出循环,通过 continue 语句来跳过当前循环的剩余部分并继续下一次迭代。
循环还可以嵌套使用,即在一个循环内部再定义一个或多个循环。

for循环

for 循环用于遍历任何序列(如列表、元组或字符串)或其他可迭代对象。它通常用于在你知道需要遍历的序列长度时使用。
在这里插入图片描述

# 遍历列表  
fruits = ["apple", "banana", "cherry"]  
for fruit in fruits:  print(fruit)  # 遍历字符串  
for char in "hello":  print(char)  # 使用range()函数遍历数字序列  
for i in range(5):  # 默认从0开始,到4结束  print(i)  # 使用range()函数指定起始和结束值  
for i in range(1, 6):  # 从1开始,到5结束  print(i)  # 使用range()函数指定起始、结束和步长  
for i in range(0, 10, 2):  # 从0开始,到9结束,步长为2  print(i)

在使用Python的for循环时,有几个注意事项可以帮助你更有效地编写代码并避免常见的错误。

迭代对象:确保你用于迭代的对象是可迭代的。在Python中,列表、元组、字符串、字典(迭代其键)、集合以及任何定义了__iter__()或__getitem__()方法的对象都是可迭代的。如果尝试对非可迭代对象使用for循环,将会引发TypeError。
迭代变量:在for循环的头部,迭代变量(或称为循环变量)在每次迭代时会被赋予序列中的下一个元素。这个变量只在该循环的块内部可见。如果你需要在循环外部访问该值,应该考虑使用另一个变量来存储它。
修改迭代对象:在迭代过程中修改迭代对象(如列表)时要特别小心。如果修改导致迭代器的长度发生变化(如添加或删除元素),可能会导致跳过某些元素或引发RuntimeError(如果迭代器在迭代过程中被修改了)。如果需要修改列表,考虑先迭代其副本或使用其他逻辑。
嵌套循环:当使用嵌套循环时,确保你理解外层循环和内层循环之间的关系,以及它们如何一起工作。嵌套循环的每一层都会创建一个新的作用域,其中可以定义自己的变量。
无限循环:如果for循环的条件永远不会变为假(尽管在标准的for循环中这不太常见,因为它通常依赖于可迭代对象的长度),或者循环体内部没有适当的终止条件,那么可能会创建无限循环。确保你的循环有明确的退出条件。

while循环

while 循环在给定条件为真时重复执行一段代码块。这在你不知道需要循环多少次时非常有用。
其基本形式为:

while 判断条件(condition):执行语句(statements)……

动态实例

在这里插入图片描述
在这里插入图片描述

# 简单的while循环  
count = 0  
while count < 5:  print(count)  count += 1  # 使用while循环遍历列表(不推荐,因为不直观且难以控制)  
fruits = ["apple", "banana", "cherry"]  
i = 0  
while i < len(fruits):  print(fruits[i])  i += 1

在这里插入图片描述

循环条件:确保你的循环条件在某种情况下会变为假(False),以避免创建无限循环。无限循环会消耗大量系统资源,并使程序挂起。
循环变量更新:在while循环内部,确保有一个或多个语句用于更新循环变量(或影响循环条件的其他变量)。
循环控制语句:使用break语句来提前退出循环。这在你满足某个条件时不再需要继续迭代时非常有用。使用continue语句来跳过当前迭代的剩余部分,并继续下一次迭代。
嵌套循环:如果你的while循环嵌套在另一个循环(无论是while循环还是for循环)中,确保你理解这两个循环之间的相互作用。
性能考虑:对于大型数据集或复杂计算,while循环可能会变得效率低下。在这种情况下,考虑使用更高效的算法或数据结构,或者将计算分解为更小的、可管理的部分。如果可能的话,使用向量化操作(例如NumPy库中的操作)来替代循环,这通常可以显著提高性能。

嵌套循环

# 打印一个5x5的星号矩阵  
for i in range(5):  for j in range(5):  print("*", end=" ")  print()  # 换行

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

Git分支结构

目录 1. 线性分支结构 2. 分叉与合并结构 3. 分支与标签的关系 4. 并行开发与分支管理策略 测试&#xff08;本机系统为Rocky_linux9.4&#xff09; 合并失败解决 删除分支 删除本地分支 删除远程分支 Git 中的分支结构是版本控制中非常重要的概念之一&#xff0c;它描…

Java面试八股之描述一下MySQL使用索引查询数据的过程

描述一下MySQL使用索引查询数据的过程 1.解析查询语句与查询优化 用户提交一个 SQL 查询语句&#xff0c;MySQL 的查询解析器对其进行词法分析和语法分析&#xff0c;生成解析树。 查询优化器根据解析树、表结构信息、统计信息以及索引信息&#xff0c;决定是否使用 B树索引…

如何创建录取查询系统

随着新学期的脚步渐近&#xff0c;老师们的日程表上又添上了密密麻麻的任务。开学前的准备工作总是让人应接不暇&#xff0c;从整理教材到布置教室&#xff0c;再到准备课程计划&#xff0c;每一项工作都需要细心与耐心。而在这些繁琐的事务中&#xff0c;如何高效地将录取结果…

2018-2022 年份微博签到数据集

前阵子接到一个实验室老师的需求&#xff0c;采集五年前&#xff08;2024-52019&#xff09;过年前后的北京微博签到数据。 前两年采集的深圳签到数据是 2022 年是当年的尚可&#xff0c;这次虽然时间跨度只有两个月&#xff0c;但是由于时间太过久远&#xff0c;但是颇费了一…

Java面试八股之MySQL中的MVCC是什么,作用是什么?

MySQL中的MVCC是什么&#xff0c;作用是什么&#xff1f; MySQL中的MVCC&#xff08;Multiversion Concurrency Control&#xff0c;多版本并发控制&#xff09;是一种并发控制机制&#xff0c;用于提高数据库的并发性能并确保数据的一致性&#xff0c;特别是在高并发读写场景…

学习笔记——动态路由——OSPF(特殊区域)

十、OSPF特殊区域 1、技术背景 早期路由器靠CPU计算转发&#xff0c;由于硬件技术限制问题&#xff0c;因此资源不是特别充足&#xff0c;因此是要节省资源使用&#xff0c;规划是非常必要的。 OSPF路由器需要同时维护域内路由、域间路由、外部路由信息数据库。当网络规模不…

Collection 和 Collections 的区别与用法

Collection 和 Collections 的区别与用法 1、Collection 接口1.1 主要特点1.2 常见方法 2、 Collections 工具类2.1 主要特点2.2 常见方法 3、示例代码3.1 使用 Collection 接口3.2 使用 Collections 工具类 4、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收…

Labview_压缩文件

调用顺序 源文件 生成后的文件 1.新建ZIP文件 生成ZIP文件的路径&#xff1a;为最终生成ZIP文件的路径&#xff0c;需要提供ZIP文件的名称和类型 2.添加文件到压缩文件 源文件路径&#xff1a;为需要压缩的文件路径&#xff0c;非文件夹路径 生成ZIP文件时的路径&#x…

Rust: 高性能序列化库Fury PK bincode

在序列化库中&#xff0c;传统的有Json,XML&#xff0c;性能好的有thrift&#xff0c;protobuf等。 对于二进制库来讲&#xff0c;据Fury官网的介绍&#xff0c;Fury性能要远远好于protobuf&#xff0c;且不象protobuf还需要定义IDL(即写.proto文件)&#xff0c;非常轻便&#…

HTML语言常见标签

语法 HEAD部分的HTML标签 1 标题标签 <title>标题内容</title> 2 段落标签 <meta charset"utf-8"/> BODY部分的HTML标签 1标题标签&#xff08;独占一行&#xff09;<h1>标题内容</h1> 2段落标签&#xff08;独占一行&#xff09;…

禁用华为小米?微软中国免费送iPhone15

微软中国将禁用华为和小米手机&#xff0c;要求员工必须使用iPhone。如果还没有iPhone&#xff0c;公司直接免费送你全新的iPhone 15&#xff01; 、 这几天在微软热度最高的话题就是这个免费发iPhone&#xff0c;很多员工&#xff0c;收到公司的通知。因为&#xff0c;登录公司…

使用Layui实现表格数据的分页功能

最近在用Layui做表格数据的展示时想把所有的数据进行分页展示&#xff0c;于是在网上找了一个模板 <script type"text/javascript" > layui.use([table,layer,form,laypage], function(){var table layui.table,layer layui.layer,form layui.form,laypage…

【ROS2】中级-编写动作服务器和客户端(C++)

目标&#xff1a;用 C实现一个动作服务器和客户端。 教程级别&#xff1a;中级 时间&#xff1a;15 分钟 目录 背景 先决条件 任务 1. 创建 custom_action_cpp 包2. 编写动作服务器3. 编写动作客户端 摘要 相关内容 背景 动作是 ROS 中异步通信的一种形式。动作客户端向动作服务…

LeetCode 203.移除链表元素 C做法

LeetCode 203.移除链表元素 C做法 思路&#xff1a; ​ 由于是单链表&#xff0c;所以我们可以创建一个新的头结点newhead&#xff0c;把不是val的结点尾插在newhead中&#xff0c;而等于val的结点给释放&#xff0c;最后返回newhead。防止时间复杂度过高&#xff0c;我们再创…

数据仓库哈哈

数据仓库 基本概念数据库&#xff08;database&#xff09;和数据仓库&#xff08;Data Warehouse&#xff09;的异同 整体架构分层架构方法论ER模型&#xff08;建模理论&#xff09;维度模型 何为分层第一层&#xff1a;数据源&#xff08;ODS ER模型&#xff09;设计要点日志…

代理详解之静态代理、动态代理、SpringAOP实现

1、代理介绍 代理是指一个对象A通过持有另一个对象B&#xff0c;可以具有B同样的行为的模式。为了对外开放协议&#xff0c;B往往实现了一个接口&#xff0c;A也会去实现接口。但是B是“真正”实现类&#xff0c;A则比较“虚”&#xff0c;他借用了B的方法去实现接口的方法。A…

大小端详解

引例 我们知道整形(int)是4个字节&#xff0c;例如随便举个例子&#xff1a;0x01020304&#xff0c;它一共占了四个地址位&#xff0c;01,02,03,04分别占了一个字节&#xff08;一个字节就对应了一个地址&#xff09;。 那么就会有个问题&#xff1a;我们的01到底是存储在高地…

es是如何处理索引数据的变动的?

1 概述 es是如何处理索引数据的变动的&#xff1f; 或者说索引数据变动时&#xff0c;es会执行哪些操作&#xff1f; refresh、fsync、merge 和 flush 操作有何作用&#xff1f; es是如何确保即使es发生宕机数据也不丢失的&#xff1f; 在回答上述问题前&#xff0c;可以先…

在vue3中,手写父子关联,勾选子级父级关联,取消只取消当前子级,父节点不动

树形控件选择子级勾选父级&#xff0c;以及所有子级&#xff0c; 取消勾选仅取消子级 在项目中&#xff0c;可能会遇到这种场景&#xff0c;比如权限配置的时候&#xff0c;页面权限和菜单权限以tree的形式来配置&#xff0c;而且不用半选&#xff0c;菜单在页面的下面&#xf…

Mosh|初学者 SQL 教程

sql文件链接&#xff1a;链接: https://pan.baidu.com/s/1okjsgssdxMkfKf8FEos7DA?pwdf9a9 提取码: f9a9 在mysql workbench 导入 create_databases.sql 文件&#xff0c;下面是运行成功的界面 快捷方式&#xff1a;全部运行可以同时按下controlcommandenter &#xff0c;或者…