python -- 循环语句

你好, 我是木木, 目前正在做两件事
  1. 沉淀自己的专业知识
  2. 探索了解各种副业项目,同时将探索过程进行分享,帮助自己以及更多朋友找到副业, 做好副业

文末有惊喜


循环语句

1、什么是循环语句

一般编程语言都有循环语句,为什么呢?

那就问一下自己,我们弄程序是为了干什么?

那肯定是为了方便我们工作,优化我们的工作效率啊。

而计算机和人类不同,计算机不怕苦也不怕累,也不需要休息,可以一直做。

你要知道,计算机最擅长就是做重复的事情。

所以这时候需要用到循环语句,循环语句允许我们执行一个语句或语句组多次。

循环语句的一般形式如下:

python循环语句

在 Python 提供了 for 循环和 while 循环。

这里又有一个问题了,如果我想让他运行了一百次之后停止,那该怎么做呢?

这时候需要用到一些控制循环的语句:

循环控制语句描述
break在语句块执行过程中终止循环,并且跳出整个循环
continue在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环
passpass 是空语句,是为了保持程序结构的完整性

这些控制语句是为了让我们告诉程序什么时候停止,什么时候不运行这次循环。

2、 for 循环语句

我们先来看下 for 循环语句。

它的流程图基本如下:

for循环的流程图

基本的语法格式:

for iterating_var in sequence:
   statements(s)

那么我们根据他的基本语法格式,随便写个例子测试一下:

for letter in 'Hello 两点水':
    print(letter)

输出的结果如下:

H
e
l
l
o

两
点
水

从打印结果来看,它就是把字符串 Hello 两点水 一个一个字符的打印出来。

那如果我们把字符串换为字典 dict 呢?

你会发现只打印了字典 dict 中的每一个 key 值。

很多时候,我都是建议大家学到一个新的知识点,都多去尝试。

你尝试一遍,自己观察出来的结论,好过别人说十遍。

如果你不知道怎么去试?

可以根据我们的例子举一反三,比如上面的 for 循环,试了字符串,字典,那我们之前学的基本数据类型还有什么呢?

不记得可以再返回去看看,可以把所有的基本类型都拿去尝试一下。

比如,你试了之后,会发现整数和浮点数是不可以直接放在 for 循环里面的。

3、 range() 函数

for 循环还常常和 range() 函数搭配使用的。

如果不知道 range() 函数 , 我们直接通过一段程序来理解。

for i in range(3):
    print(i)

打印的结果为:

0
1
2

可见,打印了 0 到 3 。

使用 range(x) 函数,就可以生成一个从 0 到 x-1 的整数序列。

如果是 range(a,b) 函数,你可以生成了一个左闭右开的整数序列。

其实例子中的 range(3) 可以写成 range(0,3), 结果是一样的。

其实使用 range() 函数,我们更多是为了把一段代码重复运行 n 次。

这里提个问题,你仔细观察 range() 函数,上面说到的不管是 1 个参数的,还是 2 个参数的都有什么共同的特点?

不知道你们有没有发现,他都是每次递增 1 的。

range(3) 就是 0 ,1,2 ,每次递增 1 。

range(3,6) 就是 3 ,4 ,5 ,也是每次递增 1 的。

那能不能每次不递增 1 呢?

比如我想递增 2 呢?

在程序的编写中,肯定会遇到这样的需求的。而 python 发展至今,range 函数肯定也会有这种功能。

所以 range 函数还有一个三个参数的。

比如 range(0,10,2) , 它的意思是:从 0 数到 10(不取 10 ),每次间隔为 2 。

4、While 循环语句

While 循环和 for 循环的作用是一样的。

我们先来看看 While 循环语句的样子。

程序输出的结果是:

5050

这个例子是计算 1 到 100 所有整数的和。

5、for 循环和 whlie 循环的区别

之前也提到过了,如果一种语法能表示一个功能,那没必要弄两种语法来表示。

竟然都是循环,for 循环和 while 循环肯定有他们的区别的。

那什么时候才使用 for 循环和 while 循环呢?

  • for 循环主要用在迭代可迭代对象的情况。

  • while 循环主要用在需要满足一定条件为真,反复执行的情况。
    (死循环+break 退出等情况。)

  • 部分情况下,for 循环和 while 循环可以互换使用。

例如:

for i in range(0, 10):
    print(i)


i = 0
while i < 10:
    print(i)
    i = i + 1

虽然打印的结果是一样的,但是细细品味你会发现,他们执行的顺序和知道的条件是不同的。

6、嵌套循环

循环语句和条件语句一样,都是可以嵌套的。

具体的语法如下:

for 循环嵌套语法

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

while 循环嵌套语法

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

除此之外,你也可以在循环体内嵌入其他的循环体,如在 while 循环中可以嵌入 for 循环, 反之,你可以在 for 循环中嵌入 while 循环

比如:

当我们需要判断 sum 大于 1000 的时候,不在相加时,可以用到 break ,退出整个循环。

count = 1
sum = 0
while (count <= 100):
    sum = sum + count
    if ( sum > 1000):  #当 sum 大于 1000 的时候退出循环
        break
    count = count + 1
print(sum)

输出的结果:

1035

有时候,我们只想统计 1 到 100 之间的奇数和,那么也就是说当 count 是偶数,也就是双数的时候,我们需要跳出当次的循环,不想加,这时候可以用到 break

count = 1
sum = 0
while (count <= 100):
    if ( count % 2 == 0):  # 双数时跳过输出
        count = count + 1
        continue
    sum = sum + count
    count = count + 1
print(sum)

输出的语句:

2500

还有:

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

输出的结果:

10 是一个合数
11 是一个质数
12 是一个合数
13 是一个质数
14 是一个合数
15 是一个合数
16 是一个合数
17 是一个质数
18 是一个合数
19 是一个质数

当然,这里还用到了 for … else 语句。

其实 for 循环中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行。

当然有 for … else ,也会有 while … else 。他们的意思都是一样的。


好了,本章节到此告一段落了,希望对你有所帮助

另外,看漫画也能学python了,若您想要获取学习资源,欢迎通过微信与我交流(微信号:mumux183),备注"python漫画"
图片名称

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

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

相关文章

蓝桥杯STM32 G431 hal库开发速成——输入捕获

蓝桥杯的输入捕获较为简单&#xff0c;基本不涉及溢出的问题。所以这里就不介绍溢出了。文末有源码。 核心思想&#xff1a;在第一次上升沿的时候计第一个数&#xff0c;第一次下降沿的时候计第二个数&#xff0c;第二次上升沿的时候计第三个数。 占空比 (第二个数-第一个数…

2024年必用的九大顶级Java分析器:性能优化的利器

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

基于Java的桃花峪滑雪场租赁系统(Vue.js+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 游客服务2.2 雪场管理 三、数据库设计3.1 教练表3.2 教练聘请表3.3 押金规则表3.4 器材表3.5 滑雪场表3.7 售票表3.8 器材损坏表 四、系统展示五、核心代码5.1 查询教练5.2 教练聘请5.3 查询滑雪场5.4 滑雪场预定5.5 新…

性能测试丨GreatSQL TPC-H 性能测试报告正式发布!

1、测试背景概述 本次测试针对GreatSQL开源数据库基于标准 TPC-H 场景的测试。 TPC-H&#xff08;商业智能计算测试&#xff09;是美国交易处理效能委员会&#xff08;TPC&#xff0c;TransactionProcessing Performance Council&#xff09;组织制定的用来模拟决策支持类应用…

数据容器-序列-集合-Python

师从黑马程序员 序列 序列的常用操作-切片 切片&#xff1a;从一个序列中&#xff0c;取出一个子序列 语法&#xff1a;序列[起始下标:结束下标&#xff0c;步长] 注&#xff1a;此操作不会影响序列本身&#xff0c;而是会得到一个新的序列 my_list[0.1,2,3,4,5,6] result1…

【大模型】VS Code(Visual Studio Code)上安装的扩展插件用不了,设置VS Code工作区信任

文章目录 一、找到【管理工作区信任】二、页面显示处于限制模式&#xff0c;改为【信任】三、测试四、总结 【运行环境】win 11 相关文章&#xff1a; 【大模型】直接在VS Code(Visual Studio Code)上安装CodeGeeX插件的过程 【问题】之前在 VS Code上安装 CodeGeeX 插件后&…

C语言中如何动态分配内存并进行操作

C语言文章更新目录 C语言学习资源汇总&#xff0c;史上最全面总结&#xff0c;没有之一 C/C学习资源&#xff08;百度云盘链接&#xff09; 计算机二级资料&#xff08;过级专用&#xff09; C语言学习路线&#xff08;从入门到实战&#xff09; 编写C语言程序的7个步骤和编程…

100个openharmony开源demo:1.日历

准备用开发者手机写100个开源的demo不知道能不能实现&#xff0c;日拱一卒&#xff0c;期待蜕变。 第一个demo&#xff1a;日历&#xff0c;借鉴了网上的日历算法&#xff0c;自己用arkts写了界面和点击事件&#xff0c;各位可根据此demo写自己的日历选择器等组件。 1.目录结…

Go——map操作及原理

一.map介绍和使用 map是一种无序的基于key-value的数据结构&#xff0c;Go语言的map是引用类型&#xff0c;必须初始化才可以使用。 1. 定义 Go语言中&#xff0c;map类型语法如下&#xff1a; map[KeyType]ValueType KeyType表示键类型ValueType表示值类型 map类型的变量默认…

python总结-Linux系统使用

设置变量并输出 [rootldpbzhaonan py]$ cat var01.py str1hello str2worldprintf "${str1} ${str2} \n" printf ${str1} ${str2} \n\n就是代表换行&#xff0c;使用printf输出的话&#xff0c;没有自动换行。 不使用换行如下图显示 [rootldpbzhaonan py]$ cat var0…

C语言学习 五、一维数组与字符数组

5.1一维数组 5.1.1数组的定义 数组特点&#xff1a; 具有相同的数据类型使用过程中需要保存原始数据 C语言为了方便操作这些数据&#xff0c;提供了一种构造数据类型——数组&#xff0c;数组是指一组具有相同数据类型的数据的有序集合。 一维数组的定义格式为 数据类型 数…

虚拟+现实,刷新线上直播的“打开方式”

近年来&#xff0c;短视频和线上直播大热&#xff0c;成为我们看世界的途径之一&#xff0c;我们渐渐习惯了看屏幕里面的虚拟世界。随着AIGC技术的不断革新&#xff0c;让虚拟直播间的体验感越来越真实&#xff0c;给我们带来了不同寻常的体验。 虚实融合&#xff0c;超越传统…

将ORB-SLAM3用图像增强的方式打开

ORB-SLAM3在复杂光照环境下&#xff0c;特征提取和特征匹配的性能明显下降&#xff0c;其准确性和鲁棒性收到很大影响&#xff0c;尤其是当周围环境获取的ORB特征点数量不足时&#xff0c;位姿的估计过程无法进行&#xff0c;甚至或导致初始化和跟踪失败的情况&#xff0c;目前…

03、Lua 基本语法

Lua 基本语法 Lua 基本语法第一个 Lua 程序交互式编程脚本式编程 注释单行注释多行注释 标示符关键词全局变量 Lua 基本语法 Lua学习起来非常简单&#xff0c;我们可以创建第一个 Lua 程序&#xff01; 第一个 Lua 程序 交互式编程 Lua提供了交互式编程模式。我们可以在命令…

开始喜欢上了runnergo,JMeter out了?

RunnerGo是一款基于Go语言、国产自研的测试平台。它支持高并发、分布式性能测试。和JMeter不一样的是&#xff0c;它采用了B/S架构&#xff0c;更灵活、更方便。而且&#xff0c;除了API测试和性能测试&#xff0c;RunnerGo还加上了UI测试和项目管理等实用功能&#xff0c;让测…

蓝桥杯刷题-串的处理

串的处理 代码 s input().split() l_new [] for i in s:i list(i)new""for j in range(len(i)-1): # 遍历newi[j]if i[j].isdigit() and i[j1].isalpha(): # 在字母和数字之间添加“_”new_if i[j].isalpha() and i[j1].isdigit(): # 同上new_newi[-1]l_new.appe…

K3 计划订单投放时,将“关联物料”传递到采购和生产订单的“组部件”字段

参考K/3 WISE 中MRP计算投放过程中 销售订单自定义字段怎么携带到任务单这篇文章&#xff0c;进行优化。 在表ICMrpDestBills下增加触发器&#xff0c;代码如下 CREATE TRIGGER [dbo].[ICMrpDestBills_update]ON [dbo].[ICMrpDestBills]AFTER INSERT,UPDATE AS BEGINSET NO…

mysql 设置初始密码

link 1.首先输入以下指令&#xff1a; sudo cat /etc/mysql/debian.cnf运行截图如下&#xff1a; 2. 再输入以下指令&#xff1a; mysql -u debian-sys-maint -p//注意! //这条指令的密码输入是输入第一条指令获得的信息中的 password ZCt7QB7d8O3rFKQZ 得来。//请根据自己的实…

【CKA模拟题】如何发布一个SVC资源

题干 For this question, please set this context (In exam, diff cluster name) kubectl config use-context kubernetes-adminkubernetesYou have an existing Nginx pod named nginx-pod . Perform the following steps: Expose the nginx-pod internally within the cl…

Linux系统部署Paperless-Ngx文档管理系统结合内网穿透实现公网访问

文章目录 1. 部署Paperless-ngx2. 本地访问Paperless-ngx3. Linux安装Cpolar4. 配置公网地址5. 远程访问6. 固定Cpolar公网地址7. 固定地址访问 Paperless-ngx是一个开源的文档管理系统&#xff0c;可以将物理文档转换成可搜索的在线档案&#xff0c;从而减少纸张的使用。它内置…