Python 语句(二)【循环语句】

循环语句允许执行一个语句或语句组多次,其程序流程图如下:

在这里插入图片描述

在python中有三种循环方式:

  1. while 循环 当判断条件为 true 时执行循环体,否则退出循环体。
  2. for 循环 重复执行语句
  3. 嵌套循环 (在while循环体中嵌套for循环)

Python三种循环控制语句:(循环控制语句可以更改语句执行的顺序。)

  1. break 语句 在执行过程中终止循环,并跳出整个循环 。
  2. continue 语句 在块执行过程中终止当前循环,跳出该次循环,执行下一次循环。
  3. pass 语句 是空语句,是为了保持程序结构的完整性。

一、while循环

判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
当判断条件假 false 时,循环结束。

1 基础应用

其基本形式为:while 判断条件(condition):执行语句(statements)……
a=1
while a<=10:print(a)a+=1

在这里插入图片描述

2 while 与 continue,break,else 连用。

continue 用于跳过该次循环。
break 则是用于退出循环。
两者对比如下:

i = 1
while i < 10:i += 1if i % 3 > 0:  # 非3的倍数时跳过输出continueprint(i) # 输出3的倍数

在这里插入图片描述

i = 1
while i < 10:i += 1if i % 3 > 0:  # 非3的倍数时跳过改循环breakprint(i) # 输出3的倍数

在这里插入图片描述

while … else,else 中的语句会在循环正常执行完(即 while不是通过 break 跳出而中断的)的情况下执行

number = 0
while number < 10:print (number, " is  less than 10")number = number + 3
else:print (number, " is not less than 5")

在这里插入图片描述

3 无限循环(常值循环)

"判断条件"为常值,表示循环一定成立,若没有break或continue,将一直循环下去。

while  1:  # 该条件永远为true,循环将无限执行下去num = input("Enter a number  :")print( "You entered: ", num)

在这里插入图片描述

while  1:  # 该条件永远为true,循环将无限执行下去num = input("Enter a number  :")print( "You entered: ", num)break

在这里插入图片描述

二、For 循环

for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

1 基础用法

 for iterating_var in sequence:statements(s)
for str in 'happy':  # 第一个实例print("str: %s" % str)names = ['lucy', 'lily', 'Jack']
for name in names:  # 第二个实例print('name: %s' % name)print("Good bye!")

在这里插入图片描述

2 通过序列索引进行遍历

names = ['lucy', 'lily', 'Jack']
for index in range(len(names)):print('name: %s' % names[index])print("Good bye!")

在这里插入图片描述

内置函数 len() 和 range(),函数 len() 返回列表的长度,即元素的个数。
range()返回一个序列的数。
index() :用来对列表做索引的函数。

str1="this is string example ...wow!"
str2="exam"
print(str1.index(str2))

在这里插入图片描述

3 for与else连用

for num in range(1,10):  # 迭代 10 到 20 (不包含) 之间的数字for i in range(2,num): # 根据因子迭代if num%i == 0:      # 确定第一个因子j=num/i          # 计算第二个因子print ('%d 等于 %d * %d' % (num,i,j))break            # 跳出当前循环else:                  # 循环的 else 部分print ('%d 是一个质数' % num)

在这里插入图片描述

三、嵌套循环

顾名思义就是在一个循环体里面嵌入另一个循环。
在while循环中可以嵌入for循环, 反之,你可以在for循环中嵌入while循环

1、for 嵌套

格式如下:

for iterating_var in sequence:for iterating_var in sequence:statements(s)statements(s)

使用for 循环实现:获取100以内的质数

num=[];
i=2
for i in range(2,100):j=2for j in range(2,i):if(i%j==0):breakelse:num.append(i)
print(num)

结果如下:
在这里插入图片描述

2、while嵌套

格式如下:

while expression:while expression:statement(s)statement(s)

使用了while嵌套循环输出2~100之间的素数。示例如下:

i = 2
while (i < 100):j = 2while (j <= (i / j)):  #非素数跑这里if not (i % j): # i % j 为false 跳出breakj = j + 1if (j > i / j):  #素数跑到这个print(i, " 是素数")i = i + 1print("Good bye!")

结果如下:
在这里插入图片描述

3、for和while循环嵌套

格式如下:(这种结构可以用来解决一些需要逐行或者逐个元素进行操作的问题)

for item in iterable:while condition:#执行操作

逐行读取字符串,示例如下

with open('data.txt','r')as file:#使用相对路径 打开文件for line in file:line=line.strip() #strip:用于移除字符串头尾指定的字符(默认为空格)或字符序列。注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。while line:#处理每一行的内容print(line)line = line[1:] #去除第一个字符with open("data.txt", "r") as file:  #使用绝对路径 开文件data = file.read()  #读取文件print(data)

结果如下:
在这里插入图片描述

注意:data.txt要与.py文件放在同一目录下。

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

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

相关文章

鸿蒙开发之gson解析

作为老牌的Java程序员,几乎每个项目都逃不掉fastjson/gson等三方库。那么在OpenHarmony/HarmonyOS应用开发中,做数据解析时能不能使用fastjson/gson三方库呢?于是我搜索了一下,其实在arkts开发过程中也是可以使用JS里自带的JSONparse和JSONstringify方法来实现JSON和对象转…

monkey事件

操作事件简介 Monkey所执行的随机事件流中包含11大事件,分别是触摸事件、手势事件、二指缩放事件、轨迹事件、屏幕旋转事件、基本导航事件、主要导航事件、系统按键事件、启动Activity事件、键盘事件、其他类型事件。Monkey通过这11大事件来模拟用户的常规操作,对手机App进行…

Java - Spring MVC 实现跨域资源 CORS 请求

据我所知道的是有三种方式&#xff1a;Tomcat 配置、拦截器设置响应头和使用 Spring MVC 4.2。 设置 Tomcat 这种方式就是引用别人封装好的两个 jar 包&#xff0c;配置一下web.xml就行了。我也并不推荐&#xff0c;这里放两个我在网上找到的配置相关文章&#xff0c;感兴趣可…

Netty架构

Netty逻辑架构 Netty 的逻辑处理架构为典型网络分层架构设计&#xff0c;网络通信层、事件调度层、服务编排层。 一、 网络通信层 网络通信层的职责是执行网络 I/O 的操作。它支持多种网络协议和 I/O 模型的连接操作。当网络数据读取到内核缓冲区后&#xff0c;会触发网络事件…

OSPF NSSA实验简述

OSPF NSSA实验简述 1、OSPF NSSA区域配置 为解决末端区域维护过大LSDB带来的问题&#xff0c;通过配置stub 区域或totally stub区域可以解决&#xff0c;但是他们都不能引入外部路由场景。 No so stuby area &#xff08;区域&#xff09;NSSA 可以引入外部路由&#xff0c;支持…

北斗卫星技术助力环卫车智能化改造

北斗卫星技术助力环卫车智能化改造 在现代城市环境中&#xff0c;环卫工作一直是一项重要的公共服务&#xff0c;而环卫车则是环卫工作的重要工具之一。随着科技的不断发展和进步&#xff0c;北斗卫星技术的应用逐渐走进了人们的视野&#xff0c;为环卫车的智能化改造提供了全…

2024年【道路运输企业安全生产管理人员】复审考试及道路运输企业安全生产管理人员模拟考试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年道路运输企业安全生产管理人员复审考试为正在备考道路运输企业安全生产管理人员操作证的学员准备的理论考试专题&#xff0c;每个月更新的道路运输企业安全生产管理人员模拟考试题祝您顺利通过道路运输企业安全…

脉宽调制PWM控制器有哪些国产替代可选择?

一、脉宽调制PWM简介 PWM的理论基础为面积等效原理&#xff0c;这个原理简单描述就是冲量相等&#xff08;信号对时间的积分&#xff0c;即面积&#xff09;而形状不同的窄脉冲加在具有惯性的环节上时&#xff0c;其效果基本相同。冲量相等而形状不同的窄脉冲加在具有惯性的环…

Spring MVC配置MyBatis vs. Spring Boot配置MyBatis

在Java Web开发中&#xff0c;MyBatis是一个常用的持久层框架&#xff0c;用于简化数据库访问操作。在Spring框架中&#xff0c;我们可以通过Spring MVC和Spring Boot两种方式来集成MyBatis&#xff0c;本文将比较这两种方式的优缺点&#xff0c;并展示它们的具体代码实现。 S…

链表基础知识详解

链表是一种常见的数据结构&#xff0c;它由一系列节点组成&#xff0c;每个节点包含两部分&#xff1a;一部分是数据域&#xff0c;用于存储实际的数据元素&#xff1b;另一部分是指针域&#xff0c;用于指向链表中的下一个节点。链表中的节点可以动态地添加、删除&#xff0c;…

计算机基础专升本笔记十二-Excel常用快捷键大全

计算机基础专升本笔记十二-Excel常用快捷键大全 Excel常用快捷键 按键作用Ctrl 0隐藏列Ctrl 1设置单元格格式Ctrl 2添加或取消字体加粗Ctrl 3添加或取消字体倾斜Ctrl 4添加或取消下划线Ctrl 5添加或取消删除线Ctrl 6隐藏或显示图形Ctrl 7隐藏工具栏Ctrl 8隐藏或显示…

虾皮、lazada店铺运营攻略,如何搭建高效、稳定的自养号测评系统

随着电子商务的蓬勃发展&#xff0c;越来越多的人选择在虾皮这样的电商平台上开设店铺&#xff0c;以实现创业梦想。但如何在众多店铺中脱颖而出&#xff0c;成为消费者的首选?本文将为您详细解答“怎么样做好虾皮店铺”&#xff0c;并提供一些实用的运营建议。 一、怎么样做…

【文献计量】安装endnote注意事项

1.前言 EndNote 是一款广受学者、研究人员、学生和图书管理员等使用的参考管理软件。它由 Clarivate Analytics 开发&#xff0c;用于管理文献引用和编排参考文献列表。EndNote 可以帮助用户在撰写科研论文、书籍或任何学术出版物时&#xff0c;高效地组织、管理和引用研究资料…

C++ 有边数限制的最短路 Bellman_ford算法(带负权边)

给定一个 n 个点 m 条边的有向图&#xff0c;图中可能存在重边和自环&#xff0c; 边权可能为负数。 请你求出从 1 号点到 n 号点的最多经过 k 条边的最短距离&#xff0c;如果无法从 1 号点走到 n 号点&#xff0c;输出 impossible。 注意&#xff1a;图中可能 存在负权回路…

第3部分 原理篇3可验证凭证(VC)(1)

3.3. 可验证凭证 3.3.1. 本节内容概述 本聪老师&#xff1a;今天开始去中心化身份中另一个最重要的概念可验证凭证&#xff08;verifiable credential&#xff09;的学习。凭证&#xff0c;也就是证件&#xff0c;在人类生活中不可或缺。可验证凭证实现了凭证的机器可读、加密…

Vmware创建共享文件夹

具体设置步骤如下&#xff1a; 打开 “设置 -> 选项 -> 共享文件夹” 点击 “选项 -> 共享文件夹 ->选择总是开启 ->添加” 添加共享文件夹 选择主机路径和设置名称 选择启用此共享&#xff0c;并且点击完成退出。 挂载操作 在root用户下执行具体命令如下&…

前端项目代码规范 ----- 配置eslint规范,增加Git工作流规范

已实践&#xff0c;管用 ------ 在项目触发eslint规范 vscode配置eslint格式化vue&#xff0c;eslint不好使的问题_vue/html-indent-CSDN博客 增加Git 工作流 前端规范之Git工作流规范 Husky lint-staged_.lintstagedrc-CSDN博客 ------ 另外&#xff0c;在package.js…

mysql 时间精度问题

timestamp到2038年&#xff0c;还有14年时间&#xff0c;一个系统如果能活到那一刻也是相当不错了。 这里先看一下个datetime的问题,下面的插入数据的时间戳是2024-03-06 21:20:50.839 INSERT INTO psi_io_balance ( id, as_id, bill_date, order_id, busi_type, direction, c…

JavaScript事件代理

事件代理 事件代理&#xff0c;通俗来讲&#xff0c;就是把一个元素响应事件&#xff08;click、keydown......&#xff09;的函数委托到另一个元素 应用场景一般都是在有一个列表之中有大量的列表项&#xff0c;需要在点击列表项的时候响应一个事件 这时候就可以事件委托&a…

安卓简单登录

注意 有的朋友不知道登录咋写&#xff0c;这里我就简单给出相应代码&#xff0c;用的本地存储&#xff0c;没用网络请求&#xff0c;有需要可以替换成想要的&#xff0c;废话不多上代码 登录 import androidx.appcompat.app.AppCompatActivity;import android.content.Context…