为了让计算机能计算成千上万次的重复运算,我们就需要循环语句。

Python中的循环语句有

  • while
  • for

循环语句的执行过程,如下图:

while 循环

Python中while语句的一般形式:

while 判断条件:
语句

以上语法的执行过程是:

当 条件 为 True,执行 语句块1 的语句

当 条件 为 False ,执行 语句块2 的语句

我们用while做一件事,计算1~100所有数字的总和:

n = 100
sum = 0
counter = 1 while counter <= n:
sum = sum + counter
counter += 1 print("1 到 ", n, " 之和是:", sum)

以上代码,输出:

1 到  100  之和是: 5050

有没有发现,用程序去做一些事,还是比较省心的,未来的世界是“机器的”,“智能的”,扯得有点远了。假如,我们的循环语句的条件是恒定为True,那会出现什么情况?

while 2 > 1:  # 表达式永远为 true
name = input('请输入您的名字:')
print("您好 ", name) print("Good bye!")

以上代码,输出:

请输入您的名字:roy
您好 roy
请输入您的名字:

你应该也发现了,程序会一直不断的要求你输入名字,程序在无限循环(又称死循环)。

while也可以搭配else来用,当 条件 为 false 时执行 else 的语句块:

while 判断条件:
语句1
else:
语句2

代码实例:

count = 0
while count < 5:
print(count, " 小于 5")
count = count + 1
else:
print(count, " 大于或等于 5")

以上代码,输出:

0  小于 5
1 小于 5
2 小于 5
3 小于 5
4 小于 5
5 大于或等于 5

for 循环

基本语法:

for 变量 in 序列:
语句块

以上语法的执行过程是:

依次从序列中取一个元素,然后赋值给变量,并执行语句块,直到序列的所有元素都被赋过值。这一点,很像其它语言中的foreach。

代码实例:

languages = ["C", "C++", "Perl", "Python"]
for x in languages:
print(x)

以上代码,输出:

C
C++
Perl
Python

for也可以搭配else来用,当序列中所有值被赋值过一次后,执行 else 的语句块,语法如下:

for 变量 in 序列:
语句块1
else:
语句块2

实例

languages = ["C", "C++", "Perl", "Python"]
for x in languages:
print(x)
else:
print('这里是else')

以上代码,输出:

C
C++
Perl
Python
这里是else

range()函数

如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列,例如:

for i in range(5):
print(i)

以上代码,输出:

0
1
2
3
4

你也可以使用range指定区间的值:

for i in range(5, 9):
print(i)

以上代码输出:

5
6
7
8

注意,以上代码输出是包含5,不包含9的

也可以使range以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做“步长”):

for i in range(0, 10, 3):
print(i)

以上代码,输出:

0
3
6
9

其中的,3 是步长

来个负数的:

for i in range(-1, -10, -3):
print(i)

以上代码,输出:

-1
-4
-7

其中的, -3 是步长

思考:如何打印1~100的奇数,把你知道的方式都写出来。下面提供2种,但在你写出代码前,请尽可能不要先查看:

方式1:

n = 1

while n <= 100:  # <=  的意思,请参阅第五章的Python比较运算符
if n % 2 == 1: # % 的意思,请参阅第五章的Python算术运算符
print(n) n += 1 # += 的意思,请参阅第五章的Python赋值运算符

方式2:

for n in range(1, 101):
if n % 2 == 1:
print(n)

break
在循环中,break语句可以提前退出循环。例如,本来要循环打印1~5的数字:

n = 1

while n <= 5:
print(n)
n = n + 1 print('END')

以上代码,输出:

1
2
3
4
5
END

如果我们希望,当n=3的时候就退出循环,我们可以这么做:

n = 1

while n <= 5:
if n == 3:
break
print(n)
n = n + 1 print('END')

以上代码,输出:

1
2
END

break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。 实例如下:

n = 1

while n <= 5:
if n == 3:
break
print(n)
n = n + 1
else:
print('ELSE') print('END')

以上代码,输出:

1
2
END

continue
在循环过程中,也可以通过continue语句,跳过当前循环块中的剩余语句,然后继续进行下一轮循环。同样本来要循环打印1~5的数字,但我想当n=3时,不打印:

 n = 1

 while n <= 5:

     if n == 3:
n = n + 1
continue
print(n)
n = n + 1 print('END')

以上代码,输出:

1
2
4
5
END

思考,如果将第6行代码n = n + 1删除会出现什么现象,为什么?

continue只会终止当前这次的循环,不会终止整个循环所以else语句将会继续执行:

n = 1

while n <= 5:

    if n == 3:
n = n + 1
continue
print(n)
n = n + 1
else:
print('ELSE')
print('END')

以上代码,输出:

1
2
4
5
ELSE
END

注:

  • break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句使用。
  • 要特别注意,不要滥用break和continue语句。break和continue会造成代码执行逻辑分叉过多,容易出错。大多数循环并不需要用到break和continue语句。上面的例子,都可以通过改写循环条件或者修改循环逻辑,去掉break和continue语句,请自行尝试改写一下。

pass 语句

pass是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句,如下实例:

while True:
pass

再来看下面的代码:

n = 1

while n <= 5:
if n == 3:
pass
print('执行 pass 块')
print(n)
n = n + 1 print('END')

以上代码,输出:

1
2
执行 pass 块
3
4
5
END

python3 第七章 - 循环语句的更多相关文章

  1. ★Java语法(七)——————————循环语句

    package 自我总结; public class 循环语句 { public static void main(String[] args) { // while 循环 // 用法: // whi ...

  2. Python3入门系列之-----循环语句(for/while)

    前言 for循环在Python中是用的比较多的一种循环方法,小伙伴需要熟练掌握它的使用 本章节将为大家介绍 Python 循环语句的使用.Python 中的循环语句有 for 和 while for循 ...

  3. 吴裕雄--天生自然 PYTHON3开发学习:循环语句

    n = 100 sum = 0 counter = 1 while counter <= n: sum = sum + counter counter += 1 print("1 到 ...

  4. Python3循环语句

    Python3 循环语句 Python中的循环语句有for和while. 循环语句控制结构图如下: 一.while循环 ①循环结构 while 判断条件: 执行语句 实例: n = int(input ...

  5. python3循环语句while

    Python的循环语句有for和while语句,这里讲while语句. Python中while语句的一般形式: while 条件判断 : 语句 需要注意冒号和缩进.另外,注意Python中没有do. ...

  6. 【C语言探索之旅】 第一部分第七课:循环语句

    内容简介 1.课程大纲 2.第一部分第七课: 循环语句 3.第一部分第八课预告: 第一个C语言小游戏 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编 ...

  7. python3学习笔记十(循环语句)

    参考http://www.runoob.com/python3/python3-loop.html 循环语句 while循环 # !/usr/bin/env python3 n = 100 sum = ...

  8. python第三章:循环语句--小白博客

    Python条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python程序语言指定任何非0和非 ...

  9. 《Visual C#从入门到精通》第四章使用复合赋值和循环语句——读书笔记

    第1章 使用复合赋值和循环语句 4.1 使用复合赋值操作符 任何算术操作符都可以像这样与赋值操作符合并,从而获得复合赋值操作符. 不要这样写 要这样写 Variable=Variable*number ...

随机推荐

  1. css条纹背景

    一. 水平条纹 1. 两种颜色: html <div class="stripe"></div> css .stripe{ width: 250px; he ...

  2. Vue自己写组件——Demo详细步骤

    公司近期发力,同时开了四五个大项目,并且都是用Vue来做的,我很荣幸的被分到了写项目公用模块的组,所以需要将公用的部分提取成组件的形式,供几个项目共同使用,下面详细讲一下写Vue组件的具体步骤. 一. ...

  3. 关于“System.Data.OleDb.OleDbException,外部数据库驱动程序 (1) 中的意外错误。”的解决方案

    网站之前运行一直很正常,但有一次用户在导入格式为xls的excel文件,发生了错误,跟踪错误后抛出如下的异常: 错误提示: 未处理System.Data.OleDb.OleDbException HR ...

  4. Python线程:线程的调度-守护线程

    Python线程:线程的调度-守护线程   守护线程与普通线程写法上基本么啥区别,调用线程对象的方法setDaemon(true),则可以将其设置为守护线程.在python中建议使用的是thread. ...

  5. java中的重载与重写

    重载简述 在java语言中,同一个类中的两个或者两个以上的方法可以有同一个名字,只要他们的的参数声明不同即可,该方法被称为重载,这个过程称为方法的重载,它是实现java多态性的一种方式. 重载是友好的 ...

  6. 关于python使用threadpool中的函数单个参数和多个参数用法举例

    1.对单个元素的函数使用线程池: # encoding:utf-8 __author__='xijun.gong' import threadpool def func(name): print 'h ...

  7. Java与算法之(6) - 八皇后问题

    在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法. (文字和图片来自百度百科) 如果动手来摆放皇后,可以用这样一种思路:在最左侧 ...

  8. Jfinal启动源码解读

    本文对Jfinal的启动源码做解释说明. PS:Jfinal启动容器可基于Tomcat/Jetty等web容器启动,本文基于Jetty的启动方式做启动源码的解读和分析,tomcat类似. 入口  JF ...

  9. 【Html5】-- 塔台管制

    想做这个游戏已久,今天终于初步完成,先解释下,这是一个模拟机场塔台管制指挥的游戏,飞机从不同的方向飞入管制空域,有不同的目的地,飞机名称最后一个字母表示飞机要到达的目的地,分ABCD和R.A-D表示四 ...

  10. (转)关于docker的15个小tip

    转自:https://www.cnblogs.com/elnino/p/3899136.html 1. 获取最近运行容器的id 这是我们经常会用到的一个操作,按照官方示例,你可以这样做(环境ubunt ...