第十节,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