从零开始学Python系列课程第13课:Python中的循环结构(上)

流程图.jpg

一、循环结构的应用场景及分类

我们在编写程序时,一定会遇到需要重复执行某些指令的场景。举一个简单的例子,在前面讲分支结构时以游戏通关为例,如果第一关结束时分值不够则通关失败需要重新闯关,重新闯关这就是一个重复性的动作,类似的还有很多相似场景,代入编程中就可以使用循环来解决这类问题,这就是我们今天要讲的“循环结构”。
所谓循环结构,就是程序中控制某条或某些指令重复执行的结构。在Python中构造循环结构有两种做法,一种是使用 for、in 关键字构造for-in循环,另一种是使用 while 关键字构造while循环

二、循环的构造讲解

for-in 循环

如果明确的知道问题需要重复的次数,我们推荐使用 for-in 循环来解决,同时 for-in 循环也是 Python 中非常常用的一种循环结构,for-in 循环适用于绝大部分问题。
举个简单的小例子,将“hello,world”重复打印 100 次:

for i in range(100):
    print("hello,world")

对上述代码做出解释:
(1)其中 range 是一个专门用来构造有规律的整数容器的方法,在此的 range(100)构造出来的是 [0, 99] 范围的容器,具体的 range 用法下篇文章来讲;
(2)for-in 循环结构循环次数取决于 in 关键字后面容器的长度,在此 range(100)构造出来的是包含 0~99 的容器,所以此处 for-in 循环执行 100 次;
(3)for-in 循环每执行一次,for 关键字后面的变量(此处为 i)就会在容器中拿出一个元素赋值;
(4)for-in 循环每执行一次,缩进中的代码块就会执行一遍。
由此大家记住 for-in 循环的语法:

for 变量 in 容器:
    代码块

while 循环

如果问题没有明确的循环次数,建议使用 while 循环。 while 循环通过一个能够产生 bool 值的表达式来控制循环,当表达式的值为 True 时继续循环,值为 False 时结束循环。
举个小例子:我们通过一个“猜数字”的小游戏来看看如何使用while循环。游戏规则:程序随机选取一个 1~100 之间的整数,玩家输入自己猜的数字,计算机给出对应的提示(再大一点、再小一点或者是猜中了),如果玩家猜中了数字,提示游戏结束。

import random

result = random.randint(1, 100)

flag = True
while flag:
    number = int(input('请输入:'))
    if number < result:
        print('再大一点')
    elif number > result:
        print('再小一点')
    else:
        print('恭喜你猜对了,游戏结束!')
        flag = False

对上述代码做出解释:
(1)random 模块是 Python 中的一个随机模块,我们借助其中的 randint 方法从 1~100 之间随机生成了一个整数;
(2)flag 这个变量便是一个表达式,用于控制 while 循环能否执行,每次 while 循环执行前都要判断 flag 的值是否为 True;
(3)当猜对后将 flag 的值由 True 变为 False,即可结束掉 while 循环,什么时候判断猜对便是由上节课讲的分支结构来判断。
我们再来介绍 while 循环的语法结构:

while 表达式:
    代码块

以上便是常用的循环结构的讲解,后续还会有习题供大家练习。

三、循环关键字 break 和 continue

我们人生不能永远停留在重复的事情上,程序也是如此,并不是说程序必须在设定的循环次数运行完以后停止,有时程序也要被及时中断,所以循环该停掉时就要做到当机立断,这里我们介绍 break 和 continue 两个循环关键字,帮助你在编程中更好的让程序“停止”。

  • break:在循环中如果 break 关键字被触发,break 所在的那一层循环立即结束。
  • continue:在循环中如果 continue 关键字被触发,continue 所在的那一层循环立即结束当前循环进入下一次循环。

我们举一个例子,来对比 break 和 continue:

for i in range(1, 6):
    if i == 3:
        print('***')
        continue
        print('+++')
    else:
        print(i)
"""
1
2
***
4
5
"""

for i in range(1, 6):
    if i == 3:
        print('***')
        break
        print('+++')
    else:
        print(i)
"""
1
2
***
"""

上述我们分别给出来两段代码和运行结果,大家可以看到+++是没有被打印的,证明了两个关键字立即结束的作用;continue 打印了 4 和 5 而 break 没有打印 4 和 5,证明了 break 是立刻结束循环而 continue 还可以进入下一次循环。

四、总结

Python 中的循环结构(上)给大家讲述的就是基础中比较重要的知识点了,希望大家在学习之余还能够自行搜寻更多的资料,争取早日融会贯通。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

概率的乘法公式

两个事件的情况 假设A、B为随机事件&#xff0c;并且事件A的概率&#xff0c;那么 三个事件的情况 假设A、B、C为随机事件&#xff0c;并且&#xff0c;那么 多个事件的情况 假设为随机事件&#xff0c;其中&#xff0c;并且&#xff0c;那么

Resolving ORA-600[3020] Raised During Recovery

Resolving ORA-600[3020] Raised During Recovery (Doc ID 361172.1)​编辑To Bottom In this Document Symptoms Changes Cause Solution References APPLIES TO: Oracle Database Exadata Cloud Machine - Version N/A and later Oracle Cloud Infrastructure - Database Ser…

Arduino中以太网Udp通信

目录 1、测试硬件 2、程序 &#xff08;0&#xff09;头文件添加 &#xff08;1&#xff09;变量定义 &#xff08;2&#xff09;初始化程序 &#xff08;3&#xff09;循环执行程序 3、程序下载 &#xff08;1&#xff09;开发板控制器和端口号选择 &#xff08;2&am…

淘宝订单API接口在电商行业中的应用与实现

一、引言 随着电商行业的快速发展&#xff0c;订单处理成为电商运营的核心环节。淘宝作为中国最大的电商平台之一&#xff0c;其订单API接口在电商行业中的应用越来越广泛。本文将详细介绍淘宝订单API接口在电商行业中的应用&#xff0c;并深入剖析相关的技术细节&#xff0c;…

基于级联式逆残差网络的遥感图像轻量目标检测算法

源自&#xff1a;电子学报 作者&#xff1a;陈立 张帆 郭威 黄赟 李继中 “人工智能技术与咨询” 发布 摘 要 遥感场景下的高实时目标检测任务具有重要的研究价值与应用意义. 针对当前遥感图像目标检测模型由于目标多角度、排列密集以及背景复杂从而导致检测速度慢的…

免费且好用的 MySQL 客户端

DBeaver 支持 Mac、Windows、Linux&#xff0c;提供 Eclipse 插件。社区版免费&#xff0c;支持主流的关系型数据库 官网地址&#xff1a;DBeaver Community | Free Universal Database Tool MySQL WorkBench MySQL WorkBench 是官方出品的客户端&#xff0c;支持 Mac、Windo…

QVTK 可视化

#ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow>#include <vtkNew.h> // 智能指针 #include <QVTKOpenGLNativeWidget.h> #include <vtkCylinderSource.h> // 圆柱#include <vtkPolyDataMapper.h&g…

JVM虚拟机系统性学习-垃圾回收器Serial、ParNew、Parallel Scavenge和Parallel Old

垃圾回收器 有 8 种垃圾回收器&#xff0c;分别用于不同分代的垃圾回收&#xff1a; 新生代回收器&#xff1a;Serial、ParNew、Parallel Scavenge老年代回收器&#xff1a;Serial Old、Parallel Old、CMS整堆回收器&#xff1a;G1、ZGC Serial&#xff1a;串行回收 Serial是…

圣诞节酷炫特效合集【含十几个HTML+CSS前端特效+34个桌面酷炫圣诞程序】

写在前面 ❤️源码获取:订阅后见文末 ❤️内容介绍:包含HTML+CSS等十几个圣诞特效;以及三十四个桌面酷炫圣诞树合集 ❤️订阅后所得如下: ❤️HTML圣诞+桌面圣诞程序效果如下: 下方展示代码仅举例其中几个 所有效果源码及文件订阅后找博主获取即可 🎄css3圣诞雪人动…

git分支查询与回退(终端命令行方式)

必要性 git的记录查询与回退是开发者必须会的一个要素,因为很少有人能做到代码管理没有任何问题 而且就算你能做到,你也需要会查询与回退分支 查询所有记录 当你在开发的时候,你突然想查看自己之前的提交记录,你可以使用下面这个命令 git log 虽然一下只会展示一小部分,但…

【Python】__init__.py文件的使用

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、__init__.py文件1.不创建__init__.py文件2.创建__init__.py文件 二、使用1.设置公共参数2.写from .** import **3.__all__ import * …

NXP应用随记(二):S32K3xx内存随记

目录 1、TCM 1.1、代码放置在ITCM的方式 __attribute__ 的函数属性 __attribute__ 的变量属性 __attribute__ 的类型属性 __attribute__ 的优化控制属性 1.2、DTCM 1.3、TCM的使用注意事项 1、TCM CMTightly Coupled Memory&#xff0c;是一种高速缓存&#xff0c;据说是…

[HTML]Web前端开发技术2(HTML5、CSS3、JavaScript )格式化文本标记,定义列表,<blockquote>,definition description,ruby——喵喵画网页

希望你开心&#xff0c;希望你健康&#xff0c;希望你幸福&#xff0c;希望你点赞&#xff01; 最后的最后&#xff0c;关注喵&#xff0c;关注喵&#xff0c;关注喵&#xff0c;大大会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我真的…

深圳移动与大富科技助力深圳人工智能教育高质量发展

12月12日&#xff0c;中国移动通信集团广东有限公司深圳分公司(以下简称“深圳移动”) 与大富科技&#xff08;安徽&#xff09;股份有限公司&#xff08;以下简称“大富科技”&#xff09;在中国移动深圳信息大厦签署“战略合作框架协议”&#xff0c;共同推进人工智能教育、I…

CanEasy多场景应用,让汽车总线测试更简单

来源&#xff1a;虹科汽车电子 虹科分享 | CanEasy多场景应用&#xff0c;让汽车总线测试更简单 原文链接&#xff1a;https://mp.weixin.qq.com/s/ojic4xfVTLbxXcKlJMGQZw 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; 导读 CanEasy是一个基于Windows的总线工具&…

Linux 高级管理,安装MySQL数据库

1.准备工作 &#xff08;1&#xff09;为了避免发生端口冲突&#xff0c;程序冲突等现象&#xff0c;建议先查询MySQL软件的安装情况&#xff0c;确认没有 使用以RPM方式安装的mysql-server、mysql软件包&#xff0c;否则建议将其卸载。 [rootnode01 ~]# rpm -q mysql-server…

安全算法(一):安全技术、加密的基础知识、哈希函数的简单介绍

安全算法&#xff08;一&#xff09;&#xff1a;安全技术、加密的基础知识、哈希函数的简单介绍 通过互联网交换数据时&#xff0c;数据要经过各种各样的网络和设备才能传到对方那里。数据在传输过程中有可能会经过某些恶意用户的设备&#xff0c;从而导致内容被盗取。 因此…

智慧储能数字孪生:能源未来的智慧引擎

随着社会对清洁能源的需求不断增加&#xff0c;智能储能技术成为能源转型的关键驱动力。在这一领域中&#xff0c;数字孪生技术的应用为智慧储能带来了全新的可能性。数字孪生是指数字化、实时、可视化的模拟系统&#xff0c;通过复制现实世界中的对象或过程&#xff0c;为智能…

nestjs守卫校验jwt

目标 部分接口需要用户登录后才可以访问&#xff0c;用户登录后可以颁发 jwt_token 给前端&#xff0c;前端在调用需要鉴权的接口&#xff0c;需要在请求头添加 jwt_token&#xff0c;后端校验通过才能继续访问&#xff0c;否则返回403无权访问 创建守卫 anth 安装依赖 npm…

数据库设计规范编制文档

本文的目的是提出针对Oracle数据库的设计规范&#xff0c;使利用Oracle数据库进行设计开发的系统严格遵守本规范的相关约定&#xff0c;建立统一规范、稳定、优化的数据模型。 参照以下原则进行数据库设计&#xff1a; 1) 方便业务功能实现、业务功能扩展&#xff1b; 2) 方便设…