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的print用法示例
Feb 11 Python
利用PyInstaller将python程序.py转为.exe的方法详解
May 03 Python
解决python matplotlib imshow无法显示的问题
May 24 Python
在Python中关于使用os模块遍历目录的实现方法
Jan 03 Python
对python中list的拷贝与numpy的array的拷贝详解
Jan 29 Python
python for 循环获取index索引的方法
Feb 01 Python
pymongo中group by的操作方法教程
Mar 22 Python
Python 字符串、列表、元组的截取与切片操作示例
Sep 17 Python
Python qrcode 生成一个二维码的实例详解
Feb 12 Python
python pyecharts 实现一个文件绘制多张图
May 13 Python
python3.6中anaconda安装sklearn踩坑实录
Jul 28 Python
Python 数据分析之逐块读取文本的实现
Dec 14 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
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
Memcache 在PHP中的使用技巧
2010/02/08 PHP
file_get_contents(&quot;php://input&quot;, &quot;r&quot;)实例介绍
2013/07/01 PHP
一个比较不错的PHP日历类分享
2014/11/18 PHP
Yii遍历行下每列数据的方法
2016/10/17 PHP
PHP判断数组是否为空的常用方法(五种方法)
2017/02/08 PHP
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
2007/04/21 Javascript
javascript cookie解码函数(兼容ff)
2008/03/17 Javascript
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
20个最新的jQuery插件
2012/01/13 Javascript
FullCalendar日历插件应用之数据展现(一)
2015/12/23 Javascript
关于原生js中bind函数的简单实现
2016/08/10 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
详解前端路由实现与react-router使用姿势
2017/08/07 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
Node解决简单重复问题系列之Excel内容的获取
2018/01/02 Javascript
vue.js实现只弹一次弹框
2018/01/29 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
2020/01/08 Javascript
微信小程序开发(二):页面跳转并传参操作示例
2020/06/01 Javascript
Vue实现小购物车功能
2020/12/21 Vue.js
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python3字符串学习教程
2015/08/20 Python
Python3中的真除和Floor除法用法分析
2016/03/16 Python
Python 中urls.py:URL dispatcher(路由配置文件)详解
2017/03/24 Python
如何更优雅地写python代码
2019/07/02 Python
python模拟实现斗地主发牌
2020/01/07 Python
用python写PDF转换器的实现
2020/10/29 Python
周仰杰(JIMMY CHOO)英国官方网站:闻名世界的鞋子品牌
2018/10/28 全球购物
什么是就业协议书
2014/04/17 职场文书
奶茶店创业计划书
2014/08/14 职场文书
说好普通话圆梦你我他演讲稿
2014/09/21 职场文书
新闻简讯格式及范文
2015/07/22 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书
提取视频中的音频 Python只需要三行代码!
2021/05/10 Python
索尼ICF-5900W收音机测评
2022/04/24 无线电