Python版本:3.6.2  操作系统:Windows  作者:SmallWZQ

  上学期间,常常遇到这样的情景:为了惩罚学生,老师会说:“XXX,你先去操场上跑10圈再回来继续反省。”

  这话虽短,但含义深刻。不过这在当时,我是体会不到其中的“深意”的。直至大学,当接触到C++编程时,我才领悟到这其中的内涵。原来这句话中饱含编程哲学啊。什么哲学呢?围着操场跑道,重复跑10圈……这不就是“循环”嘛?

  言归正传,for/while循环有什么作用呢?前面讲的Python基础知识中的代码就不需要循环啊。那下面来看几种情形呗~~~

  情形一:求和。求1+2+3的和,并输出结果。

 #哈哈,我就不用循环,看你咋的
>>>sum = 1 + 2 + 3
>>>print(sum)
6

  情形二:再是求和。求1+2+3+4+5+6+7+8+9+10的和,并输出结果。

 #哈哈,我还不用循环,看你咋的
>>>sum = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10
>>>print(sum)
55

  情形三:还是求和。求1+2+3+……+99+100的和,并输出结果。

 #哈哈,我就不用循环,看你咋的
#我可以这样啊
>>>sum = 1 + 2 + 3 + ...... + 99 + 100
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'ellipsis'
#循环的魅力就在于此
>>>sum = 0
>>>for i in range(101):
sum = sum + i
>>>print(sum)
5050

  看来,循环不用不行啊。

  range():生成一个整数序列。比如range(3)生成的序列是从0到2的整数:

 #range()方法
>>>list(range(3))
[0,1,2]
>>>list(range(1,6))
[1,2,3,4,5]

while循环

  学习Python,使用笨方法可不行哦~~~

  就像上面的情形二,直接写求和表达式。

  为了避免上述情形二中笨重的代码,可以使用while循环:

 #while循环
>>>sum = 0
>>>i = 0
>>>while i < 11:
... sum = sum + i
... i = i +1
...
>>>print(sum)
55

  在while循环内部,i不断加一,直到i变为11时,不再满足(i<11)while条件,循环退出。

  while循环可以用来在任何条件为True的情况下重复执行一个代码块。

  因此,while循环:只要条件满足,就不断循环,条件不满足时退出循环。

for循环

  一般地,while循环已经可以应付大多数的循环案例。然而,还是有while循环够不着的地方。这时就需要for...in大显身手啦。

  比如要为一个集合的每个元素都执行一个代码块:

 #集合
>>>L = ['I','can','Python','!']
>>>for i in L:
... print(i)
...
I
can
Python
!

  对于求和公式,for...in循环比while循环更加简洁:

 #for...in循环比while循环简洁
#求和公式
#for...in循环
>>>sum = 0
>>>for i in range(11):
... sum = sum + i
...
>>>print(sum)
55
#while循环
>>>sum = 0
>>>i = 0
>>>while i < 11:
... sum = sum + i
... i = i + 1
...
>>>print(sum)
55

  注:若可以使用for...in循环,就尽量不用while循环。

  对于循环中的break语句和continue语句,我不推荐大家使用。为什么呢?其一是容易出错;其二是可以通过改写循环条件或者修改循环逻辑来替代break语句和continue语句。

死循环之吻

  对于死循环,我相信大家都印象深刻。有些时候,如果代码写得有问题,会让程序陷入“死循环”,也就是永远循环下去。

  如何解决死循环问题呢?方法如下:

  一、Ctrl + C直接退出程序或强制结束Python进程。

   对于出现编写Python程序代码时出现意想不到的问题而引起的死循环的情况,这种方法非常有效。

空代码块

  在Python中,空代码块是非法的。

  解决方法如下:

  二、pass语句:什么都不做。

   为了避免出现空代码块Error,方法就是在循环代码块中加入一个pass语句。

 #pass语句
>>>for i in range(11):
...
...
File "<stdin>", line 3 ^
IndentationError: expected an indented block
#空代码块错误
>>>for i in range(11):
... pass
...
>>>

小结

  1. 为序列中的每一个元素执行一个语句块,或者在条件为真时继续执行一段语句;

  2. 可以使用continue语句和break语句,但不推荐使用;

  3. 死循环问题,Ctrl + C直接退出程序;

  4. 循环:让计算机做重复任务的有效的方法。

Python基础——for/while循环的更多相关文章

  1. Python基础【while循环】

    Python基础[while循环] 1.while循环: 格式 while 条件: ...... print(......) 注意,在while语句也可以嵌套else,但是else不执行循环,执行后直 ...

  2. Python基础 条件、循环

    1.条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. if if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的 ...

  3. python基础条件和循环

    一.if语句 1.if后表达式返回值为true则执行其子代码块,然后此if 语句到此终结,否则进入下一分支判断,直到满足其中一个分支,执行后终结if 2.expression可以引入运算符:not,a ...

  4. Python基础入门-For循环

    For循环的功能比较强大,他可以帮助我们实现很多重复性的工作.而且for循环能迭代不同的数据结构.他的应用也十分的广泛,作为初学者,我们需要对循环的概念多加理解和练习.接下来我们就来学习for循环的一 ...

  5. python基础语法_8循环语句

    http://www.runoob.com/python3/python3-loop.html while 循环 Python中while语句的一般形式: while 判断条件: 语句 无限循环 我们 ...

  6. python基础之条件循环语句

    前两篇说的是数据类型和数据运算,本篇来讲讲条件语句和循环语句. 0x00. 条件语句 条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语 ...

  7. Python基础入门-while循环示例

    闲来无事! 想写一些基础的东西! 比如今天的while循环,,,,,, 很多python初学者,最开始学习python的时候,会被while循环给干蒙蔽! 那么今天,小编为大家讲解一些基础的实例,来帮 ...

  8. Python 全栈开发三 python基础 条件与循环

    一. 条件语句 python条件语句是根据一条或多条语句的执行结果的真假(True Or False)来决定代码块的执行. 而执行内容可以多行,以缩进来区分表示同一范围. 1.Python判断条件真假 ...

  9. Python基础:条件与循环

    条件语句 除了 boolean 类型的数据,条件判断最好是显性的 if i != 0: ... 而不是只写出变量名: if i: ... For循环与While循环 通常来说,如果你只是遍历一个已知的 ...

随机推荐

  1. fread读取文件(二进制文件)

    fread()是c库函数,利于移植,使用缓存,效率较read()高. 原型: size_t fread(void *buffer, size_t size, size_t count, FILE * ...

  2. 2017-06-21(rmdir mv ln)

    rmdir rmdir  删除空目录 mv mv  剪切或修改命令 mv [原文件或目录] [目标文件]   [原文件与目标文件在同一目录下视为修改,在不同目录下视为剪切] ln ln 链接命令[用于 ...

  3. MySQL查询结果复制到新表(更新、插入)

    MySQL中可以将查询结果复制到另外的一张表中,复制的话通常有两种情况,一种是更新已有的数据,另一种是插入一条新记录.下面通过例子来说明.首先构建两个测试表. 表t1: 表t2: 1.如果t2表中存在 ...

  4. java 重写与重载

    一.方法重写: 参数列表必须完全与被重写方法的相同: 返回类型必须完全与被重写方法的返回类型相同: 访问权限不能比父类中被重写的方法的访问权限更低.例如:如果父类的一个方法被声明为public,那么在 ...

  5. 手机文件夹的emulated什么意思

    词典翻译是仿真,就是自带的存储卡, 手机的储存方式有两种,一种是手机内存 ,一种是SD卡内存.

  6. awk之NR==FNR问题

    NR,表示awk开始执行程序后所读取的数据行数. FNR,与NR功用类似,不同的是awk每打开一个新文件,FNR便从0重新累计. 下面看两个例子: 1,对于单个文件NR 和FNR 的 输出结果一样的 ...

  7. 【转】matlab针对不同格式文件的读写

    本技术支持指南主要处理:ASCII, binary, and MAT files.要得到MATLAB中可用来读写各种文件格式的完全函数列表,可以键入以下命令: help iofun MATLAB中有两 ...

  8. MySQL--REPEATABLE-READ隔离级别下读取到的“重复数据”

    在MySQL中,使用MVCC来实现REPEATABLE-READ隔离级别,由于SELECT操作不会对数据加锁,其他回话可以修改当前回话所读取过的数据而不会被阻塞,因此读写不冲突. 在MVCC并发控制中 ...

  9. Git多帐号配置,管理多个SSH

    查看自己所有的SSH-Key $ cd ~/.ssh $ ls id_rsa id_rsa.pub known_hosts 如果你已经创建过git账号那你可能和我一样会看到只有一个SSH-Key, 这 ...

  10. 文件无法删除java.io.IOException: Unable to delete

    疑问:1.为什么调用file.delete()方法时,返回值为false. 2.为什么调用Guava工具jar包中的Files.move(from,to) ,报异常:java.io.IOExcepti ...