资讯专栏INFORMATION COLUMN

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

CoderBear / 2546人阅读

摘要:在中,并不是一个内置函数,而是一个类型,但是在中它是一个内置函数上面是中从看到的的说明,它的是,而不像内置函数的是。虽然的类型从中的内置函数变成了中的,但并不影响我们对它的使用。

循环是计算机程序中经常用到的流程。试想一下,如果我们有一万个数据要处理,每个数据处理的流程都一模一样,如果我们用顺序流程就要把处理流程重复写一万遍,是不是很累?而用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")

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

总结

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43769.html

相关文章

  • Python基础控制结构

    摘要:基础之控制结构学习目标代码块与缩进条件语句语句语句的嵌套断言循环循环循环中断循环控制语句综合嵌套列表解析式基础相关链接学习目标是简洁易学面向对象的编程语言。 Py...

    liaosilzu2007 评论0 收藏0
  • python基础教程:异步IO API

    摘要:具有以下基本同步原语子进程提供了通过创建和管理子进程的。虽然队列不是线程安全的,但它们被设计为专门用于代码。表示异步操作的最终结果。 Python的asyncio是使用 async/await 语法编写并发代码的标准库。通过上一节的讲解,我们了解了它不断变化的发展历史。到了Python最新稳定版 3.7 这个版本,asyncio又做了比较大的调整,把这个库的API分为了 高层级API和...

    vboy1010 评论0 收藏0
  • python基础教程:if条件判断

    摘要:然而,计算机程序不只是顺序执行,为了实现更多更赋值的逻辑,程序的执行需要更多的流程控制,它们就是条件判断和循环。条件判断过程中,可以单独存在,后面的可要可不要,根据实际情况而定。 前面我们学习Python基础语法和数据类型的过程中,已经接触过很多Python的程序代码了,它们都是从第一行往后一行一行地执行,也就是从头到尾的顺序执行。 然而,计算机程序不只是顺序执行,为了实现更多更赋值的...

    rickchen 评论0 收藏0
  • Python 3 学习笔记——基础语法

    摘要:迭代器和生成器字符串,列表或元组对象都可用于创建迭代器。创建自己的迭代器,需要在类中实现实现两个方法与。方法返回一个特殊的迭代器对象,这个迭代器对象实现了方法并通过异常标识迭代的完成。要反向遍历一个序列,首先指定这个序列,然后调用函数。 1. a, b = a, a + b 先计算右边表达式,然后再同时赋值给左边。 2. 条件控制和循环语句 条件控制 if condition_1: ...

    scola666 评论0 收藏0

发表评论

0条评论

CoderBear

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<