Python3 循环语句(for、while、break、range等)


Posted in Python onNovember 20, 2017

本章节将为大家介绍Python循环语句的使用。

Python中的循环语句有 for 和 while。

Python循环语句的控制结构图如下所示:

Python3 循环语句(for、while、break、range等)

while 循环

Python中while语句的一般形式:

while 判断条件:

语句

同样需要注意冒号和缩进。另外,在Python中没有do..while循环。
以下实例使用了 while 来计算 1 到 100 的总和

#!/usr/bin/env python3
 
n = 100
 
sum = 0
counter = 1
while counter <= n:
  sum = sum + counter
  counter += 1
 
print("1 到 %d 之和为: %d" % (n,sum))

执行结果如下:

1 到 100 之和为: 5050

无限循环
我们可以通过设置条件表达式永远不为 false 来实现无限循环,实例如下:

#!/usr/bin/python3
 
var = 1
while var == 1 : # 表达式永远为 true
  num = int(input("输入一个数字 :"))
  print ("你输入的数字是: ", num)
 
print ("Good bye!")

执行以上脚本,输出结果如下:

输入一个数字 :5
你输入的数字是: 5
输入一个数字 :

你可以使用 CTRL+C 来退出当前的无限循环。
无限循环在服务器上客户端的实时请求非常有用。

while 循环使用 else 语句

在 while … else 在条件语句为 false 时执行 else 的语句块:

#!/usr/bin/python3
 
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

简单语句组

类似if语句的语法,如果你的while循环体中只有一条语句,你可以将该语句与while写在同一行中, 如下所示:

#!/usr/bin/python
 
flag = 1
 
while (flag): print ('欢迎访问三水点靠木!')
 
print ("Good bye!")

注意:以上的无限循环你可以使用 CTRL+C 来中断循环。
执行以上脚本,输出结果如下:

for 语句

Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
for循环的一般格式如下:

for <variable> in <sequence>:
  <statements>
else:
  <statements>

Python loop循环实例:
实例

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

以下 for 实例中使用了 break 语句,break 语句用于跳出当前循环体:
实例

#!/usr/bin/python3
 
sites = ["Baidu", "Google","3water","Taobao"]
for site in sites:
  if site == "3water":
    print("三水点靠木!")
    break
  print("循环数据 " + site)
else:
  print("没有循环数据!")
print("完成循环!")

执行脚本后,在循环到 "3water"时会跳出循环体:
循环数据 Baidu
循环数据 Google
三水点靠木!
完成循环!

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
>>>

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

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

负数:

>>>for i in range(-10, -100, -30) :
  print(i)
 
  
-10
-40
-70
>>>

您可以结合range()和len()函数以遍历一个序列的索引,如下所示:

>>>a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']
>>> for i in range(len(a)):
...   print(i, a[i])
... 
0 Google
1 Baidu
2 Runoob
3 Taobao
4 QQ
>>>

还可以使用range()函数来创建一个列表:

>>>list(range(5))
[0, 1, 2, 3, 4]
>>>

break和continue语句及循环中的else子句

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

#!/usr/bin/python3
 
for letter in 'Jb51net':   # 第一个实例
  if letter == 'e':
   break
  print ('当前字母为 :', letter)
 
var = 10          # 第二个实例
while var > 0:       
  print ('当期变量值为 :', var)
  var = var -1
  if var == 5:
   break
 
print ("Good bye!")

执行以上脚本输出结果为:

当前字母为 : J
当前字母为 : b
当前字母为 : 5
当前字母为 : 1
当前字母为 : n
当期变量值为 : 10
当期变量值为 : 9
当期变量值为 : 8
当期变量值为 : 7
当期变量值为 : 6
Good bye!

continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。

#!/usr/bin/python3
 
for letter in 'Jb51net':   # 第一个实例
  if letter == 'n':    # 字母为 o 时跳过输出
   continue
  print ('当前字母 :', letter)
 
var = 10          # 第二个实例
while var > 0:       
  var = var -1
  if var == 5:       # 变量为 5 时跳过输出
   continue
  print ('当前变量值 :', var)
print ("Good bye!")

执行以上脚本输出结果为:

当前字母 : J
当前字母 : b
当前字母 : 5
当前字母 : 1
当前字母 : e
当前字母 : t
当前变量值 : 9
当前变量值 : 8
当前变量值 : 7
当前变量值 : 6
当前变量值 : 4
当前变量值 : 3
当前变量值 : 2
当前变量值 : 1
当前变量值 : 0
Good bye!

循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被break终止时不执行。
如下实例用于查询质数的循环例子:

#!/usr/bin/python3
 
for n in range(2, 10):
  for x in range(2, n):
    if n % x == 0:
      print(n, '等于', x, '*', n//x)
      break
  else:
    # 循环中没有找到元素
    print(n, ' 是质数')

执行以上脚本输出结果为:

2 是质数
3 是质数
4 等于 2 * 2
5 是质数
6 等于 2 * 3
7 是质数
8 等于 2 * 4
9 等于 3 * 3

pass 语句

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

>>>while True:
...   pass # 等待键盘中断 (Ctrl+C)

最小的类:

>>>class MyEmptyClass:
...   pass

以下实例在字母为 o 时 执行 pass 语句块:

#!/usr/bin/python3
 
for letter in 'Jb51net': 
  if letter == 'n':
   pass
   print ('执行 pass 块')
  print ('当前字母 :', letter)
 
print ("Good bye!")

执行以上脚本输出结果为:

当前字母 : J
当前字母 : b
当前字母 : 5
当前字母 : 1
执行 pass 块
当前字母 : n
当前字母 : e
当前字母 : t
Good bye!

使用内置 enumerate 函数进行遍历:

for index, item in enumerate(sequence):
    process(index, item)

实例

>>> sequence = [12, 34, 34, 23, 45, 76, 89]
>>> for i, j in enumerate(sequence):
...   print(i, j)
... 
0 12
1 34
2 34
3 23
4 45
5 76
6 89

for 循环 1-100 所有整数的和

#!/usr/bin/env python3

n = 0
sum = 0
for n in range(0,101):# n 范围 0-100
  sum += n
print(sum)

使用循环嵌套来实现99乘法法则:

#!/usr/bin/python3

#外边一层循环控制行数
#i是行数
i=1
while i<=9:
   #里面一层循环控制每一行中的列数
   j=1
   while j<=i:
     mut =j*i
     print("%d*%d=%d"%(j,i,mut), end=" ")
     j+=1
   print("")
   i+=1

for 循环的嵌套使用实例:

#!/usr/bin/python3

for i in range(1,6):
  for j in range(1, i+1):
   print("*",end='')
  print('\r')

输出结果:
*
**
***
****
*****

1-100 的和:

>>> sum(range(101))
5050

while 循环语句和 for 循环语句使用 else 的区别:
1、如果 else 语句和 while 循环语句一起使用,则当条件变为 False 时,则执行 else 语句。
2.如果 else 语句和 for 循环语句一起使用,else 语句块只在 for 循环正常终止时执行!

Python 相关文章推荐
Python中用于转换字母为小写的lower()方法使用简介
May 19 Python
python通过文件头判断文件类型
Oct 30 Python
浅谈Python中函数的参数传递
Jun 21 Python
Python简单爬虫导出CSV文件的实例讲解
Jul 06 Python
python3.7.0的安装步骤
Aug 27 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
May 29 Python
Python re 模块findall() 函数返回值展现方式解析
Aug 09 Python
Python使用APScheduler实现定时任务过程解析
Sep 11 Python
Python selenium的基本使用方法分析
Dec 21 Python
Python中logging日志库实例详解
Feb 19 Python
PyCharm2019.3永久激活破解详细图文教程,亲测可用(不定期更新)
Oct 29 Python
Python+logging输出到屏幕将log日志写入文件
Nov 11 Python
Python虚拟环境项目实例
Nov 20 #Python
Python插件virtualenv搭建虚拟环境
Nov 20 #Python
使用tensorflow实现AlexNet
Nov 20 #Python
Django在win10下的安装并创建工程
Nov 20 #Python
Python2与python3中 for 循环语句基础与实例分析
Nov 20 #Python
Python3中类、模块、错误与异常、文件的简易教程
Nov 20 #Python
Python实现将HTML转换成doc格式文件的方法示例
Nov 20 #Python
You might like
关于在php.ini中添加extension=php_mysqli.dll指令的说明
2007/06/14 PHP
php防止站外远程提交表单的方法
2014/10/20 PHP
PHP实现的比较完善的购物车类
2014/12/02 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
2015/07/10 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
PHP检查URL包含特定字符串实例方法
2019/02/11 PHP
js类的静态属性和实例属性的理解
2009/10/01 Javascript
js css后面所带参数含义介绍
2013/08/18 Javascript
javascript 动态创建表格
2015/01/08 Javascript
JavaScript禁止用户多次提交的两种方法
2016/07/24 Javascript
详解自动生成博客目录案例
2016/12/09 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
Angular中$broadcast和$emit的使用方法详解
2017/05/22 Javascript
angular动态删除ng-repaeat添加的dom节点的方法
2017/07/20 Javascript
浅谈Postman解决token传参的问题
2018/03/31 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
Node.js中文件系统fs模块的使用及常用接口
2020/03/06 Javascript
Python的subprocess模块总结
2014/11/07 Python
Pycharm插件(Grep Console)自定义规则输出颜色日志的方法
2020/05/27 Python
Python使用tkinter实现摇骰子小游戏功能的代码
2020/07/02 Python
Python中对象的比较操作==和is区别详析
2021/02/12 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
基于tensorflow __init__、build 和call的使用小结
2021/02/26 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
AmazeUI的JS表单验证框架实战示例分享
2020/08/21 HTML / CSS
Crabtree & Evelyn英国官网:瑰珀翠护手霜、香水、沐浴和身体护理
2018/04/26 全球购物
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
物业经理求职自我评价
2013/09/22 职场文书
幼儿园教师国培感言
2014/02/02 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
我的画教学反思
2014/04/28 职场文书
初中教师业务学习材料
2014/05/12 职场文书
党支部三会一课计划
2014/09/24 职场文书
个人剖析材料范文
2014/09/30 职场文书
公司授权委托书
2014/10/17 职场文书
导游词之湖北武当山
2019/09/23 职场文书