day5-循环
01while循环
1.while循环
(1)语法:
while 条件语句:
循环体
(2)执行过程
先判断条件是否成立,成立就执行循环体,执行完循环体再判断条件是否成立,成立就再执行循环,…,以此类推,判断条件的时候条件不成立,循环就结束。
# 案例:使用while循环控制程序打印5次“hello world!”
x = 0
while x < 5:
x += 1
print("hello world!")
# 建议:尽量不使用while玄乎 遇到循环问题的时候优先考虑for循环
2. for和whlie的选择
遇到循环问题的时候优先考虑for循环,for循环解决不了的问题才用while循环
for循环无法解决的问题:
(1) 死循环
(2) 循环次数不确定(循环的次数不由 程序员决定,而是由使用这个程序用户的行为决定)
# 循环次数不确定的案例:写程序提示用户输入密码,直到输入的密码和系统保存的密码相同为止。
pw = '123456'
value = None #value = input('请输入密码:')
while value != pw:
value = input('请输入密码:')
02continue和break
continue和break是循环关键字,只能在循环体中使用
1.continue - 结束一次循环
执行循环体时,如果遇到了continue,当次循环结束,直接进入到下一次循环。
# 无continue
for i in range(3):
print("___", end="")
print("***")
print("") # ___***___***___***
# 有continue
for i in range(3):
print("___", end="")
continue
print("***")
print("") # _________
# 打印1-10中所有的偶数
# 方法一:
for i in range(1,11):
if i % 2 == 1:
continue
print(i,end=' ') # 2 4 6 8 10
print(" ")
# 方法二:
for x in range(1,11):
if x % 2 == 0:
print(x, end=' ') # 2 4 6 8 10
print(" ")
2.break - 结束整个循环
执行循环体时,如果遇到了break,整个循环直接结束(循环体剩下的部分不再执行,也不会进行下一次循环)
for i in range(5):
print("___", end=' ')
break
print("***", end=' ') # ___
print("")
for x in range(1,11):
if x % 5 == 0:
break
print(x, end=' ') # 1 2 3 4
print("")
break的应用 - 当while遇到break
while True:
需要重复执行的操作
if 循环结束的条件:
break
pw = '123'
while True:
value = input("请输入密码")
if value == pw:
break
# 练习:用程序实现猜数字游戏的功能
"""
系统随机产生一个0-100的随机数:
请输入你猜的数字:50
大了,再小点!
请输入你猜的数字:30
小了,再大点!
"""
from random import randint
num = randint(0,100)
count = 0
while True:
x = int(input("请输入你猜的数字"))
count += 1
if x > num:
print("你猜大了,猜小点")
elif x < num:
print("你猜小了,猜大点")
elif x == num:
print("恭喜你猜对了!一共猜了",count,"次")
break
03循环的else
1.完整的循环结构
(1) 完整的for循环
for 变量 in 序列:
循环体
else:
代码段
(2) 完整的while循环
while 条件语句:
循环体
else:
代码段
(3) else的存在不影响原来循环的执行
2.循环else的作用:
(1) else的存在不影响原来循环的执行
(2) 如果前面的循环是正常结束(for把数据取完了导致循环结束;while循环的条件不成立导致循环结束)的,else后面的代码段会在循环结束后执行;
如果前面的循环是因为遇到break而结束的,循环结束后不会执行else后面的代码段。
for x in range(3):
print(x, "hello world!")
else:
print(100)
"""
0 hello world!
1 hello world!
2 hello world!
100
"""
for x in range(3):
print(x, "hello world!")
if x == 2:
break
else:
print(100)
"""
0 hello world!
1 hello world!
2 hello world!
"""
# 案例:判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)
num = 3
for x in range(2,num):
if num % x == 0:
print(num, "不是素数")
break
else:
print(num,"是素数") # 3 是素数
# 练习:判断字符串是否是纯字母字符串
str1 = "hisfkj3"
for x in str1:
if not ("a" <= x <= "z" or "A" <= x <= "Z"):
print(str1,"不是纯字母字符串")
break # hisfkj3 不是纯字母字符串
else:
print(str1, "是纯字母字符串")