前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Python】循环遍历傻傻分不清

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

作者头像
謓泽
发布2024-02-05 14:54:14
910
发布2024-02-05 14:54:14
举报
文章被收录于专栏:【C】系列【C】系列

🚩 WRITE IN FRONT 🚩

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

while循环

循环结构就是重复执行的一条或者若干个循环语句,就拿生活当中去举出一些例子,像一个项目一个工程我们必须要完成,那么这个你就可以理解是我们现在是在这个循环语句当中。当直到我们完成这个工程或者是项目的时候,此时,我们就可以脱离这个项目当中,那么这就叫做是循环。 在程序当中如果需要重复执行某段代码的时候,就可以使用 while 语句。while 条件语句,即在条件成立的情况下,就会重复执行某段程序。

语法如下

示例语法如下 👇

代码语言:javascript
复制
while 条件语句:# 注意冒号
    循环体

执行过程:判断条件是否为真(Ture),如果为真则执行循环体当中的内容。 执行完之后再次判断条件语句是否为真,如果为真的话那么就继续执行。如果条件语句为假的话则退出循环体为False。 一句话:为真→进、为假→出 ♐ 流程图如下↓

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


print()

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

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

代码语言:javascript
复制
print("*")
print("*")

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

* *

而不是这样:**

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

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

代码语言:javascript
复制
print('*',end="")
print('*')

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

运行结果:**

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

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

代码语言:javascript
复制
print('*',end="Python")
print('*')

运行结果:*Python*

while 嵌套

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

形式如下↓

代码语言:javascript
复制
while 条件1:    
    条件1成立时执行语句    
    条件1成立时执行语句    
    条件1成立时执行语句    
    while 条件2:        
        条件2成立时执行语句        
        条件2成立时执行语句 

代码示例如下↓

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

代码语言:javascript
复制
# 单个循环
row = 1
while row < 6:
    print('*' * row) # print有自动换行功能
    row += 1

运行结果🖊

代码语言:javascript
复制
*
**
***
****
*****

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

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

代码语言:javascript
复制
row = 1  # 行
while row <= 5:
    col = 1  # 列
    while col <= row:
        print('*',end="")
        col += 1
    print()
    row += 1

运行结果🖊

代码语言:javascript
复制
*
**
***
****
*****

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


题目 - 计算1到100之和

示例代码如下:👇

代码语言:javascript
复制
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语句的要求不是很多呢。示例代码如下↓

代码语言:javascript
复制
my_tuple = ("小明",18,2.50)
# 使用迭代遍历元素
for  printf in my_tuple:
	print(printf,end="  ")

运行结果🖊:小明 18 2.50

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

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

语法如下

示例语法如下 👇

代码语言:javascript
复制
for 迭代变量 in 对象:
     循环体

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

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

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

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

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

示例代码如下↓

代码语言:javascript
复制
for str in "Python":
    pass
    print(str,end="")
else:
    print("结束end")

运行结果🖊

Python结束end

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

代码语言:javascript
复制
for str in "Python":
    pass
    print(str,end="")
    break
else:
    print("结束end")

运行结果🖊

P

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

迭代iterate遍历

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

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

迭代iterate是数学的专用术语,所谓的迭代就是重复遍历的意思。(从列表当中拿出一个又一个的元素) 我们想要进行迭代遍历的话是使用for,而不是使用while语句注意。

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

示例代码如下 👇

代码语言:javascript
复制
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内置的函数,它被用于生成一系列连续的整数,它的语法格式为↓

代码语言:javascript
复制
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() 函数示例代码如下 👇

代码语言:javascript
复制
for x in range(10):
  print(x)

运行结果 👇 0 1 2 3 4 5 6 7 8 9 注意:range(10) 不是 0 到 10 的值,而是值 0 到 9。这和下标的使用是一样的,新手很容易会误点这一点! range() 函数默认 0 为起始值,不过可以通过添加参数来指定起始值:range(2, 10),这意味着值为 2 到 10(但不包括 10)也就是 2~9

代码语言:javascript
复制
for x in range(3, 10):
  print(x) 

运行结果 👇 3 4 5 6 7 8 9

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

代码语言:javascript
复制
for x in range(0, 20, 3):
  print(x)

运行结果 👇 0 3 6 9 12 15 18


pass占位

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

代码语言:javascript
复制
for i in 'Python':
  if i == 'P':
    pass
    print("pass")
  print('当前字符是:',i)
print("END")

运行结果↓ pass 当前字符是: P 当前字符是: y 当前字符是: t 当前字符是: h 当前字符是: o 当前字符是: n END

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-02-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • while循环
    • 语法如下
      • print()
    • while 嵌套
      • 题目 - 计算1到100之和
  • 遍历for
    • 语法如下
      • 迭代iterate遍历
      • 题目 - 循环实现列表中整形元素求和
    • range()函数
      • pass占位
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档