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中使用mechanize模块模拟浏览器功能
May 05 Python
Python多层装饰器用法实例分析
Feb 09 Python
python list删除元素时要注意的坑点分享
Apr 18 Python
python 处理数字,把大于上限的数字置零实现方法
Jan 28 Python
Python实现的ftp服务器功能详解【附源码下载】
Jun 26 Python
python将数组n等分的实例
Dec 02 Python
Python实现ATM系统
Feb 17 Python
Python3之外部文件调用Django程序操作model等文件实现方式
Apr 07 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
Apr 09 Python
浅谈sklearn中predict与predict_proba区别
Jun 28 Python
python编写实现抽奖器
Sep 10 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
Nov 02 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读取csv实现csv文件下载功能
2013/12/18 PHP
php绘图之生成饼状图的方法
2015/01/24 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
2016/09/02 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
js下用层来实现select的title提示属性
2010/02/23 Javascript
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
jquery validate demo 基础
2015/10/29 Javascript
JavaScript事件类型中UI事件详解
2016/01/14 Javascript
深入浅析AngularJS和DataModel
2016/02/16 Javascript
jQuery使用$.each遍历json数组的简单实现方法
2016/04/18 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
JavaScript基本语法_动力节点Java学院整理
2017/06/26 Javascript
angularjs实现柱状图动态加载的示例
2017/12/11 Javascript
Angular ng-animate和ng-cookies用法详解
2018/04/18 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
js实现九宫格抽奖
2020/03/19 Javascript
Python的Django框架中settings文件的部署建议
2015/05/30 Python
Python中的字符串查找操作方法总结
2016/06/27 Python
python机器学习之贝叶斯分类
2018/03/26 Python
python模糊图片过滤的方法
2018/12/14 Python
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
Python bisect模块原理及常见实例
2020/06/17 Python
广州某公司软件工程师面试题
2014/12/22 面试题
Python文件操作的面试题
2013/06/22 面试题
C++程序员求职信
2014/05/07 职场文书
服务理念口号
2014/06/11 职场文书
销售员岗位职责
2015/02/10 职场文书
保送生自荐信范文
2015/03/26 职场文书
企业投资意向书
2015/05/09 职场文书
干部外出学习心得体会
2016/01/18 职场文书
我去timi了,一起去timi是什么意思?
2022/04/13 杂记