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 面向对象 成员的访问约束
Dec 23 Python
python中global与nonlocal比较
Nov 21 Python
Python/ArcPy遍历指定目录中的MDB文件方法
Oct 27 Python
树莓派动作捕捉抓拍存储图像脚本
Jun 22 Python
python 计算平均平方误差(MSE)的实例
Jun 29 Python
Python FtpLib模块应用操作详解
Dec 12 Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 Python
基于opencv实现简单画板功能
Aug 02 Python
Python3中FuzzyWuzzy库实例用法
Nov 18 Python
Python读取ini配置文件传参的简单示例
Jan 05 Python
Django REST framework 限流功能的使用
Jun 24 Python
Python学习之迭代器详解
Apr 01 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
动态网站web开发 PHP、ASP还是ASP.NET
2006/10/09 PHP
PHP脚本中include文件出错解决方法
2008/11/20 PHP
jquery中.add()的使用分析
2013/04/26 Javascript
基于javascript滚动图片具体实现
2013/11/18 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
JavaScript判断textarea值是否为空并给出相应提示
2014/09/04 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
2015/10/30 Javascript
AngularJS动态生成div的ID源码解析
2016/08/29 Javascript
使用bootstrapValidator插件进行动态添加表单元素并校验
2016/09/28 Javascript
详解Javascript获取缓存和清除缓存API
2017/05/25 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
2018/10/25 Javascript
用vuex写了一个购物车H5页面的示例代码
2018/12/04 Javascript
Vue实现的父组件向子组件传值功能示例
2019/01/19 Javascript
nodejs微信开发之自动回复的实现
2019/03/17 NodeJs
vue radio单选框,获取当前项(每一项)的value值操作
2020/09/10 Javascript
Python初学时购物车程序练习实例(推荐)
2017/08/08 Python
python实现聚类算法原理
2018/02/12 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
2018/04/23 Python
实例介绍Python中整型
2019/02/11 Python
Python csv模块使用方法代码实例
2019/08/29 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
关于python 跨域处理方式详解
2020/03/28 Python
python中plt.imshow与cv2.imshow显示颜色问题
2020/07/16 Python
用python实现一个简单的验证码
2020/12/09 Python
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
心理健康教育心得体会
2013/12/29 职场文书
《七颗钻石》教学反思
2014/02/28 职场文书
《春笋》教学反思
2014/04/15 职场文书
大学生求职信例文
2014/06/29 职场文书
学习三严三实心得体会
2014/10/13 职场文书
周年庆典答谢词
2015/01/20 职场文书
初中教师个人工作总结
2015/02/10 职场文书
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB