Python程序设计基础:程序流程控制(二)

news2024/9/22 19:36:38

文章目录

  • 一、循环结构
    • 1、for语句
    • 2、while语句
    • 3、break和continue语句
    • 4、循环结构中的else语句
    • 5、循环的嵌套

一、循环结构

最基本的复杂工作就是循环,要想写出的程序能够执行更加复杂的工作,就需要将循环问题进行实现。

1、for语句

for语句用一个循环控制器(Python中称为迭代器)来描述其语句块的重复执行方式,它的基本语法形式是:

for 变量 in 迭代器:
    语句块

由关键字for开始的行称为循环的头部,语句块称为循环体。语句块需要缩进,且块中各个语句的缩进量必须相同。
语句中包含了三个部分,其中最重要的就是迭代器,而下方的语句块就是需要重复运行的部分。通常一个迭代器描述一个值序列,变量依次取得迭代器中的值序列的每一个值,然后对每个值执行一次语句块,由于每次取到的值不一定相同,因此执行语句块的效果也不一定相同。

情况1:字符串作为迭代器
字符串类型本身就是一种迭代类型,可以直接放在for语句中作为迭代器使用。

for x in "abcdefg":
    print(x)

在上述for循环语句中,x作为变量,可以按顺序取到“abcdefg”中的每一个字符,反复执行语句“print(x)”,就输出了每一个字符,即最后输出的结果为“abcdefg”。

情况2:range()函数生成迭代序列
range是Python中的一个内置函数,调用这个函数就能产生一个迭代序列,因此适合放在for语句的头部,函数range有以下几种不同的调用方式:
(1)range(n),获得的迭代序列为0,1,2,…,n-1,当n<=0时序列为空。
(2)range(m,n),获得的迭代序列为m,m+1,m+2,…,n-1,当m>=n时序列为空。
(3)range(m,n,d),获得的迭代序列为m,m+d,m+2d,…,按步长d从m开始不断递增,直至最接近但不包括n的等差值,当d小于0时递减。
在这里插入图片描述

在这里插入图片描述

2、while语句

在for语句中,给出了迭代器,即重复的变量是给定了范围的,但是当范围不明确,而存在着清晰的循环条件时,可以采用while语句。
while语句中,用一个表示逻辑条件的表达式来控制循环,当条件成立的时候反复执行循环体,直至条件不成立时循环结束。

while 条件表达式:
    语句块

即每次循环首先判断条件表达式是否成立,如果条件表达式成立的话,执行下面的语句块,反之循环结束。
在这里插入图片描述

3、break和continue语句

for语句和while语句都是通过头部控制循环的执行,一旦进入循环体,就会完整地执行一遍其中的语句,然后再重复。实际中,我们也会遇到一些只执行循环体中的部分语句就结束循环或者立刻转去做下一次循环的情况,那么我们就需要用到循环控制语句break和continue。
break语句的作用是立刻结束整个for循环,continue语句的作用是结束这一轮的循环,程序跳转到循环头部,根据头部的要求继续。
在这里插入图片描述
在使用break时,当i为10的倍数,则停止循环,即输出数字为1到9,在使用continue时,当i为10的倍数。则回到循环头部,不执行下面的print语句,即不输出10和10的倍数。

4、循环结构中的else语句

在循环结构中else语句不是必须的,当循环条件不成立或序列遍历结束时,代码中有else语句则执行else语句,大部分因为break语句导致循环提前结束时,则不会执行else语句。else语句属于for循环结构的一部分,是对for循环由于序列遍历结束而自然退出时所做的处理。

for 变量 in 迭代器:
    语句块1
else:
    语句块2

在这里插入图片描述

5、循环的嵌套

在一个循环体中包含一个完整的循环结构,成为循环的嵌套,这种结构称为多重循环结构,内层循环中还可以包含新的循环,形成新的多重循环结构。

for 变量1 in 迭代器1:
    for 变量2 in 迭代器1:
        语句块

例:找出200以内的素数,如果一个正整不能被小于它的任意正整数整除,则其为素数。
在这里插入图片描述

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

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

相关文章

【剧前爆米花--爪哇岛寻宝】网络原理——ip地址管理,路由选择和数据链路层数据帧

作者&#xff1a;困了电视剧 专栏&#xff1a;《JavaEE初阶》 文章分布&#xff1a;这是一篇关于网络原理的文章&#xff0c;在这篇文章中我会具体介绍ip地址的分配管理&#xff0c;信息传输的路由选择以及以以太网来举例的数据链路层数据帧&#xff0c;希望对你有所帮助&#…

IDE /Qt Creator 文本编辑器之文件编码设置

文章目录 概述"QtCreator 文件编码" 配置项的使用效果将代码文件修改为GB2312编码"QtCreator 文件编码" 配置项的功能不会影响qml文件的加载方式改动pro文件的编码格式?其他 概述 在 Qt Creator 工具 - 选项 - 文本编辑器 - 行为选项卡中&#xff0c;存在…

RabbitMQ入门指南

人生永没有终点。只有等到你瞑目的那一刻&#xff0c;才能说你走完了人生路&#xff0c;在此之前&#xff0c;新的第一次始终有&#xff0c;新的挑战依然在&#xff0c;新的感悟不断涌现。 文章目录 一、MQ与RabbitMQ概述1. MQ简述2. MQ的优势3. MQ的劣势4. 常见的MQ产品5. Rab…

【Redis】Redis高可用

目录 主从复制1. 全量复制2. 增量复制3. 主从复制的问题&#xff08;1&#xff09;. 主从复制延迟&#xff08;2&#xff09;. 读到过期数据&#xff08;3&#xff09;. 主从配置不一致导致数据丢失&#xff08;4&#xff09;. 全量复制性能损耗大&#xff08;5&#xff09;. 主…

机器人动力学与控制学习笔记(十五)——机器人路径规划

十五、机器人路径规划 15.1 机器人运动规划 机器人运动规划包含三个层次的内容&#xff1a;即路径规划、轨迹规划、轨迹跟踪或轨迹控制。路径规划是确定不含时间信息的几何路径。一般的工业机器人中都含有点到点&#xff0c;直线&#xff0c;圆弧及样条曲线等常用轨迹的路径…

【进程】进程概念及相关函数实现

目录 0. 进程概述 1. 创建进程 1.1 进程的创建&#xff1a;fork函数 1.2 进程的等待&#xff1a;wait()、waitpid() 1.3 特殊进程&#xff1a;僵尸进程、孤儿进程、守护进程 1.4 进程的终止&#xff1a;exit和_exit函数 1.5 进程退出清理&#xff1a;atexit函数 1.6 进…

【我的创作纪念日】关于某站的音频爬虫+GUI

文章目录 一、前言&机遇二、爬虫代码三、爬虫GUI四、文件打包五、结果展示未来可期 一、前言&机遇 许久没看私信内容&#xff0c;一上线就看到了官方的私信&#xff0c;我已经来到CSDN1024天啦&#xff01; 想到注册这个号的初衷是学习记录爬虫&#xff0c;后面渐渐变…

抖音产业带服务商哪些类目在招募?开通需要什么条件?

5月&#xff0c;刚刚结束的抖音电商生态大会上&#xff0c;抖音电商总裁魏雯雯披露&#xff0c;近一年平台GMV增幅超80%。其中&#xff0c;商城GMV同比增长277%&#xff0c;电商搜索GMV同比增长159%&#xff0c;货架场景GMV在平台GMV占比超30%。过去一年&#xff0c;抖音电商直…

数据结构与算法——树与二叉树

&#x1f60a;数据结构与算法——树与二叉树 &#x1f680;前言&#x1f680;树&#x1f6a2;树的定义&#x1f6a2;树的基本术语&#x1f6a2;有序树和无序树&#x1f6a2;森林 &#x1f680;二叉树&#x1f6a2;二叉树的定义&#x1f6a2;二叉树的性质&#x1f6a2;满二叉树&…

【VUE】Element UI 表单校验出现async-validator: [‘discipline is required‘]报错

问题:async-validator: [discipline is required] 选择器已经获取到数值&#xff0c;却显示获取到 解决办法如下

线性规划算法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff1a;点击跳转 本文部分内容来自网友博客 一&#xff0c;线性规划 例如&#xff0c;一个企业“生产计划”的线性规划模型如下&#xff1a; 是subjec…

​如何优雅的卸载Edge浏览器

如何优雅的卸载Edge浏览器 由于Edge浏览器越来越复杂&#xff0c;功能越来越繁琐我是真的一刻也用不下去了。虽然我主力是火狐浏览器&#xff0c;Edge用来访问一些只能使用Chromium内核的网页作为备用。 但是我现在一打开Edge浏览器我就窝火&#xff0c;也懒得再去调整优化&a…

【表格树状】jqgrid表格树状折叠效果实现(附代码,留邮箱发demo)

【写在前面】有段时间没好好的整理一篇前端文章了&#xff0c;之前的6月城市活动也结束了&#xff0c;期待下周的榜单公布&#xff0c;其实这个月还有一个东西也让我牵肠挂肚的&#xff0c;就是软考的成绩也会在这个月的中旬公布&#xff0c;也是感觉很悬。既成定局&#xff0c…

【中间件-Openjob】高性能任务调度框架Openjob简介及快速搭建

介绍基础基础信息任务调度框架对比 特性高可靠高性能定时调度分布式计算延迟任务工作流程权限管理告警监控跨语言 安装访问docker-compose安装在线访问 总结 介绍 一款分布式高性能任务调度框架&#xff0c;支持多种定时任务、延时任务、工作流设计、轻量级分布式计算、无限水平…

el-form动态嵌套表单验证

v-for 遍历的表单校验 根据官网的介绍&#xff0c;是在 el-form-item 中使用 :rules 属性&#xff0c;同时 prop 属性直接定位到具体循环元素。这个用法的前提是在循环外面包裹一个 el-form 元素&#xff0c;v-for 位于 el-form-item 中。 <template><el-form:model…

深入浅出对话系统——对话管理与对话生成

引言 对话管理 我们知道对话管理主要包括状态追踪(DST)和策略优化(DPO)。 对话管理模块包含两个子任务&#xff1a; 对话状态追踪(Dialogue State Tracking) 根据用户输入和对话历史识别对话状态&#xff1b;策略学习(Policy Learning) 根据识别到的对话状态选择合适的下一步…

BC SU21 对象 ZJHD_LGO 已交付;只能进行有限更改

ECC 升级S4 库位从ECC的唯一库位 → S4 工厂 库位才能唯一。 那原先的 依据库存地 控制库位的zjhd打印机的权限需要新增工厂字段。 但是su21的修改的时候 提示 &#xff1a;对象 ZJHD_LGO 已交付&#xff1b;只能进行有限更改 查了一下&#xff0c;SAP官方说只能 把该权限…

HCIP第二次作业

要求&#xff1a;R1-R2-R3-R4-R5 RIP 100运行版本2 R6-R7 RIP 200 运行版本1 1.使用合理IP地址规划网络&#xff0c;各自创建环回接口 2.R1创建环回 172.16.1.1/24 172.16.2.1/24 172.16.3.1/24 3.要求R3使用R2访问R1环回 4.减少路由条目数量&#xff0c;R1-R2之间增加路由传递…

部署springboot项目读取外部配置文件

我们在部署springboot项目的时候&#xff0c;经常会遇到这样的情况&#xff1a;测试环境与生产环境的配置不一样&#xff0c;这就导致每次部署的时候都要修改配置文件再打包&#xff0c;即使用了nacos进行配置管理&#xff0c;但测试环境与生产环境的nacos部署的地方肯定不一样…

MyBatis简单入门

文章目录 快速入Mapper代理开发具体步骤使用mapper代理中的包扫描 查询字段名称不一致问题方法一&#xff1a;对SQL语句起别名方法二&#xff1a; 采用resultMap映射 条件查询单条件查询SQL中特殊字符的处理 多条件查询方式一&#xff1a;散装参数方式二&#xff1a;对象参数方…