当前位置:   article > 正文

Lumos学习python第四课:循环(Loop)_python的loop怎么用

python的loop怎么用

一、废话不多说,先来上道题!

1、题目(来自力扣)

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。

示例 1:

  1. 输入:digits = [1,2,3]
  2. 输出:[1,2,4]
  3. 解释:输入数组表示数字 123

示例 2:

  1. 输入:digits = [4,3,2,1]
  2. 输出:[4,3,2,2]
  3. 解释:输入数组表示数字 4321

示例 3:

  1. 输入:digits = [0]
  2. 输出:[1]

提示:

  • 1 <= digits.length <= 100
  • 0 <= digits[i] <= 9

大多数编程语言中,循环语句通常包括for、while、do-while等类型,开发人员需要根据实际需求选择不同的循环结构来完成特定任务。在Python中,循环只有for和while两种形式

2、题解
  1. class Solution:
  2. def plusOne(self, digits: List[int]) -> List[int]:
  3. a = len(digits)#数组的长度
  4. for i in range(a-1,-1,-1): #循环
  5. if digits[i]!=9:
  6. digits[i] += 1
  7. for j in range(i+1,a,1):
  8. digits[j] = 0
  9. return digits
  10. return [1] + [0] * a

大家可以试着理解下每行代码的意思,把代码学会了,再上高度,学算法~本次题目的难度较低,看下下面的题解吧~

当我们对数组(可以暂且理解为有顺序的集合,一个萝卜一个坑,之后我们会详细讲述下)加1时,会发现只有出现9的时候会出现进位,其他数字就是简简单单+1即可。我们可以考虑如下的三种情况:

①如果数组的末尾没有“9”,例如 [1,2,3],那么我们直接将末尾的数加1,得到 [1,2,4] 并返回;

②如果数组的末尾有若干个“9”,例如 [1,2,9,9][1,2,3,9,9],那么我们只需要找出从末尾开始的第一个不为 9 的元素,将该元素加1,得到 [1,3,9,9][1,2,4,9,9]。随后将末尾的9全部置零,得到 [1,3,0,0][1,2,4,0,0] 并返回;

③如果数组的所有元素都是9,例如 [9,9,9,9,9],那么答案为[1,0,0,0,0,0]。我们只需要构造一个长度比 多 1的新数组,将首元素置为1,其余元素置为0即可。

因此对数组进行一次逆序遍历,找出第一个不为9的元素,将其加一并将后续所有元素置零即可。如果所有的元素均为9,那么需要返回一个新的数组。在题解中的代码,我们发现了一个新功能:循环,也就是遍历的工具,接下来我们详细讲述一下。

二、循环(Loop)

1、遍历

先讲下啥是遍历,顾名思义,一遍一遍去经历,通俗来讲,就是机械地访问每一个对象。官方解释:循环可以用来取出列表中的元素,其原理其实就是根据索引自增的方式来一次进行列表中元素的取值,不仅仅是列表,包括字符串、字典、元组等序列都是可以通过循环来进行元素取值,这个过程称为遍历

2、while循环
  1. i = 0
  2. lst = ['a', 'b', 'c', 'd']
  3. while i < 4:
  4. print(lst[i])
  5. i += 1
  6. print("循环结束")

注意循环条件的范围不要超出列表本身长度,不然会报错,IndexError: list index out of range。

3、for循环

for循环主要是用于迭代序列(列表、元组、字典等)

通过for...in...格式能够遍历如序列中的每一个元素,结构如下:

  1. lst = [1, 2, 3, 3]
  2. for i in lst:
  3. print(i)

如果要通过for循环来制定任意循环次数的话通常是通过range()函数来实现。

range()是Python中一个内置的函数,它用于创建一个指定范围内连续的数字序列。range()函数有3个参数,起始位置start、终止位置stop和步长step,分别表示数字序列的起始位置、结束位置和连续数字之间的跨度。

range(start,stop,step) #stop不包含在内,左闭右开

range()函数需要至少传入一个参数(stop参数),如果只传入stop参数,则默认以0作为起始位置,步长为1。若还传入start参数,则以start为起始位置,步长为1。如果还传入step参数,则步长值为step。range()函数返回值是一个可迭代对象,可以通过循环或转换为列表等方式进行访问。注!传入stop值本身不被访问,可以这样记start闭,stop开。

4、循环中的小语句
break语句

有时候在循环中需要提前终止循环,例如需要找出列表中第一个值为3的元素,找到后进行输出然后终止循环,那么这个思路最关键的就是在循环体中需要判断列表元素是否等于3,如果等于的话就可以终止循环而不再进行之后的循环操作,这个需求就可以通过break语句来实现,代码如下:

  1. a = [0,1,2,3,4,5]
  2. for i in range(5,-1,-1):
  3. if a[i]==2:
  4. break
  5. else:
  6. print(a[i])

continue语句

与break语句不同的是,continue语句是用于跳过本次循环,如下:

  1. a = [0,1,2,3,4,5]
  2. for i in range(5,-1,-1):
  3. if a[i]==2:
  4. continue
  5. else:
  6. print(a[i])

三、嵌套循环

在 Python 中,嵌套循环是由多个循环结构嵌套组成的循环结构。嵌套循环可以用于对多维数据结构(如二维列表)进行遍历、查找和操作的过程中。

在嵌套循环中,外层循环用于控制内层循环的执行次数。具体实现方式可以使用 for 循环嵌套,也可以使用 while 循环嵌套。我们本道题就采取了嵌套循环,

  1. # 嵌套循环遍历二维列表
  2. a = [["元宵节","快乐", "!"], ["吃汤圆","了吗", "?"], ["祝你","天天开心", "!"]]
  3. for i in a: # 外层循环
  4. for j in i: # 内层循环
  5. print(j,end = " ")
  6. print()

四、小小唠叨

今天就不唠叨啥啦,大家好好过节吧,元宵节快乐~不过这个点,大家应该都玩差不多了吧,年过完了,大家收收心哈~一起加油,奔向更光明的未来!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/835467
推荐阅读
相关标签
  

闽ICP备14008679号