您现在的位置是:首页 > 学无止境 > 其他网站首页其他 Python的流程控制:循环

Python的流程控制:循环

  • 莫愁
  • 其他
  • 2019-07-28
简介循环是计算机程序中经常用到的流程。试想一下,如果我们有一万个数据要处理,每个数据处理的流程都一模一样,如果我们用顺序流程就要把处理流程重复写一万遍,是不是很累?而用for循环就简单多了。
字数 1250.5

循环是计算机程序中经常用到的流程。试想一下,如果我们有一万个数据要处理,每个数据处理的流程都一模一样,如果我们用顺序流程就要把处理流程重复写一万遍,是不是很累?而用for循环就简单多了。

python循环

 

for循环

for循环其实前面讲遍历列表、字典的时候我们就已经遇到了,它的语法很简单,就是for item in items

下面我们看一下for循环:

numbers = [1,2,3,4,5,6]for n in numbers:    x = n * n    print(x)

for循环用来遍历一个序列是最常用的,有时候并没有给我们一个现成的序列要遍历,只是我们的程序需要循环特定的次数,这时候我们就用到了range()函数。在Python 3.6中,range并不是一个内置函数,而是一个类型,但是在Python 2.7中它是一个内置函数:

In [134]: range?Init signature: range(self, /, *args, **kwargs)Docstring:     range(stop) -> range objectrange(start, stop[, step]) -> range objectReturn an object that produces a sequence of integers from start (inclusive)to stop (exclusive) by step.  range(i, j) produces i, i+1, i+2, ..., j-1.start defaults to 0, and stop is omitted!  range(4) produces 0, 1, 2, 3.These are exactly the valid indices for a list of 4 elements.When step is given, it specifies the increment (or decrement).Type:           typeSubclasses:     In [135]: type(range)Out[135]: typeIn [136]: len?Signature: len(obj, /)Docstring: Return the number of items in a container.Type:      builtin_function_or_methodIn [137]: range(4)Out[137]: range(0, 4)

上面是Python 3.6中从IPython看到的range的说明,它的Type是type,而不像内置函数len的Type是builtin_function_or_method。

虽然range的类型从Python 2中的内置函数变成了3.6中的type,但并不影响我们对它的使用。假如我们想打印 hi 特定次数,
比如3次,下面就是range的经典用法:

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

这里的i并没有在循环中被使用,为了不让代码规范检查程序(如pylint)报错“有未使用的变量”,我们可以用下划线_替代

range()参数个数的不同也代表了生成不同的序列:

  • range(5) 生成从0-4共5个整数序列
  • range(1,5) 生成从1开始到5为止但不包含5的整数序列,即1-4
  • range(1,5,2) 从1开始到5为止,每次步长为2的整数序列,即:[1,3]

比如,求10以内偶数的和:

sum = 0for i in range(0, 10, 2):    sum += iprint(sum)

 

while 循环

while是另外一种形式的循环,它的语法如下所示:

while condition:    do something

示例代码:

a = 3while a > 0:    print(a)    a -= 1

上面代码循环3次,每次会对条件变量a减1,当while发现a不大于0时就会终止循环。

如果在循环里面,我们不对a进行改变,会发生什么?没错,会出现死循环!你的CPU使用率立马爆满100%,满屏不断刷新打印3。死循环是编程中的大忌,一定要小心哦。

 

break和continue

break是终止(或叫做“跳出”)整个循环;continue是跳过本次循环后面的代码去执行循环的下一次。要理解这兄弟俩,还是看代码吧:

for i in range(10):    if i < 3:        continue    if i > 7:        break    prirnt(i)

这段代码的意思是,
如果i<3就continue到下一次的循环,continue后面的代码不会被执行,所以0,1,2就不会被打印;
如果i>7就break整个循环,即跳出循环,7后面的8,9也自然不会被打印;
不满足上面两个情况的3,4,5,6,7就被打印了。
所以这段代码的输出是:

34567

以上例子是for循环的,但break和continue同样适用于while循环。小猿们可以在本节结束后,练习一下while循环中的break和continue

 

循环的else

这应该是Python独有的特性吧,循环也可以有else。当循环正常结束(没有break)后,就会执行else代码段:

for i in range(3):    print(i)else:    print('loop ends')for i in range(3):    if i > 1:        break    print(i)else:    print('loop ends')

猜猜这段代码的输出吧,如果没有把握就亲自执行一下就明白了。

 

练习:

  1. 写一段代码,实现while中的break和continue。

 

总结

循环是程序中另外一种重要的流程控制,在批量处理数据、服务器程序中大量使用。


转载: 感谢您对莫愁个人博客网站平台的认可,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源莫愁个人博客 https://www.mochoublog.com/study/287.html”。

文章评论

    • 评论
    人参与,条评论

技术在线

服务时间

周一至周日 12:00-22:00

关闭下雪
关闭背景特效