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

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域&#xff1a;无处不在的数字助手 2、 计算机的进化史&#xff1a;从算盘到量子计算 3、计算机的分类&#xff1a;不止 “台式机和笔记本” 4、计算机的组件&#xff1a;硬件与软件的协同 4.1 硬件&#xff1a;五大核心部件 4.2 软件&#…...

elementUI点击浏览table所选行数据查看文档

项目场景&#xff1a; table按照要求特定的数据变成按钮可以点击 解决方案&#xff1a; <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...

rknn toolkit2搭建和推理

安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 &#xff0c;不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源&#xff08;最常用&#xff09; conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...