首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python基础教程:流程控制之for循环

python基础教程:流程控制之for循环

作者头像
一墨编程学习
发布2019-05-15 14:13:35
4560
发布2019-05-15 14:13:35
举报

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

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 object
range(start, stop[, step]) -> range object

Return 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:           type
Subclasses:     

In [135]: type(range)
Out[135]: type

In [136]: len?
Signature: len(obj, /)
Docstring: Return the number of items in a container.
Type:      builtin_function_or_method

In [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 = 0

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

while 循环

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

while condition:
    do something

示例代码:

a = 3
while 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就被打印了。 所以这段代码的输出是:

3
4
5
6
7

以上例子是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')

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

总结

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • for循环
  • while 循环
  • break和continue
  • 循环的else
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档