python while循环的基础及应用

发布时间:2024年01月22日

当前版本:

  • Python 3.8.4

简介

? ? while循环是一种在满足某个条件时重复执行代码块的结构。它会在每次执行代码块后检查条件是否为真,如果是则继续执行,直到条件不再满足为止。

? ? 这种循环结构非常灵活,可以用于根据不同的条件重复执行特定的任务,例如遍历列表、处理数据,甚至是通过用户的输入来控制程序流程。

????????

目录

1. while循环的语法

1.1. 基本语法

1.2. 跳出循环

1.3. 单行写法

2. while循环的应用

2.1. 读取用户指令

2.2. 读取文件每行内容

2.3. 猜数字游戏


????????

1. while循环的语法

1.1. 基本语法

while 循环的语法非常简单:

while 条件:
    循环体
  • 条件:这是一个布尔表达式,为真则执行,为假则不执行。
  • 循环体:就是条件为真需要执行的代码。

????????

那么什么为真?什么为假呢?

python 中 True 表示真,False 表示假,我们可以直接对 while 判定真或假,比如:

while True:    # 直接指定条件为真
    print("条件为真,执行代码...")

结果(无限循环):

????????

如果指定为假,则不会执行循环体的代码

while False:    # 直接指定条件为假
    print("条件为真,执行代码...")
print("========= 结束 =========")

????????

当然,也支持取反

while not False:    # 对假取反,为真
    print("条件为真,执行代码...")
print("========= 结束 =========")

????????

注意:编写一个无限循环(条件永远为真),程序将永远在循环中执行,导致无法终止。所以,在使用 while 循环时,一定要确保有办法让条件在某些情况下为假,以避免进入无限循环的状态。例如:

# 定义一个整数变量
w = 1

# 判断这个变量小于5
while w < 5:
    print(f"当前变量为:{w}")
    w += 1    # 每循环1次,变量+1

????????

由于 while 循环属于条件判断,所以也支持 else

# 定义一个变量
w = 1

while w < 3:    # 变量小于3执行这里的代码块
    print(f"当前w的值为:{w}")
    w += 1
else:    # 变量不小于3执行这里的代码块
    print("w不再小于3")

????????

总结

条件为 Ture 或 False,这也就意味着判断条件可以是:

  • ?>、<、=、!=、>=、<=
  • and、or、not
  • in、not in

综合使用:

while a>1 and b<2 and c in (1,2,3):
    pass

????????

1.2. 跳出循环

当程序满足某个条件或者达到了预期的目标时,可以跳出循环,避免继续执行不必要的循环迭代,可以提高代码的效率和性能。python 中给出了2种跳出循环的方法:

  • break:跳出整个循环
  • continue:跳出当前循环

????????

【案例一】跳出整个循环

# 定义一个整数变量
w = 0

# 判断这个变量小于5才循环
while w < 5:
    w += 1  #每次循环都+1
    if w == 3:
        # 如果w=3,那么跳出整个循环
        break
    print(f"当前变量为:{w}")

????????

【案例二】跳出当前循环

# 定义一个整数变量
w = 0

# 判断这个变量小于5才循环
while w < 5:
    w += 1  #每次循环都+1
    if w == 3:
        # 如果w=3,那么跳出此次循环
        continue
    print(f"当前变量为:{w}")

????????

1.3. 单行写法

在Python中,while循环本身并不支持单行写法。如果需要使用单行的话可以利用分号来实现:

x = 1
while x < 5: print(x); x += 1

????????

2. while循环的应用

2.1. 读取用户指令

【案例一】是否删除某个文件

# 定义一个用户输入的变量,用于判断
user_input = ""

# 如果这个变量不是y和n则循环询问
while user_input != "y" and user_input != "n":
    # 给这个变量赋值用户输入的字符
    user_input = input("是否删除文件file.txt(y/n): ")
    
    # 变量为y:删除文件
    if user_input == "y":
        print("开始删除文件file.txt")
    # 变量为n:不删除文件
    elif user_input == "n":
        print("不删除文件file.txt")

????????

【案例二】输入透明密码

# 导入用户输入安全密码的库
import getpass

root_pwd = "abc123"  # 设定root的真正密码
user_pwd = ""        # 用户输入的密码

# 如果密码不正确则无限循环
while user_pwd != root_pwd:
    # 输入密码(输入时为透明)
    user_pwd = getpass.getpass("请输入root密码: ")
    if user_pwd == root_pwd:
        print(f"[INFO] 您输入的密码为:{user_pwd},正确!")
    else:
        print(f"[ERROR] 您输入的密码为:{user_pwd},错误!")

????????

2.2. 读取文件每行内容

先通过 open 打开文件,再使用 while 逐行读取

file_path = r"D:\file.txt"

# 打开文件
with open(file_path, "r") as file:
    # 将文件内容赋值给变量
    line = file.readline()

    # 逐行读取内容
    while line:
        print(f"当前行内容为:{line}")
        line = file.readline()

????????

2.3. 猜数字游戏

import random

# 生成一个随机数作为答案
answer = random.randint(1, 10)

# 初始化猜测次数
guesses = 0

# 游戏开始提示
print("欢迎来到猜数字游戏!范围:1~10")

# 游戏主循环
while True:
    # 玩家输入猜测的数字
    guess = int(input("请猜一个数字: "))
    
    # 猜测次数增加
    guesses += 1
    
    # 检查猜测是否正确
    if guess == answer:
        print("恭喜你,猜对了!")
        break
    elif guess < answer:
        print("很遗憾,猜小了。")
    else:
        print("很遗憾,猜大了。")

# 打印玩家猜测的次数
print(f"恭喜玩家在第{guesses}次猜中数字,奖励一把枪")
str = """
                           / __)
 ___     __     __  ___   ( (_   __ __     __
(___()   / _\   / _\/ __)   ) _)\ \ \ / /__\\
        (__)/   \ \/ (     (__\ (__\ V /(__/
                \_/\/
"""
print(str)

文章来源:https://blog.csdn.net/m0_61066945/article/details/135659207
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。