for 循环用于针对集合中的每个元素都一个代码块,而while 循环不断地运行,直到指定的条件不满足为止。
在 Python 中,while 循环用于重复执行一段代码,直到某个条件不满足为止。其语法如下:
while 条件:
# 循环体语句
条件是一个可以求值为 True 或 False 的表达式,也可以是一个返回布尔值的函数调用。只要条件为真,循环体内的语句就会一直执行。当循环体内的语句执行完毕后,程序会返回到条件处重新判断条件是否为真。如果条件为假,则跳过循环体,继续执行循环语句之后的代码。
执行循环体:只要循环条件为真,就会不断地执行循环体内的语句,直到循环条件为假时退出循环。
使用 break 和 continue 语句:在循环体内使用 break 可以使程序跳出循环,使用 continue 可以使程序跳过本次循环,直接进入下一轮循环体。
Python中while语句的条件表达式可以是任何类型的表达式,只要它的值为True或False。通常情况下,我们使用关系运算符、逻辑运算符或位运算符来组成条件表达式。
关系运算符是用于比较两个值之间关系的符号,常见的有等于(==)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)和不等于(!=)等。
例如,可以使用小于号(<)来控制循环次数
count = 0
while count < 3:
print("count is", count)
count += 1
输出结果:
count is 0
count is 1
count is 2
例如,不等于(!=)
response = input("请问还需要再玩一局吗?(Yes/No)")
while response != "No":
print("好的,再来一局!")
response = input("请问还需要再玩一局吗?(Yes/No)")
print("游戏结束!")
输出结果:
请问还需要再玩一局吗?(Yes/No)Yes
好的,再来一局!
请问还需要再玩一局吗?(Yes/No)No
游戏结束!
上面的代码中,使用用户输入的字符串变量response作为循环条件表达式,当response等于"Yes"时循环继续,否则循环结束。
使用逻辑运算符(如 and、or)将多个条件表达式组合成更复杂的表达式
例如,下面是一个当两个条件同时满足时退出循环的例子:
x = 0
y = 5
while x < 10 and y > 0:
print("x is", x, "and y is", y)
x += 1
y -= 1
输出结果:
x is 0 and y is 5
x is 1 and y is 4
x is 2 and y is 3
x is 3 and y is 2
x is 4 and y is 1
在Python中,我们可以使用 while 循环来执行一定次数的重复操作。具体方法是利用一个计数器,在每次循环后更新它的值,从而控制循环的次数。
例如,可以使用小于号(<)来控制循环次数
count = 0
while count < 3:
print("count is", count)
count += 1
输出结果:
count is 0
count is 1
while 的条件永远为 True 是就是一个无限循环。
var = 1
while var == 1: # 表达式永远为 True
num = int(input("输入一个数字:"))
print("你输入的数字是:", num)
print("Goodbye!")
注意:while循环条件表达式总是为True,就会无限循环下去,变成死循环,所以要特别留意 while 循环的退出条件。
在Python中,我们可以使用 break 和 continue 两个关键字来控制循环的执行流程,从而实现跳出while循环的功能。
使用 break 关键字:当程序遇到 break 关键字时,会立即跳出当前循环,不再执行循环之后的代码。
count = 0
while count < 5:
if count == 3:
break
print("循环次数: ", count)
count += 1
输出结果:
循环次数: 0
循环次数: 1
循环次数: 2
使用 continue 关键字:当程序遇到 continue 关键字时,会跳过本次循环中剩余的代码,直接进入下一轮循环。
count = 0
while count < 5:
count += 1
if count == 3:
continue
print("循环次数: ", count)
输出结果:
循环次数: 1
循环次数: 2
循环次数: 4
循环次数: 5
"""编写如下程序:
a.用户输入1-7七个数字,分别代表周一到周日;
b.如果输入1~5,打印对应的“周一”~“周五”,如果输入的数字是6或7,打印输出“周末”
c.如果输入0,退出循环
d.输入其他内容,提示:“输入有误,请重新输入!”
提示:本题可以使用if和while循环,同时需要校验用户的输入是否正确。不用考虑浮点数等情况。
"""
while True:
num = input("请输入1-7中任意一个数字(输入0退出):")
if num == "0":
print("已退出循环!")
break
elif num in ["1", "2", "3", "4", "5"]:
print("对应的是周" + str(int(num)))
elif num in ["6", "7"]:
print("周末")
else:
print("输入有误,请重新输入!")
请输入1-7中任意一个数字(输入0退出):7
周末
请输入1-7中任意一个数字(输入0退出):3
对应的是周3
请输入1-7中任意一个数字(输入0退出):4
对应的是周4
请输入1-7中任意一个数字(输入0退出):
输入有误,请重新输入!
请输入1-7中任意一个数字(输入0退出):0
已退出循环!
i = 1
while i <= 10:
print(i, end=" ") #end=" "参数,在输出时,每个数字之间都用空格分隔。
i += 1
输出结果:1 2 3 4 5 6 7 8 9 10
i = 1
sum = 0
while i <= 100:
sum += i
i += 1
print("1-100的所有数的和为:", sum) #输出结果:1-100的所有数的和为: 5050
i = 1
while i <= 100:
if i % 2 == 1:
print(i, end=" ")
i += 1
输出结果:
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99
i = 1
while i <= 100:
if i % 2 == 0:
print(i, end=" ")
i += 1
输出结果:
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100
# 用户名和密码
username = "zqw"
password = "123456"
# 计数器,最多允许3次尝试
tries = 3
while tries > 0:
# 获取用户输入的用户名和密码
input_username = input("请输入用户名:")
input_password = input("请输入密码:")
# 验证用户名和密码是否正确
if input_username == username and input_password == password:
print("登录成功!")
break
else:
# 如果验证失败,减少计数器
tries -= 1
if tries > 0:
print(f"用户名或密码错误,您还有{tries}次机会重试。")
else:
print("登录失败,您已用尽了所有机会。")
输出结果:
请输入用户名:1
请输入密码:2
用户名或密码错误,您还有2次机会重试。
请输入用户名:1223
请输入密码:334
用户名或密码错误,您还有1次机会重试。
请输入用户名:zqw
请输入密码:123456
登录成功!