第十节,While循环和for循环

While循环

  While循环,是一个循环加判断的组合,满足判断条件返回 (True)开始循环代码块,不满足判断条件返回 ()不循环

格式:

  While 条件:

     代码块

  注意:在While循环里如果不加终止循环的判断或者关键字,会一直循环(死循环)

  如:  

1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 import time #引用计时器模块
4 n = True
5 s = 1
6 while n:
7     print(s)
8     time.sleep(1) #调用计时器

  如上列While循环判断变量n等于True(真)的时候开始循环里面的代码块,打印变量s,遇到计时器等待1秒后,在重复这个过程(死循环)

 

While循环 与 if判断 的结合应用,从1循环到10终止

  如:  

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 import time #引用计时器模块
 4 n = True
 5 s = 1
 6 while n:
 7     print(s)
 8     if s == 10:
 9         n = False
10     s+=1 #变量s自身累积加1
11     time.sleep(1) #调用计时器

 上列是从1循环到10终止,While循环判断n变量为True(真),开始循环代码块,打印s变量值为1,下来遇到if判断s变量值是否等于10,显然不等于,不等于就调过判断,在下来遇到s+=1(就是s变量自身的值加1,相等于s=s+1),此时s变量的值就是2了,在下来遇到计时器等待1秒,然后开始再次重复的循环直到s变量累积相加到10,if判断s变量等于10了,执行if判断里面的代码块,if代码块里面是n变量重新赋值等于False(假),此时n变量已经是False(假)了,在次循环时,While循环条件判断到n变量为假了,不在执行While循环终止

 

While循环  关键字(break)   跳出整个循环 不在循环

  如: 循环出1到10

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 import time #引用计时器模块
 4 n = True
 5 s = 1
 6 while n:
 7     print(s)
 8     if s == 10:
 9         break
10     s+=1 #变量s自身累积加1
11     time.sleep(1) #调用计时器

  上列,当循环到10时,if判断s变量等于10的时候,执行if里面的代码块遇到 break (跳出整个循环 不在循环) 就直接跳出并且不在循环了

 

While循环  关键字(continue)   跳出本次循环  继续下次环

  如:循环出1、2、3、4、  6、7、8、9、10、 跳出5 

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 import time #引用计时器模块
 4 n = True
 5 s = 1
 6 while n:
 7     if s == 5:
 8         s += 1
 9         continue
10     print(s)
11     if s == 10:
12         break
13     s += 1 #变量s自身累积加1
14     time.sleep(1) #调用计时器

如上列,当循环到5的时候if判断到后,执行if里面的代码块,if里 s变量加1就是6,continue跳出本次循环,再次循环时s变量是6了,if判断等于5就不成立了跳过判断,往下执行,直到第二个if判断到等于10后遇到break跳出整个循环不在循环

 

While循环  求1-100所有数相加的和(1+2+3+4+5...+100)

  如: 

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 n = True
 4 s = 1
 5 t = 0
 6 while n:
 7     print(s)
 8     t = t + s
 9     if s == 100:
10         break
11     s += 1 #变量s自身累积加1
12 print(t)

  如上列,t = t + s 就是每次循环到这里的时候,将s变量自身累积加1的值在加上t变量的值重新赋值给t变量(这里可以理解为,s变量每次循环自身累积加1的值,在加上t变量的值,重新赋值给t变量做一个登记)最后在打印这个t变量,t变量最后的登记,就是整个循环相加的和

 

While循环 加 if判断  输出1-100内的所有奇数 

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 s = 1
 4 while s <= 100:
 5     t = s % 2 #让s变量的值求余后重新赋值给t变量
 6     #s求余等于0为偶数,等于1为奇数
 7     if t == 1:
 8         print(s)
 9     else:
10         pass
11     s += 1 #变量s自身累积加1

  也就是先循环出1-100,然后在循环里定义一个变量t,将每次循环到的s变量值求余后赋值给t变量,然后判断t变量的值,如是1就是奇数打印出s变量,如果不是1就是偶数就不打印pass,这样就循环加判断的方式,打印出了1-100内的所以奇数。

 

While循环 加 if判断  输出1-100内的所有偶数 

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 s = 1
 4 while s <= 100:
 5     t = s % 2 #让s变量的值求余后重新赋值给t变量
 6     #s求余等于0为偶数,等于1为奇数
 7     if t == 0:
 8         print(s)
 9     else:
10         pass
11     s += 1 #变量s自身累积加1

  也就是先循环出1-100,然后在循环里定义一个变量t,将每次循环到的s变量值求余后赋值给t变量,然后判断t变量的值,如是0就是偶数打印出s变量,如果不是0就是奇数就不打印pass,这样就循环加判断的方式,打印出了1-100内的所以奇数。

 

While循环 加 if判断  求1-2+3-4+5...99的所有数的和

  如:

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 r = 0
 4 s = 1
 5 while s <= 99:
 6     t = s % 2
 7     if t == 1:
 8         r = r + s
 9     else:
10         r = r - s
11     s += 1
12 print(r)

  也就是在循环里做判断,循环到的是奇数就相加,如果是偶数就相减,每一次循环的相加或者相减,赋值给 r变量记录一下,r变量最后的记录就是我们得到的加减后的和

 

While循环 加 if判断  用户输入用户名和密码有3次机会

  如: 

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 a = 0
 4 while a < 3:
 5     yh = input("请输入用户名")
 6     mm = input("请输入密码")
 7     if yh == "guixiu" and mm == "123":
 8         print("恭喜你登录成功")
 9         break
10     else:
11         print("很遗憾密码或用户名错误")
12     a += 1

  也就是用While循环 加 if判断,在循环里判断用户输入的用户名和密码是否正确,正确就登录成功退出整个循环,不正确提示错误,变量a加1,再次循环重复操作,当变量a的值大于3时,循环条件不在成立,停止循环

  

for循环

  主要用于循环一个字符串列表等

  不需要判断,定义一个循环变量即可

  格式:for (循环定义变量) in (被循环的变量)    循环完后自动退出整个循环

  打印循环定义变量即可

  关键字(continue)   跳出本次循环  继续下次环

  关键字(break)   跳出整个循环 不在循环

1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 # #for循环
4 #b为循环自定义变量
5 a = "abcdefghijklmnopqrstuvwxyz"
6 for b in a:
7     print(b)
8 #循环出所有字母

  关键字应用

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # #for循环
 4 #b为循环自定义变量
 5 a = "abcdefghijklmnopqrstuvwxyz"
 6 for b in a:
 7     if b == "f":
 8         continue #跳出本次循环  继续下次环
 9     else:
10         print(b)
11 #循环出所有字母(f除外)

 

如何只获取for里的第某一次值【重点】 

#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""如何只获取for里的第某一次值"""
a = [11, 22, 33, 44, 55, 66, 77, 88, 99]
for k, v in enumerate(a,1): #首先要用enumerate()函数给被循环对象,添加一个键也就是下标,这样就可以在循环里定义两个变量来分别接受键和值,
    #print(k,v)#这样就能拿到键和值,用if判断键来获取某一次需要的值
    #如:要获取第6次循环的值
    if k == 6: #如果键等于6就打印这次循环的值
        print(v)
# 输出
# 66

 

  

posted @ 2016-05-27 16:09  林贵秀  阅读(780)  评论(0编辑  收藏  举报