【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://www.mzph.cn/news/869266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++之goto陈述

关键字 goto用于控制程式执行的顺序&#xff0c;使程式直接跳到指定标签(lable) 的地方继续执行。 形式如下 标签可以是任意的识别字&#xff0c;后面接一个冒号。 举例如下 #include <iostream>int main() {goto label_one;label_one: {std::cout << "Lab…

【漏洞复现】29网课交单平台 SQL注入

声明&#xff1a;本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动&#xff0c;将与本文档的作者或发布者无关。 一、漏洞描述 29网课交单平台是一个在线学习平台&#xff0c;用于帮助学生完成网络课程的学习任务。这个平台提供了包括…

Transformer中的编码器和解码器结构有什么不同?

Transformer背后的核心概念&#xff1a;注意力机制&#xff1b;编码器-解码器结构&#xff1b;多头注意力等&#xff1b; 例如&#xff1a;The cat sat on the mat&#xff1b; 1、嵌入&#xff1a; 首先&#xff0c;模型将输入序列中的每个单词嵌入到一个高维向量中表示&…

前端面试题34(在移动应用中,通用的实时传输协议)

在移动应用中&#xff0c;选择实时传输协议时通常会考虑几个关键因素&#xff1a;网络效率、功耗、实时性、跨平台兼容性以及数据类型&#xff08;如文本、图像、视频&#xff09;。以下是几种常用的实时传输协议及其在移动应用中的适用性&#xff1a; 1. WebSocket WebSocke…

AI转绘_animatediff-cli-prompt-travel

这个工具有两种主要模式&#xff1a;它可以直接通过提示创建视频&#xff0c;或者它可以对现有视频进行风格化。还有方法可以提高视频的分辨率。 正如工具名称所示&#xff0c;它的一个主要特点是"提示旅行"。这意味着你可以例如使用特定的提示用于前20帧&#xff0…

Github绑定自己的域名

Github绑定自己的域名 1.注册自己的域名2.在GitHUb上创建一个自己的仓库&#xff0c;添加域名2.1 创建仓库2.2 添加域名2.3 在Setting中将域名添加到Custom domain中 3.添加域名解析获取ip地址4.在阿里云修改域名解析记录5.ping 域名即可成功 详细内容可参该博客&#xff1a; …

算法复杂度

目录 1. 数据结构前言 1.1 数据结构 1.2 算法 2. 算法效率 2.1 复杂度的概念 3. 时间复杂度 3.1 大O的渐进表示法 3.2 时间复杂度计算示例: 3.2.1 示例1 3.2.2 示例2 3.2.3 示例3 3.2.4 示例4 3.2.6 示例6 4. 空间复杂度 4.1 空间复杂度计算示例 4.1.1 示例1 …

Nacos2.X 配置中心源码分析:客户端如何拉取配置、服务端配置发布客户端监听机制

文章目录 Nacos配置中心源码总流程图NacosClient源码分析获取配置注册监听器 NacosServer源码分析配置dump配置发布 Nacos配置中心源码 总流程图 Nacos2.1.0源码分析在线流程图 源码的版本为2.1.0 &#xff0c;并在配置了下面两个启动参数&#xff0c;一个表示单机启动&#…

Java面试八股之MySQL主从复制机制简述

MySQL主从复制机制简述 MySQL的主从复制机制是一种数据复制方案&#xff0c;用于在多个服务器之间同步数据。此机制允许从一个服务器&#xff08;主服务器&#xff09;到一个或多个其他服务器&#xff08;从服务器&#xff09;进行数据的复制&#xff0c;从而增强数据冗余、提…

Qt 音频编程实战项目

一Qt 音频基础知识 QT multimediaQMediaPlayer 类&#xff1a;媒体播放器&#xff0c;主要用于播放歌曲、网络收音 机等功能。QMediaPlaylist 类&#xff1a;专用于播放媒体内容的列表。 二 音频项目实战程序 //版本5.12.8 .proQT core gui QT multimedia greate…

@Slf4j idea标红Cannot resolve symbol ‘log‘

一、背景 时间久了没有应用idea,打开工程后项目 log 提示报红&#xff0c;未能解析&#xff0c;Cannot resolve symbol log &#xff0c;Slf4j 注解正常&#xff0c;应用的lombok插件。 检查lombok插件安装情况&#xff0c;发现未安装&#xff0c;重新安装重启idea后正常。 二…

Cesium自定义着色器构件三角面片【闪烁】问题,但是一移动视角就闪烁

问题&#xff1a;已知各个顶点的坐标信息、颜色和索引信息&#xff0c;并自定义绘制三角面片。 但是绘制的三角面片随着视角稍微改动就会出现闪烁现象&#xff01;&#xff01;&#xff01;why? Cesium数据类型的精度问题&#xff0c;例如下面为了获取能接收到高精度坐标信息…

系统架构师考点--信息系统基础知识

大家好。今天我们来总结一下信息系统基础知识的相关考点&#xff0c;每年都会考&#xff0c;一般是在上午场选择题中&#xff0c;占3分左右&#xff0c;其次下午场论文也有可能会出相关的考题。 一、信息系统概述 信息系统&#xff1a; 是由计算机硬件、网络和通信设备、计算…

selenium,在元素块下查找条件元素

def get_norms_ele_text(self):elementsself.get_norms_elements()locBy.CSS_SELECTOR,"div.sku-select-row-label"by loc[0] # 获取By类型&#xff0c;例如By.CSS_SELECTORvalue loc[1] # 获取具体的CSS选择器字符串&#xff0c;例如"div.sku-select-row-l…

Java虚拟机面试题汇总

目录 1. JVM的主要组成部分及其作用&#xff1f; 1.1 运行时数据区划分&#xff1f; 1.2 哪些区域可能会发生OOM&#xff1f; 1.3 堆和栈的区别&#xff1f; 1.4 内存模型中的happen-before是什么&#xff1f; 2. HotSpot虚拟机对象创建流程&#xff1f; 2.1 类加载过程…

数据库之SQL(二)

目录 一、简述SQL中如何将“行”转换为“列” 二、简述SQL注入 三、如何将一张表的部分数据更新到另一张表 四、WHERE和HAVING的区别 一、简述SQL中如何将“行”转换为“列” 我们以MySQL数据库为例&#xff0c;来说明行转列的实现方式。 首先&#xff0c;假设我们有一张分…

Echarts桑基图

关于Echarts的使用方法参考&#xff1a;vue2中echarts的使用_vue2中使用echarts-CSDN博客 实现效果&#xff1a; 代码&#xff1a; var sysT {"用采": #2D9BFF,"营销系统": #39BFFF,"ERP": #76C2FF,"财务管控": #5F57FC,"PMS&…

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

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

昇思MindSpore学习总结十二 —— ShuffleNet图像分类

当前案例不支持在GPU设备上静态图模式运行&#xff0c;其他模式运行皆支持。 1、ShuffleNet网络介绍 ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型&#xff0c;和MobileNet, SqueezeNet等一样主要应用在移动端&#xff0c;所以模型的设计目标就是利用有限的计算资源来达…

mybatis-plus参数绑定异常

前言 最近要搞个发票保存的需求&#xff0c;当发票数据有id时说明是发票已经保存只需更新发票数据即可&#xff0c;没有id时说明没有发票数据需要新增发票&#xff1b;于是将原有的发票提交接口改造了下&#xff0c;将调用mybatis-plus的save方法改为saveOrUpdate方法&#xff…