python基础-while循环语句

for 循环用于针对集合中的每个元素都一个代码块,而while 循环不断地运行,直到指定的条件不满足为止。

一、while循环的语法

在 Python 中,while 循环用于重复执行一段代码,直到某个条件不满足为止。其语法如下:

while 条件:
    # 循环体语句

条件是一个可以求值为 True 或 False 的表达式,也可以是一个返回布尔值的函数调用。只要条件为真,循环体内的语句就会一直执行。当循环体内的语句执行完毕后,程序会返回到条件处重新判断条件是否为真。如果条件为假,则跳过循环体,继续执行循环语句之后的代码。

二、while的使用规则

  1. 执行循环体:只要循环条件为真,就会不断地执行循环体内的语句,直到循环条件为假时退出循环。

  1. 使用 break 和 continue 语句:在循环体内使用 break 可以使程序跳出循环,使用 continue 可以使程序跳过本次循环,直接进入下一轮循环体。

三、while循环的条件表达式的使用

Python中while语句的条件表达式可以是任何类型的表达式,只要它的值为True或False。通常情况下,我们使用关系运算符、逻辑运算符或位运算符来组成条件表达式。

  1. 关系运算符

关系运算符是用于比较两个值之间关系的符号,常见的有等于(==)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)和不等于(!=)等。

  • 例如,可以使用小于号(<)来控制循环次数

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"时循环继续,否则循环结束。

  1. 逻辑运算符

使用逻辑运算符(如 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

四、while循环的常用操作

  1. while有限循环

Python中,我们可以使用 while 循环来执行一定次数的重复操作。具体方法是利用一个计数器,在每次循环后更新它的值,从而控制循环的次数。

  • 例如,可以使用小于号(<)来控制循环次数

count = 0
while count < 3:
    print("count is", count)
    count += 1
输出结果:
count is 0
count is 1
  1. while无限循环

while 的条件永远为 True 是就是一个无限循环。

var = 1
while var == 1:  # 表达式永远为 True
    num = int(input("输入一个数字:"))
    print("你输入的数字是:", num)
print("Goodbye!")

注意:while循环条件表达式总是为True,就会无限循环下去,变成死循环,所以要特别留意 while 循环的退出条件。

  1. while跳出循环

在Python中,我们可以使用 break 和 continue 两个关键字来控制循环的执行流程,从而实现跳出while循环的功能。

  1. break

使用 break 关键字:当程序遇到 break 关键字时,会立即跳出当前循环,不再执行循环之后的代码。

count = 0
while count < 5:
    if count == 3:
        break
    print("循环次数: ", count)
    count += 1
输出结果:
循环次数: 0
循环次数: 1
循环次数: 2

  1. continue

使用 continue 关键字:当程序遇到 continue 关键字时,会跳过本次循环中剩余的代码,直接进入下一轮循环。

count = 0
while count < 5:
    count += 1
    if count == 3:
        continue
    print("循环次数: ", count)
输出结果:
循环次数: 1
循环次数: 2
循环次数: 4
循环次数: 5

六、练习题

  1. 用户输入1-7七个数字,分别代表周一到周日

"""编写如下程序:
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
已退出循环!

  1. 使用while循环输出1、2、3、4、5、6、7、8、9、10

i = 1
while i <= 10:
    print(i, end=" ")  #end=" "参数,在输出时,每个数字之间都用空格分隔。
    i += 1
输出结果:1 2 3 4 5 6 7 8 9 10

  1. 求1-100的所有数的和

i = 1
sum = 0
while i <= 100:
    sum += i
    i += 1
print("1-100的所有数的和为:", sum)   #输出结果:1-100的所有数的和为: 5050

  1. 输出 1-100 内的所有奇数

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

  1. 输出 1-100 内的所有偶数

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

  1. 用户登陆(三次机会重试)

# 用户名和密码
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
登录成功!

  • 23
    点赞
  • 113
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值