Python基础 —— 循环语句

news2024/11/17 19:32:16

img

如约来更新循环语句了.说到循环,有一定编程基础的小伙伴们都知道,我们最常用的循环莫过于 while循环,for循环和goto循环(不过goto也不怎么常用),所以今天就来说一说 while循环和 for循环

来看一下本文大致结构:

  • while 循环
  • break语句continue语句
  • for 循环

一、while 循环

while循环 除了需要使用缩进来执行循环体里的语句,其它几乎和C语言相同。

  • 流程图

img

  • 格式
while 条件语句:
	执行的语句1
	执行的语句2
	...
	执行的语句N

当条件语句为真(True)时,就会执行while循环下的语句

  • 示例

下面的代码用于实现 1到100 的累加并输出:

sum=0
i=1
while i <= 100:
	sum=sum+i
	i=i+1               #注意:Python中没有 i++ 或 i-- 这种自增或自减运算符
print(sum)

其次,while中的条件语句可以不唯一,但是不再像C语言一样用 &&||! 等逻辑运算符(因为Python中没有这些),而是用 and(与),or(或),not(非) 这三个Python中有的逻辑运算符来进行多个条件的连接。

例如:

a = 1
while a==1 or a==2:    #当 a等于1 或 a等于2 进行while循环
	a = a + 1
print(a)               #输出 3
  • 死循环

当我们需要计数很多次,甚至连我们自己也不知道要计数多少次的时候,死循环或许是一个不错的选择,while死循环一般格式如下:

while True:         #使条件始终为真 例如" while 2>1: "
	执行的语句1
	执行的语句2
	...
	执行的语句N
  • while…else… 结构

其次,介绍一下 while…else…结构 ,不过不常用。

格式如下:

while 条件语句:     
	执行的语句1
	执行的语句2
	...
	执行的语句N
else:
	执行的语句N+1
	执行的语句N+2
	...

while的条件语句为真时,执行下面的语句1到语句N,当条件为假时,执行else下面的语句。


二、break语句 和 continue语句

这两个语句都是在循环中发挥作用的,用于对循环结构的操作

1. break 语句

break 语句 可以立即终止当前循环的执行,跳出当前所在的循环结构。

举个例子,假如你打算把课本复习10遍,当你复习第三遍时,突然旁边的手机对你使用了break语句,你便停止了循环的复习,开始执行循环复习之外的事情。

  • break语句的一般格式:
while True:
	执行的语句1
	执行的语句2
	break          #break语句后面的语句就不再执行了,并跳出循环
	...
	执行的语句N

上面的代码中,当循环里的语句执行到break语句时,循环就被中断了(就像你的复习一样被打断了),就开始执行while循环后的语句了。

2. continue 语句

continue 语句 也是在循环中起作用,它会终止执行本次循环中剩下的代码,直接从下一次循环继续执行。

同样举个例子,同样假如你要把课本复习10遍,你复习第三遍时,一阵风把你的书吹合上了,你忘记是第几页了,便只能从头开始看。这时,这阵风就相当于continue语句,结束了当前循环,但还会进行下一次循环。

  • continue语句的一般格式:
while True:
	执行的语句1
	执行的语句2
	continue       #continue语句后面的语句在这次循环不再执行,但在下次循环还会执行,并不会跳出循环
	...
	执行的语句N

上面的代码中,当循环里的语句执行到continue语句时,这次循环就被中断了(就像风吹乱了你的课本),还会执行下一次的循环。


三、for 循环

  • range()函数

说到for循环,就必然要说到它的好兄弟range()函数,因为很多有for循环的地方都能用到它。所以我们先来讲讲range()函数。

功能:根据起始数字终止数字步长 来返回 可迭代对象 (在Python3中,Python2返回的是列表,这里不做深究)

格式:

range(起始数字,终止数字,步长)

起始数字:开始计数的数字;默认为0,所以该项在写时可省略,例如 range(10) 等价于 range(0,10)

终止数字:终止计算的数字,但不包含该项,例如 range(0,3) 依次返回 0,1,2,并不包含 3 ;无默认值,所以该项必填;

步长:就是连续返回的两个数字间隔大小,例如 range(0,10,3) 依次返回 0,3,6,9,每两个相邻数字之间间隔大小为3;其次,步长可为负数,用法和正数差不多,例如 range(10,0,-3) 依次返回 10,7,4,1,相邻两个数字相差 -3


  • for 循环

for循环想必学过C语言的同学是再了解不过了,但是Python中for循环的语法相对于C语言中有了较大不同,所以千万不要把两者弄混了哦!

流程图

img

格式:

for 变量名 in 可迭代对象名:
	执行的语句1
	执行的语句2
	...
	执行的语句N

此处我们只讨论for循环与range函数有关的用法;

例子:

我们用for循环来改写上面 1100 的累加

sum = 0
i = 1
for i in range(1,101,1):
	sum = sum + i
print(sum)

for…else 结构

这个和 while…else结构 一样不常用,大致格式为

for 变量名 in 可迭代对象名:
	执行的语句1
	执行的语句2
	...
	执行的语句N
else:
	执行的语句N+1
	执行的语句N+2
	...

它会在上面的for循环执行完之后,执行else下面的语句,和 while…else结构 差不多。


到这里,本节就结束了,感兴趣的小伙伴可以看一下下面的题目哦!

四、题目

请用Python实现并计算 1x2x3+3x4x5+…+99x100x101的结果并输出。

答案: while循环版:

sum = 0
i=1
while i<=99:
	sum = sum + i*(i+1)*(i+2)
	i = i + 2
print(sum)

for循环版:

sum = 0
i=1
for i in range(1,101,2):
	sum = sum + i*(i+1)*(i+2)
print(sum)

本节到这里就结束了,欢迎观看下期哦!

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

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

相关文章

IMX6ULL系统移植篇-uboot基础命令

一. uboot 启动 当设备上电启动时&#xff0c;需要马上按下回车键&#xff0c;开发板启动会停止在 uboot的启动Log信息时刻。 这就是 uboot的命令模式&#xff0c;即可以输入 uboot命令进行一些操作。 二. uboot 基础命令 1. help 命令 当开发板上电启动后&#xff0c;马…

电脑如何设置外网内网一起使用

如果你的电脑支持连接无线网&#xff0c;就可以设置内网外网一起使用。一般情况下&#xff0c;连接无线网还是网线都是系统自动链接的,但有时候开发中需要内网外网一块使用&#xff0c;不用手动切换网络。 首先确保我们的电脑有双网卡&#xff0c;可以两个都是有线网卡&#xf…

【机械臂视觉抓取从理论到实战】

1. 概述 GR-CNN&#xff1a;https://paperswithcode.com/paper/antipodal-robotic-grasping-using-generative 2. 环境搭建及模型训练 GR-CNN&#xff1a;https://github.com/skumra/robotic-grasping 下载源码创建环境 #下载robotic-grasping源码 git clone https://github.…

CVE-2021-3493:Overlay 文件系统 Ubuntu 本地提权漏洞分析

分析此漏洞的文章非常多&#xff0c;在此只是记录一下复现漏洞的过程以及对漏洞的个人理解。Linux 内核漏洞有一定的准入门槛&#xff0c;不适合小白阅读。 基本信息 [影响范围] Ubuntu 14.04 ~20.10 [漏洞描述] Ubuntu 内核代码允许低权限用户在使用 unshare() 函数创建的…

李彦宏:AI原生应用比大模型数量更重要

6月26日&#xff0c;百度创始人、董事长兼首席执行官李彦宏出席“世界互联网大会数字文明尼山对话”&#xff0c;发表了题为 《大模型重塑数字世界》 的演讲。 大模型是当下全球科技创新的焦点&#xff0c;也是全球人工智能竞赛的主战场。李彦宏认为&#xff0c;“新的国际竞争…

箱线图概念和使用介绍

箱线图时一种针对连续型变量的统计图。通常用作比较。 箱子中间的一条线&#xff0c;是数据的中位数&#xff0c;代表了数据的平均水平。 箱子的上限和下限&#xff0c;分别是数据的上四分位数和下四分位数&#xff0c;意味着箱子包含50%的数据。因此&#xff0c;箱子的高度在…

23.RocketMQ之NameServer处理Broker心跳包,更新本地路由信息

NameServer处理Broker心跳包,更新本地路由信息 DefaultRequestProcessor继承自NettyRequestProcessor:处理各种客户端的请求&#xff0c;如果请求类型是为REGISTER_BROKER&#xff0c;则将请求转发到RouteInfoManager#regiesterBroker,主要是服务器端 或者客户端或者broker发送…

go语言环境安装

文章目录 环境介绍安装软件包步骤环境变量设置来一个经典的hello worldNice 最近的项目需要用到go来开发了&#xff0c;前几天就已经在看书了&#xff0c;今天是个周末&#xff0c;先在家里的机器上把环境搭好&#xff0c;特此记录一下。 环境介绍 下载地址&#xff1a;https:…

RRT 算法研究(附 Python / C++ 实现)

RRT 算法研究 参考 机器人路径规划、轨迹优化课程-第五讲-RRT算法原理和代码讲解 机器人路径规划之RRT算法(附C源码) RRT算法(快速拓展随机树)的Python实现 《基于改进RRT算法的路径规划研究》 《面向室内复杂场景的移动机器人快速路径规划算法研究》 理论基础 RRT&#xff0…

meb stm32开发

matlab1028b以上 stm32cubemx5.6.0以上 stm32-mat/target 教程与代码分享 - 知乎 安装好这些后&#xff0c;打开matlab&#xff0c;打开路径STM32-MAT\STM32 打开simulink&#xff0c;view-lib 可以看到 在STM32CUBEMX完成底层配置&#xff0c;生成ioc文件

UI的绘制流程

1.App的启动流程 每个App都是一个独立的进程&#xff0c;当一个app启动的时候&#xff0c;当前进程也被启动&#xff0c;在Android中有一个类ActivityThread&#xff0c;就是进程的初始类&#xff0c;其中main方法就是整个app的入口。ActivityThread并不是一个线程&#xff0c;…

Java并发编程中的JMM、3个基本属性、synchronized和volatile

1、Java内存模型JMM (Java Meemory Model) JMM规定&#xff0c;所有变量均存储在主内存中每个线程都有自己的工作内存&#xff0c;保存了该线程中用到的变量的主内存副本拷贝线程对变量的所有操作&#xff0c;必须在自己的工作内存中&#xff0c;不可直接读写主内存不同线程无法…

2023-6-29-第十一式代理模式

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…

C++primer(第五版)第八章(IO库)

8.1 IO库 上表中以w开头的类型和函数是C标准库为了支持使用宽字符的语言而定义的一组类型和对象来操纵wchar_t类型的数据.(然而我没有遇到过) 8.1.1 IO对象无拷贝或赋值 IO对象不能拷贝或赋值,通常用引用方式传递和返回流,由于读写一个IO对象回改变其状态,因此传递和返回的引…

Cetos7.x连接不上网络解决办法

Cetos7.x连接不上网络解决办法 Cetos7.x连接不上网络解决办法 在VM中设置网络连接为桥接&#xff0c;修改后仍无法连接网络 ##配置centos7中ens33&#xff0c;将默认的no修改为yes 启动CentOS系统&#xff0c;并打开一个连接终端会话&#xff0c;使用root登录&#xff1b;进…

tomcat多台应该怎么能设置

一个tomcat一般能处理5000-1000的并发量但是还是远远不够我们可以设置多台来满足我们的要求 首先进入tomcat目录 配置tomcat环境变量 vim /etc/profile.d/tomcat.sh 然后刷新 source /etc/profile.d/tomcat.sh 修改tomcat1里面的配置文件 然后进入tomcat1中的启动bin程序中…

Docker安装、常见命令、安装常见容器(Mysql、Redis等)

目录 一、Docker安装 二、Docker常见命令 2.1 镜像命令 2.2 容器命令 2.3 总结 2.4 容器挂载-容器卷技术 三、Docker安装mysql容器 3.1 下载镜像文件 3.2 创建实例并启动 3.3 MySQL 配置 3.4 进入容器文件系统 四、Docker安装Redis 一、Docker安装 官网安装指引&a…

SSM框架原理畅谈之SpringMVC

SpringMVC 一、Java SE Servlet标准1.1 Servlet 接口1.2 HttpServletRequest 接口1.3 HttpServletResponse 接口1.4 Cookie 对象1.5 Filter 接口1.6 HttpSession 接口 二、SpringMVC2.1 Spring MVC核心概念2.2 DispatcherServlet2.3 DispatcherServlet.init()2.4 DispatcherSer…

第三章 搜索与图论(一)——深搜,广搜,图的存储与拓扑序列

文章目录 深度优先搜索广度优先搜索树和图的存储图的深搜 拓扑序深搜练习题842. 排列数字843. n-皇后问题 广搜练习题844. 走迷宫845. 八数码 树和图的存储与遍历练习题846. 树的重心847. 图中点的层次 拓扑序练习题848. 有向图的拓扑序列 深度优先搜索 数据结构&#xff1a; …

常见排序算法详解

文章目录 前言1. 排序算法简介2 算法效率2.1 度量一个程序执行时间两种方法2.2 时间频度2.3 时间复杂度2.4 常见的时间复杂度2.5 平均和最坏时间复杂度 3. 常见排序算法详解3.1 基数排序 (Radix Sort)(1) 算法过程(2)代码实现 3.2 冒泡排序 (Bubble Sort)(1) 算法过程(2) 代码实…