【Python】循环遍历傻傻分不清

news/2024/7/24 11:49:09 标签: python, 开发语言, 后端
  •  🚩 WRITE IN FRONT 🚩       

  • 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎
  • 🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评百大博主、华为云享专家、阿里云专家博主、掘金优秀创作者、全网粉丝量7w+、个人社区人数累计4w+、全网访问量100w+ 🏅
  • 🆔 本文章内容由 謓泽 原创 如需相关转载请提前告知博主 ⚠
  • 📑 创作时间:2022 年 2 月 24 日 📅
  • 📝 个人主页:謓泽的博客 📃
  • 📣 专栏系列:【Python】系列_謓泽的博客📃
  • 🙌 Gitee:謓泽 (wsxsx) - Gitee.com ⭐️
  • 🎁 点赞👍+ 收藏⭐️+ 留言📝​
  • ✉️ 我们并非登上我们所选择的舞台,演出并非我们所选择的剧本 📩

while循环

循环结构就是重复执行的一条或者若干个循环语句,就拿生活当中去举出一些例子,像一个项目一个工程我们必须要完成,那么这个你就可以理解是我们现在是在这个循环语句当中。当直到我们完成这个工程或者是项目的时候,此时,我们就可以脱离这个项目当中,那么这就叫做是循环。

在程序当中如果需要重复执行某段代码的时候,就可以使用 while 语句。while 条件语句,即在条件成立的情况下,就会重复执行某段程序。

语法如下

示例语法如下 👇

while 条件语句:# 注意冒号
    循环体

执行过程:判断条件是否为真(Ture),如果为真则执行循环体当中的内容。

执行完之后再次判断条件语句是否为真,如果为真的话那么就继续执行。如果条件语句为假的话则退出循环体为False。

一句话:为真→进、为假→出 ♐ 

流程图如下↓

工作原理是:判断条件为真时的时候就进入循环体循环一次,直到判断条件不成立,为Flase时退出循环。 


print()

在说循环嵌套之前我们先在了解下print() 的使用。

我们都知道在默认的情况下使用 print() 会给我们自动换行。例如↓

print("*")
print("*")

此时的运行结果是这样的↓

*
*

而不是这样:**

从这里就明确的说明了print() 会给我们自动换行。那假设我不想让它换行呢。有没有什么办法,那么肯定是有办法的。

如果不想给 print() 换行,我们只需要在print加上 end="" 即可。

print('*',end="")
print('*')

那有小伙伴就可能会说为什么第二个不用,因为第一个已经不换行了,你第二个当然会在第一个的后面啦。

运行结果:**

那么 end = "" 有没有用,肯定是有用的。例如↓

我们想要在上面的代码* 与 * 号之间加上Python,那么就可以这样。

print('*',end="Python")
print('*')

运行结果:*Python*

while 嵌套 

循环嵌套实际上就是while里面还有while这种就被称之为是循环嵌套。

形式如下↓

while 条件1:    
    条件1成立时执行语句    
    条件1成立时执行语句    
    条件1成立时执行语句    
    while 条件2:        
        条件2成立时执行语句        
        条件2成立时执行语句 

代码示例如下↓

我们先用单个循环来试下如何打印下面⑤行的直角三角形。

python"># 单个循环
row = 1
while row < 6:
    print('*' * row) # print有自动换行功能
    row += 1

运行结果🖊

*
**
***
****
*****

真的是太妙了!如果是C语言来做的话肯定就要用到循环嵌套了。

那么接下来我们就来用循环嵌套做下这道题目,示例代码如下↓

python">row = 1  # 行
while row <= 5:
    col = 1  # 列
    while col <= row:
        print('*',end="")
        col += 1
    print()
    row += 1

运行结果🖊

*
**
***
****
*****

这个对于新手来说比较绕,多调试下看下步骤。


题目 - 计算1到100之和 

示例代码如下:👇

python">count = 1
number = 0
while count <= 100:
    number += count  # number = number + count
    count += 1  # count = count + 1
print(number)

运行结果 👇

5050

当number变量为1的时候,执行判断语句 number<=100,判断的结果为真,则执行循环体语句当中的内容。然后 number = 1、count = 2、进入第一次循环,一次类推。最终当count为101的时候则退出循环体,开始打印number。

注意,在使用 while 循环时,一定要保证循环条件有变成假的时候,否则这个循环将成为一个死循环。所谓死循环,指的是无法结束循环的循环结构,例如将上面 while 循环中的count+ = 1代码注释掉,再运行程序你会发现,循环会一直的继续下去。因为你的循环判断条件永远都没有改变。没有计数器加加,那么就会一直死循环下去。


遍历for 

在Python中,如果需要循环依次取出列表、字符串、字典等对象中的每一个数据,那么推荐使用 for 循环是通过次数的大小来进行循环,通常我们会使用遍历序列或枚举以及迭代来进行循环。

流程图如下↓

  

在Python当中,可以使用for循环遍历所有非数字型的变量:列表、元组、字典以及字符串。

提示:在实际上的开发当中,除非能够确认元组当中的数据类型,不然针对元组的循环遍历的需求要求并不是很多。

那么有小伙伴可能会问为什么元组对于for语句的要求不是很多呢。示例代码如下↓

python">my_tuple = ("小明",18,2.50)
# 使用迭代遍历元素
for  printf in my_tuple:
	print(printf,end="  ")

运行结果🖊:小明  18  2.50

那么在这里杰斯下为什么for用于元组不适合↓

  • 使用的格式字符串拼接 printf 这个变量是不方便的。
  • 因为元组当中通常都是保存的数据类型是不同的。

语法如下 

示例语法如下 👇

for 迭代变量 in 对象:
     循环体

迭代变量在我们每一次循环中保存根据变量得到的值,对象既是有序的序列,可以是字符串、元组、列表,也可以是无序的序列,例如字典。而循环体则为一条或若干条会被重复执行的语句。

执行次数是由:列表、字符串、字典、元组中数据的个数来决定的。

在Python当中的for()循环还可以和else配合来进行使用,语法如下↓

for 变量 in 集合:
    pass
    循环体代码
# 注else后面+冒号(:)
else:
    循环结束之后执行代码

注:如果for语句当中有break(退出循环)就不会执行else语句,还有一种情况就是死循环。

示例代码如下↓

python">for str in "Python":
    pass
    print(str,end="")
else:
    print("结束end")

运行结果🖊

Python结束end

那么我们要不执行else语句当中的内容怎么办如下↓

python">for str in "Python":
    pass
    print(str,end="")
    break
else:
    print("结束end")

运行结果🖊

P

那么此时我们就只执行了①次for循环就退出了循环。

迭代iterate遍历 

遍历就是从头到尾依次从列表当中获取数据。

  • 在循环内部针对每一个元素,执行相同的操作。

迭代iterate是数学的专用术语,所谓的迭代就是重复遍历的意思。(从列表当中拿出一个又一个的元素)

我们想要进行迭代遍历的话是使用for,而不是使用while语句注意。

题目 - 循环实现列表中整形元素求和

示例代码如下 👇

python">List = [1,2,3,4,5]
sum = 0
for i in List:
# 从列表当中依次获取数据
    sum += i
print(sum)

运行结果 👇 

15

需要注意两点↓

(1)→使用 for - in 循环,可以从列表中依次得到每一个元素,如第1次获取元素为1,第2次获取元素为2,最后一次获取元素为5。

(2)→求和操作,就是对取出的整形元素进行算数求和的过程。 


range()函数 

range()函数是Python内置的函数,它被用于生成一系列连续的整数,它的语法格式为↓

range(start, stop, step)
  • start:计数的第一个值,是包含这个值,如果没有start的时候默认为0。
  • stop:计数的最后一位,不包含这个值,当range(1,3)的时候,等同于[1,2]是没有3这个数字的,在使用的时候一定要注意这一点。当range()中只有一个数字的时候,像range(3),对应的是[0,1,2]这样一个序列,关于这点大家多多使用就会体会到。
  • step:为步长,用来控制取数之间的间隔,如果省略则默认为1,如果为2,3等则步长为2,3等。步长为-1时为逆序。

如需循环一组代码指定的次数,我们可以使用 range() 函数,

range() 函数返回一个数字序列,默认情况下从 0 开始,并递增 1(默认地),并以指定的数字结束。

使用 range() 函数示例代码如下 👇

python">for x in range(10):
  print(x)

运行结果 👇 

0
1
2
3
4
5
6
7
8

注意:range(10) 不是 0 到 10 的值,而是值 0 到 9。这和下标的使用是一样的,新手很容易会误点这一点!

range() 函数默认 0 为起始值,不过可以通过添加参数来指定起始值:range(2, 10),这意味着值为 2 到 10(但不包括 10)也就是 2~9

python">for x in range(3, 10):
  print(x) 

运行结果 👇 
3
4
5
6
7
8

那么我们要让每一次结果递增 3,该怎么办呢?如下代码所示↓

python">for x in range(0, 20, 3):
  print(x)

运行结果 👇 

0
3
6
9
12
15
18 


pass占位 

Python 当中的 pass 是空语句,pass 不做任何事情,一般用做占位语句,仅仅是为了保持结构的完整性。示例代码如下 ↓

python">for i in 'Python':
  if i == 'P':
    pass
    print("pass")
  print('当前字符是:',i)
print("END")

运行结果↓

pass
当前字符是: P
当前字符是: y
当前字符是: t
当前字符是: h
当前字符是: o
当前字符是: n
END


http://www.niftyadmin.cn/n/5363353.html

相关文章

FreeMark ${r‘原样输出‘} ${r“原样输出“}

FreeMark ${r’原样输出’} ${r"原样输出"} 在${}使用 小写字母r接两个单引号或两个双引号包裹的内容可以原样输出, 字母r只能用小写 ${r想要原样输出的内容} --用了单引号${r"想要原样输出的内容"} --用了双引号 例子: ${r"${r}"} 得到 ${r…

Matomo 访问图形显示异常

近期我们的把 PHP 系统完全升级后&#xff0c;访问 Matomo 的站点有关访问的曲线无法显示。 出现的情况如下图&#xff1a; 我们可以看到图片中有关的访问曲线无法显示。 如果具体直接访问链接的话&#xff0c;会有下面的错误信息。 问题和解决 出现上面问题的原因是缺少 ph…

前端html+css笔记

前端 Html: html标签 < strong >加粗 --文本格式化标签 < em >倾斜 < ins >下划线 < del >删除 < img src“图片的url” >src用于指定图像的位置名称(属性名属性值属性) alt 替换文本title 提示文本width 图片宽度 < a href“”>…

215 - Spreadsheet Calculator (UVA)

题目链接如下&#xff1a; Online Judge 写了两个版本&#xff08;都能AC&#xff09;&#xff0c;都感觉不太利索&#xff0c;但暂时想不出更好的了&#xff1a; 版本一&#xff1a; #include <iostream> #include <string> #include <cstdlib> #includ…

【NTN 卫星通信】基于NTN的多3GPP连接应用场景

1 概述 同时聚合两条3GPP接入链路&#xff0c;其中一条为非地面网络&#xff0c;可以提供以下5G业务使能&#xff0c;尤其适用于带宽有限或接入链路不可靠的服务不足地区:   -扩展流动宽频   -超可靠的服务通信 如技术报告38.821所述&#xff0c;若干服务场景(例如在偏远地…

聊聊并发编程,另送5本Golang并发编程新书

大家好&#xff0c;我是飞哥&#xff01; 并发编程并不是一个新话题&#xff0c;但是我觉得在近几年以及未来的时间里&#xff0c;并发编程将显得越来越重要。 为什么这样讲&#xff0c;让我们先回到一个基本的问题上来&#xff0c;为什么我们要采用并发编程&#xff1f;关于这…

P1051 [NOIP2005 提高组] 谁拿了最多奖学金

网址如下&#xff1a; P1051 [NOIP2005 提高组] 谁拿了最多奖学金 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 最近一直在学c&#xff0c;想着水一道题爽爽 结果就出问题了 代码如下&#xff1a; #include<iostream> #include<string> using namespace std…

【开源软件的影响力】浅谈 MySQL 的影响力

随着信息技术的快速发展&#xff0c;开源软件已经成为软件开发的趋势&#xff0c;并产生了深远的影响。开源软件的低成本、可协作性和透明度等特点&#xff0c;使得越来越多的企业和个人选择使用开源软件&#xff0c;促进了软件行业的繁荣。然而&#xff0c;在使用开源软件的过…