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 相关文章推荐
python实现登陆知乎获得个人收藏并保存为word文件
Mar 16 Python
python通过wxPython打开一个音频文件并播放的方法
Mar 25 Python
Python基于PycURL自动处理cookie的方法
Jul 25 Python
Python中模块string.py详解
Mar 12 Python
pandas数据处理基础之筛选指定行或者指定列的数据
May 03 Python
将python图片转为二进制文本的实例
Jan 24 Python
详解Python爬取并下载《电影天堂》3千多部电影
Apr 26 Python
在Python函数中输入任意数量参数的实例
Jul 16 Python
Pytorch实现基于CharRNN的文本分类与生成示例
Jan 08 Python
MNIST数据集转化为二维图片的实现示例
Jan 10 Python
Django后台管理系统的图文使用教学
Jan 20 Python
利用Python读取微信朋友圈的多种方法总结
Aug 23 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个人网站架设连环讲(一)
2006/10/09 PHP
PHP使用mysqldump命令导出数据库
2015/04/14 PHP
微信随机生成红包金额算法php版
2016/07/21 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
javascript 图片上传预览-兼容标准
2009/06/01 Javascript
jquery移动端TAB触屏切换实现效果
2020/12/22 Javascript
用JS实现图片轮播效果代码(一)
2016/06/26 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
2016/09/28 Javascript
微信小程序  audio音频播放详解及实例
2016/11/02 Javascript
nodejs+express实现文件上传下载管理网站
2017/03/15 NodeJs
webpack 3.X学习之多页面打包的方法
2018/09/04 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
jquery 验证用户名是否重复代码实例
2019/05/14 jQuery
node 标准输入流和输出流代码实例
2019/09/19 Javascript
Vue实现手机计算器
2020/08/17 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
微信小程序实现打卡签到页面
2020/09/21 Javascript
JS如何监听div的resize事件详解
2020/12/03 Javascript
Python入门_浅谈for循环、while循环
2017/05/16 Python
python+pyqt实现右下角弹出框
2017/10/26 Python
Sublime开发python程序的示例代码
2018/01/24 Python
详解python中eval函数的作用
2019/10/22 Python
新手入门学习python Numpy基础操作
2020/03/02 Python
pymysql 插入数据 转义处理方式
2020/03/02 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
2020/04/22 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
2021/01/12 Python
Python xlwings插入Excel图片的实现方法
2021/02/26 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
应届毕业生个人求职信范文
2014/01/29 职场文书
简单租房协议书
2014/04/09 职场文书
彩色的翅膀教学反思
2014/04/25 职场文书
植树造林的宣传标语
2014/06/23 职场文书
平安建设汇报材料
2014/12/29 职场文书
2015年学校教育教学工作总结
2015/04/22 职场文书
签约仪式致辞
2015/07/30 职场文书
Python anaconda安装库命令详解
2021/10/16 Python