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

Python的顺序结构和循环结构

文章目录

  • 一、条件语句
    • (1)条件语句的定义
    • (2)条件语句的语法
      • (a)单分支 if
      • (b)双分支 if-else
      • (c)多分支 if-elif-elif-...-else
    • (3)注意事项
    • (4)空语句 pass
    • (5)示例
  • 二、循环语句
    • (1)循环语句的定义
    • (2) while 循环
      • (a) 语法
      • (b)示例
    • (3) range 函数
      • (a) 语法
      • (b)示例
    • (4) for 循环
      • (a) 语法
      • (b)示例
    • (5)continue语句
      • 示例
    • (6)break语句
      • 示例
  • END


一、条件语句

(1)条件语句的定义

条件语句能够表达 “如果 … 否则 …” 这样的语义. 这构成了计算机中基础的 逻辑判定。
条件语句 也叫做 分支语句, 表示了接下来的逻辑可能有几种走向。

(2)条件语句的语法

(a)单分支 if

if expression:do_something1do_something2
next_something

如果 expression 值为 True, 则执行 do_something1, do_something2,next_something;
如果 expression 值为 False, 则只执行 next_something, 不执行do_something1, do_something2

(b)双分支 if-else

if expression:do_something1
else:do_something2

如果 expression 值为 True, 则执行 do_something1
如果 expression 值为 False, 则执行 do_something2

(c)多分支 if-elif-elif-…-else

if expression1:do_something1
elif expression2:do_something2
else:do_something3

如果 expression1 值为 True, 则执行 do_something1
如果 expression1 值为 False, 并且 expression2True执行 do_something2
如果 expression1 值为 False, 并且 expression2False执行 do_something3

(3)注意事项

  • if 后面的条件表达式, 没有 ( ), 使用 :英文状态下的冒号) 作为结尾.
  • if / else 命中条件后要执行的 “语句块”, 使用 缩进 (通常是 4 个空格或者 1 个 tab)来表示, 而不是 { }
  • 对于多条件分支, 不是写作 else if, 而是 elif (合体了).

(4)空语句 pass

输入一个数字, 如果数字为 1, 则打印 hello

# 提示用户输入一个整数,并使用int()函数将输入的字符串转换为整数
a = int(input("请输入一个整数:"))# 使用if语句判断输入的整数是否等于1
if a == 1:# 如果输入的整数等于1,打印消息"hello"print("hello")

这个代码也可以等价写成

# 提示用户输入一个整数,并使用int()函数将输入的字符串转换为整数
a = int(input("请输入一个整数:"))# 使用if-else语句判断输入的整数是否不等于1
if a != 1:# 如果输入的整数不等于1,使用pass语句,表示什么也不做pass
else:# 如果输入的整数等于1,打印消息"hello"print("hello")

其中 pass 表示 空语句, 并不会对程序的执行有任何影响, 只是占个位置, 保持 Python 语法格式符合要求。

(5)示例

# 输入 1 表示愿意认真学习, 输入 2 表示躺平摆烂
choice = input("输入 1 表示认真学习, 输入 2 表示躺平摆烂: ")
if choice == "1":print("你会找到好工作!")
elif choice == "2":print("你可能毕业就失业了!")
else:print("你的输入有误!")

二、循环语句

(1)循环语句的定义

Python中,循环语句是用来重复执行一段代码多次的一种控制流结构。最常用的是for循环和while循环。

(2) while 循环

(a) 语法

while 条件:循环体
  • 条件为真, 则执行循环体代码.
  • 条件为假, 则结束循环

(b)示例

计算 1-100 的和

# 初始化变量,用于存储累加的总和
theSum = 0
# 初始化变量,用于表示当前的数字,从1开始
num = 1# 使用while循环,当num小于或等于100时,继续执行循环
while num <= 100:# 将当前的num值加到theSum中,实现累加theSum += num# 将num的值加1,准备下一次循环num += 1# 循环结束后,打印最终累加的结果
print(f'theSum = {theSum}')

运行截图:

求 1! + 2! + 3! + 4! + 5!

# 初始化变量num,从1开始,表示当前要计算阶乘的数字
num = 1
# 初始化变量sum,用于存储累加的阶乘结果
sum = 0# 外层while循环:当num小于或等于5时,继续执行循环
while num <= 5:# 初始化变量factorResult,用于存储当前数字num的阶乘结果factorResult = 1# 初始化变量i,用于计算阶乘时的循环控制i = 1# 内层while循环:计算当前数字num的阶乘while i <= num:# 将i的值乘到factorResult中,逐步计算阶乘factorResult *= i# 将i的值加1,准备下一次循环i += 1# 将计算得到的阶乘结果factorResult累加到sum中sum += factorResult# 将num的值加1,准备计算下一个数字的阶乘num += 1# 在所有计算完成后,打印最终的sum值
print(sum)

(3) range 函数

(a) 语法

range(start, stop, step)

参数说明:

  • start: 计数从 start 开始。默认是从 0 开始。例如 range(5) 等价于range(0,5);
  • stop: 计数到 stop 结束,但不包括 stop。例如:range(0,5) 是 [0, 1, 2, 3, 4] 没有5。
  • step:步长,默认为1。例如:range(0,5) 等价于 range(0, 5, 1)。

(b)示例

range(10)        # 从 0 开始到 9
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]range(1, 11)     # 从 1 开始到 10
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]range(0, 30, 5)  # 步长为 5
[0, 5, 10, 15, 20, 25]range(0, 10, 3)  # 步长为 3
[0, 3, 6, 9]range(0, -10, -1) # 负数
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

(4) for 循环

(a) 语法

for 循环变量 in 可迭代对象:循环体

注意:

所谓的 “可迭代对象”, 指的是 “内部包含多个元素, 能一个一个把元素取出来的特殊变量”。

(b)示例

打印 2, 4, 6, 8, 10

for i in range(2, 12, 2):print(i)

运行截图:

(5)continue语句

continue 表示结束这次循环,进入下次循环。

示例

# 使用for循环遍历从1到5的数字(不包括6)
for i in range(1, 6):# 在循环中,检查当前的数字i是否等于3if i == 3:# 如果i等于3,使用continue语句跳过当前循环的剩余部分,直接进入下一次循环continue# 如果i不等于3,打印当前的数字i,并附带一条消息print(f"吃完第{i}个包子")

运行截图:

(6)break语句

break 表示结束整个循环。

示例

# 使用for循环遍历从1到5的数字(不包括6)
for i in range(1, 6):# 在循环中,检查当前的数字i是否等于3if i == 3:# 如果i等于3,使用break语句提前终止循环break# 如果i不等于3,打印当前的数字i,并附带一条消息print(f"吃完第{i}个包子")

运行截图:


END

每天都在学习的路上!
On The Way Of Learning

相关文章:

Python的顺序结构和循环结构

文章目录 一、条件语句&#xff08;1&#xff09;条件语句的定义&#xff08;2&#xff09;条件语句的语法&#xff08;a&#xff09;单分支 if&#xff08;b&#xff09;双分支 if-else&#xff08;c&#xff09;多分支 if-elif-elif-...-else &#xff08;3&#xff09;注意事…...

深入浅出TypedArray:网络数据处理、WebGPU与加密实战

JavaScript的TypedArray是现代Web开发中处理二进制数据的利器。本文将结合网络数据传输、WebGPU编程和简单加密算法三个实战场景&#xff0c;带你领略TypedArray的强大能力。 一、TypedArray基础认知 TypedArray家族包括Int8Array、Uint16Array、Float32Array等11种视图类型&a…...

http 响应码影响 video 标签播放视频

背景 使用后端给的文件下载接口地址实现视频播放&#xff0c;但是 video 标签一直无法播放视频如下图&#xff0c;把接口地址放到浏览器请求能直接下载。但就是不能播放 原因 http 响应码不正确&#xff0c;返回201是无法播放视频200可以如下图 状态码的影响&#xff1a; 20…...

观察者模式原理详解以及Spring源码如何使用观察者模式?

前言 首先说明观察者模式&#xff0c;观察者模式&#xff0c;也叫发布-订阅模式&#xff0c;应该是用来处理对象间的一对多依赖关系的。当被观察者的状态变化时&#xff0c;所有依赖它的观察者都会得到通知并自动更新。 观察者模式的结构&#xff0c;通常包括Subject&#xff0…...

【Spring】Spring配置文件

目录 ​什么是配置文件&#xff1f; 配置文件的作用 SpringBoot配置文件 配置文件格式 配置文件的优先级 properties配置文件说明 properties基本语法 读取配置文件 properties缺点 yml配置文件说明 yml基本语法 使用yml连接数据库 yml配置不同数据类型及null 注意…...

MSI微星电脑冲锋坦克Pro Vector GP76 12UGS(MS-17K4)原厂Win11系统恢复镜像,含还原功能,预装OEM系统下载

适用机型&#xff1a;【MS-17K4】 链接&#xff1a;https://pan.baidu.com/s/1P8ZgXc6S_J9DI8RToRd0dQ?pwdqrf1 提取码&#xff1a;qrf1 微星笔记本原装出厂WINDOWS11系统自带所有驱动、出厂主题壁纸、系统属性专属联机支持标志、Office办公软件、MSI Center控制中心等预装…...

Unity合批处理优化内存序列帧播放动画

Unity合批处理序列帧优化内存 介绍图片导入到Unity中的处理Unity中图片设置处理Unity中图片裁剪 创建序列帧动画总结 介绍 这里是针对Unity序列帧动画的优化内容&#xff0c;将多个图片合批处理然后为了降低Unity的内存占用&#xff0c;但是相对的质量也会稍微降低。可自行进行…...

【Java】逻辑运算符详解:、|| 与、 | 的区别及应用

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: Java 文章目录 &#x1f4af;前言&#x1f4af;一、基本概念与运算符介绍&#x1f4af;二、短路与与非短路与&#xff1a;&& 与 & 的区别1. &&&#xff1a;短路与&#xff08;AND&#xff09;2. …...

深入解析 Flutter GetX

深入解析 Flutter GetX&#xff1a;从原理到实战 GetX 是 Flutter 中一个轻量级且功能强大的状态管理、路由管理和依赖注入框架。它以简单、快速、高效著称&#xff0c;适合从小型到大型项目的开发需求。GetX 的设计理念是一体化解决方案&#xff0c;通过一个框架解决状态管理…...

Java 大视界 -- 人才需求与培养:Java 大数据领域的职业发展路径(92)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

顺序表常用操作和笔试题

1、顺序表的常用操作 1.1 顺序表的创建 如下代码所示&#xff1a;创建了一个默认空间为10的整型顺序表&#xff0c;如果空间不足则会以1.5倍扩容。 List<Integer> list new ArrayList<>(); 创建一个空间为15的整型顺序表 List<Integer> list2 new ArrayL…...

List<Map<String, Object>> 如何对某个字段求和

在Java中&#xff0c;如果你有一个List<Map<String, Object>>的结构&#xff0c;并且你想要对某个特定字段进行求和&#xff0c;你可以使用Java 8的Stream API来简化这个过程。下面是一个示例代码&#xff0c;演示如何对某个字段进行求和。 假设你有一个List<M…...

2024亚马逊数据分析!

整体财务数据23 净销售额&#xff1a;全年净销售额达 6380 亿美元&#xff0c;同比增长 11%。 净利润&#xff1a;全年净利润为 592 亿美元&#xff0c;较上年同期的 304 亿美元增长 95%。 经营活动现金流&#xff1a;经营活动现金流达 1159 亿美元&#xff0c;同比增加了 36…...

foobar2000设置DSP使用教程及软件推荐

foobar2000安卓中文版&#xff1a;一款高品质手机音频播放器 foobar2000安卓中文版是一款备受好评的高品质手机音频播放器。 几乎支持所有的音频格式&#xff0c;包括 MP3、MP4、AAC、CD 音频等。不论是经典老歌还是最新的流行音乐&#xff0c;foobar2000都能完美播放。除此之…...

Apache Logic4j 库反序列化漏洞复现与深度剖析

前言 在渗透测试领域&#xff0c;反序列化漏洞一直是安全研究人员和攻击者关注的焦点。今天&#xff0c;我们将深入探讨 Apache Logic4j 库中的反序列化漏洞&#xff0c;详细了解其原理&#xff0c;并进行完整的复现演示。 一、漏洞原理 Apache Logic4j 库在处理对象的反序列…...

FPGA VIVADO:axi-lite 从机和主机

FPGA VIVADO:axi-lite 从机和主机 TOC在这里插入代码片 前言 协议就不详细讲解了&#xff0c;直接看手册即可。下面主要如何写代码和关键的时序。 此外下面的代码可以直接用于实际工程 一、AXI-LITE 主机 数据转axi lite接口&#xff1a; 读/写数据FIFO缓存 仲裁&#xff1a…...

LabVIEW 中的 3dgraph.llb库

3dgraph.llb 库位于C:\Program Files (x86)\National Instruments\LabVIEW 2019\vi.lib\Platform目录下&#xff0c;是 LabVIEW 系统里用于 3D 图形相关操作的关键库。它为 LabVIEW 用户提供众多功能&#xff0c;可在应用程序内创建、显示和交互各类 3D 图形&#xff0c;极大增…...

【Linux】文件系统:文件fd

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;linux笔记仓 目录 01.回顾C文件接口02.系统文件I/O02.1 openflags 参数&#xff08;文件打开模式&#xff09;标记位传参1. 访问模式&#xff08;必须指定一个&#xff09;2. 额外控制标志&#xf…...

Vue学习记录19

TransitonGroup <TransitionGroup> 是一个内置组件&#xff0c;用于对 v-for 列表中的元素或组件的插入、移除和顺序改变添加动画效果。 和 <Transtion> 的区别 <TranstionGroup> 支持和 <Transtion> 基本相同的 props、CSS过渡 class 和 JavaScript…...

MATLAB更改图论的布局:设置layout

在图论那一章&#xff0c;我们讲过最小生成树和单源最短路径&#xff08;见&#xff1a;从零开始学数学建模&#xff09;&#xff1a; 以最短路径那节课为例&#xff0c;把绘图pplot那部分代码写为&#xff1a; % plot绘图有很多参数可以设置&#xff0c;使图尽量美观 P plot…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!

目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

jdbc查询mysql数据库时,出现id顺序错误的情况

我在repository中的查询语句如下所示&#xff0c;即传入一个List<intager>的数据&#xff0c;返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致&#xff0c;会导致返回的id是从小到大排列的&#xff0c;但我不希望这样。 Query("SELECT NEW com…...

从零开始了解数据采集(二十八)——制造业数字孪生

近年来&#xff0c;我国的工业领域正经历一场前所未有的数字化变革&#xff0c;从“双碳目标”到工业互联网平台的推广&#xff0c;国家政策和市场需求共同推动了制造业的升级。在这场变革中&#xff0c;数字孪生技术成为备受关注的关键工具&#xff0c;它不仅让企业“看见”设…...

Qt的学习(一)

1.什么是Qt Qt特指用来进行桌面应用开发&#xff08;电脑上写的程序&#xff09;涉及到的一套技术Qt无法开发网页前端&#xff0c;也不能开发移动应用。 客户端开发的重要任务&#xff1a;编写和用户交互的界面。一般来说和用户交互的界面&#xff0c;有两种典型风格&…...