设为首页 收藏本站
查看: 1173|回复: 0

[经验分享] Python 循环 while,for语句

[复制链接]

尚未签到

发表于 2018-8-5 10:20:34 | 显示全部楼层 |阅读模式
  一
  循环语句(有两种):
  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(&quot;hello&quot;)   #此处执行10次
  
        i += 1
  
#运行结果:[root@localhost data]# ./test.py
  
hello
  
hello
  
hello
  
hello
  
hello
  
hello
  
hello
  
hello
  
hello
  
hello
  while语句的注意事项:
  1,要控制循环的真值表达式的值来防止死循环。
  2,通常用真值表达式中的循环变量来控制循环条件。
  3,通常在循环语句块內需要改变循环来控制循环的次数和变量的走向
  while循环的嵌套:
  while语句本身是语句,和其它的语句一样可以嵌套在其它复合语句中(如:if语句 ,while语句, for语句 ....内部)
  while语句嵌套示意:
  while 真值表达式:
  .......
  while 真值表达式2:
  ......
  else:
  ........
  else:
  ........
  如:
  输入一个数,打印指定宽度的正方形:
  如:输入:5
n = int(input(&quot;输入一个数:&quot;))  
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(&quot;循环开始i=&quot;,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,死循环是指循环条件一直成立的循环
  1,死循环通常用break语句来终止循环
  3,死循环的else子句永远不会执行
  如:用input输入一些文字,当输入三个*号时,代表输入结束,否则一直循环。
s = &quot;&quot;  
while True:
  
        a = input(&quot;请输入文字(***结束)&quot;)
  
        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(&quot;继续执行此条&quot;)    #迭代对象不能够提供数据时,继续执行else中的这条
  
##运行结果:[root@localhost data]# ./test.py
  
A
  
B
  
C
  
D
  
E
  
继续执行此条
  3,else子句部分可以省略(同while语句类似)
  4,当在语句内部用break终止循环时,else子句部分语句块2不会执行,
  可迭代对象时指能依次获取数据元素的对象
  四:
  for循环嵌套: 和while循环嵌套一样
  如:
for x in &quot;ABC&quot;:  
        for y in &quot;123&quot;:
  
                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(&quot;输入一个数:&quot;))  
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语句)中,不再执行本次循环內continue之后的语句,重新开始一次新循环。
  说明:
  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]
  
>>>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-546884-1-1.html 上篇帖子: python 基本算法 下篇帖子: python set(集合)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表