Python 循环语句之 while,for语句详解


Posted in Python onApril 23, 2018

循环语句(有两种):

while 语句
for   语句

while 语句:

问题:输入一个整数n,让程序输出n行的:

hello 1
hello 2
.......
hell n

while 语句:

作用:根据一定条件,重复的执行一条语句或多条语句

语法:

while 真值表达式:

语句块1......
else:
语句块2......

说明:

1,先执行真值表达式,测试布尔值为True或False
2,如果真值表达式的测试值为True,侧执行语句1,然后再返回到第一步重复进行测试
3,如果真值表达式的测试值为False。则执行else子句中的语句块2,然后结束此while语句的执行,如果没有else子句,则直接结束while语句的执行。
4,else子句部分可以省略(同if语句类似)。

如:打印10行的hello

i = 1      #创建并初始化一个控制while循环的变量i
while i <= 10:
        print("hello")   #此处执行10次
        i += 1
#运行结果:[root@localhost data]# ./test.py
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello

while语句的注意事项:

1,要控制循环的真值表达式的值来防止死循环。
2,通常用真值表达式中的循环变量来控制循环条件。
3,通常在循环语句块?刃枰?谋溲?防纯刂蒲?返拇问?捅淞康淖呦?/p>

while循环的嵌套:

while语句本身是语句,和其它的语句一样可以嵌套在其它复合语句中(如:if语句 ,while语句, for语句 ....内部)

while语句嵌套示意:

while 真值表达式:
.......
while 真值表达式2:
......
else:
........
else:
........
如:

输入一个数,打印指定宽度的正方形:
如:输入:5

n = int(input("输入一个数:"))
j = 1
while j <= n:
    i = 1
    while i <= n:
        print(i,end=' ')
        i += 1
    print()
    j += 1
######运行结果:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5

break 语句:

作用:用于循环语句(while,for语句)中,用来终止当前循环语句的执行。

说明:
1,当break语句执行后,此循环语句break之后的语句将不再执行
2,break语句通常和if语句组合使用。
3,break语句终止循环时,循环语句的else子句将不会被执行
4,break语句只能终止当前循环的执行,如果有循环嵌套时,不会跳出嵌套的外重循环
5,break语句只能在循环语句(while或for语句)内部使用
如:

i = 1
while i < 10:
        print("循环开始i=",i)
        if i == 5:      #当i = 5时结束循环
                break
        i += 1
#运行结果:[root@localhost data]# ./test.py
循环开始i= 1
循环开始i= 2
循环开始i= 3
循环开始i= 4
循环开始i= 5

死循环 death loop:

1,死循环是指循环条件一直成立的循环
2,死循环通常用break语句来终止循环
3,死循环的else子句永远不会执行
如:用input输入一些文字,当输入三个*号时,代表输入结束,否则一直循环。

s = ""
while True:
        a = input("请输入文字(***结束)")
        if a == '***':
                break
        s += a + '\n'
##运行结果:[root@localhost data]# ./test.py
请输入文字(***结束)a
请输入文字(***结束)b
请输入文字(***结束)v
请输入文字(***结束)c
请输入文字(***结束)d
请输入文字(***结束)***   #输入三个*** 结束,退出循环
[root@localhost data]#

二:for 语句(循环语句)

作用:用来遍历可迭代对象的数据元素

语法:
for 变量列表 in 可迭代对象:

语句块1......
else:
语句块2......

语法说明:

1,可迭代对象每次提供一个元素依次赋值给变量列表中的变量,赋值完毕后执行语句块1,重复执行此步骤,
2,当可迭代对象不能够提供数据时,执行else子句部分的语句块2,然后退出循环。

如:

s = 'ABCDE'
for x in s:
        print(x)
else:  
        print("继续执行此条")    #迭代对象不能够提供数据时,继续执行else中的这条
##运行结果:[root@localhost data]# ./test.py
A
B
C
D
E
继续执行此条

3,else子句部分可以省略(同while语句类似)

4,当在语句内部用break终止循环时,else子句部分语句块2不会执行,
             可迭代对象时指能依次获取数据元素的对象

四:for循环嵌套:

和while循环嵌套一样

如:

for x in "ABC":
        for y in "123":
                print(x + y)
##运行结果:
[root@localhost data]# ./test.py
A1
A2
A3
B1
B2
B3
C1
C2
C3

经典否循环嵌套示例

               用for循环嵌套打印如下图形:
(输入一个数n(10以内)代表矩形的宽度和高度)
如: 输入:5

1 2 3 4 5
  2 3 4 5 6
  3 4 5 6 7
  4 5 6 7 8
  5 6 7 8 9

n = int(input("输入一个数:"))
for i in range(1, n +1):
    for j in range(i, i + n):
        print(j,end=' ')
    else:
        print()
        
#运行结果:
[root@localhost data]# ./test.py
输入一个数:5
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9

五:continue 语句:

作用:用于循环语句(while,for语句)中,不再执行本次循环??ontinue之后的语句,重新开始一次新循环。

说明:

1,在while语句中执行continue语句,将直接跳转到while语句的真值表达式重新判断循环条件。
2,在for语句中执行continue语句,将会从可迭代对象中取下一个元素,绑定变量后再次进行循环。
如:

for i in range(5):
        if i == 3:    #当i 等于3时,跳过打印,进行下一次循环。
                continue
        print(i)
#运行结果      
[root@localhost data]# ./test.py
0
1
2
4

示例:
写一个程序,求1-100之间所不能被5,7,11整除的数的和。

s = 0
for i in range(1,101):
    if (i % 5) == 0 or (i % 7) == 0 or (i % 11) == 0:
        continue
    s += i
print(s)
#运行结果:
[root@localhost data]# ./test.py
3007

六:range 函数:

作用:用来创建一个生成一系类整数的可迭代对象(也叫整数序列生成器。)
调用格式:
range(stop)
从零开始,每次生成一个整数后加1,操作,直到stop为止(不包含stop)
range(start,stop[,step])从start开始,每次生成一个整数后移动step,直到stop为止(不包含stop,且step可以为负数。)
          注:如果直接打印range(5)或(print(range(5)))的时候会得到range(5),而不是一个列表,这是因为节省空间,防止过大的列表产生。
    如:

>>> range(5)    
range(0, 5)
>>>
       如果想要到交互模式下得到列表,可以加入list到前面来进行,如下:
示例:

>>> list(range(5))     
[0, 1, 2, 3, 4]
>>> list(range(1,6))   
[1, 2, 3, 4, 5]
>>> list(range(10,0,-1))
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> list(range(1,10,2))
[1, 3, 5, 7, 9]
>>> list(range(5,0,-2))
[5, 3, 1]
>>>

Python 相关文章推荐
通过mod_python配置运行在Apache上的Django框架
Jul 22 Python
Python基于回溯法子集树模板解决选排问题示例
Sep 07 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
Nov 23 Python
python实现简单登陆流程的方法
Apr 22 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
Nov 11 Python
Mac 使用python3的matplot画图不显示的解决
Nov 23 Python
Python 使用 prettytable 库打印表格美化输出功能
Dec 26 Python
django中url映射规则和服务端响应顺序的实现
Apr 02 Python
matlab、python中矩阵的互相导入导出方式
Jun 01 Python
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
Jun 14 Python
详解Pandas 处理缺失值指令大全
Jul 30 Python
python开发一个解析protobuf文件的简单编译器
Nov 17 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
Apr 23 #Python
python批量替换多文件字符串问题详解
Apr 22 #Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
Apr 22 #Python
Python3.6笔记之将程序运行结果输出到文件的方法
Apr 22 #Python
Python解决八皇后问题示例
Apr 22 #Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
Apr 22 #Python
对python中raw_input()和input()的用法详解
Apr 22 #Python
You might like
PHP版本升级到7.x后wordpress的一些修改及wordpress技巧
2015/12/25 PHP
远离JS灾难css灾难之 js私有函数和css选择器作为容器
2011/12/11 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
2012/12/12 Javascript
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
jQuery基本选择器选择元素使用介绍
2013/04/18 Javascript
js中的this关键字详解
2013/09/25 Javascript
nodejs中使用monk访问mongodb
2014/07/06 NodeJs
用console.table()调试javascript
2014/09/04 Javascript
JavaScript实现N皇后问题算法谜题解答
2014/12/29 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
jQuery实现返回顶部效果的方法
2015/05/29 Javascript
Jquery结合HTML5实现文件上传
2015/06/25 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
2016/09/21 Javascript
JS重载实现方法分析
2016/12/16 Javascript
微信小程序之购物车功能
2020/09/23 Javascript
JS实现的四级密码强度检测功能示例
2017/05/11 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
2017/05/18 Javascript
axios发送post请求,提交图片类型表单数据方法
2018/03/16 Javascript
如何让node运行es6模块文件及其原理详解
2018/12/11 Javascript
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
2020/04/13 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
2020/11/24 Javascript
[03:23:49]2016.12.17日完美“圣”典全回顾
2016/12/19 DOTA
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
深入理解Javascript中的this关键字
2015/03/27 Python
python程序快速缩进多行代码方法总结
2019/06/23 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
python连接mongodb数据库操作数据示例
2020/11/30 Python
python+selenium实现12306模拟登录的步骤
2021/01/21 Python
实例讲解使用CSS实现多边框和透明边框的方法
2015/09/08 HTML / CSS
JustFab加拿大:女鞋、靴子、手袋和服装在线
2018/05/18 全球购物
英国最大的宠物商店:Pets at Home
2019/04/17 全球购物
莫斯科制造商的廉价皮大衣:Fursk
2020/06/09 全球购物
军训口号
2014/06/13 职场文书
工作收入住址证明
2014/10/28 职场文书
幼儿园托班开学寄语(2016秋季)
2015/12/03 职场文书