python while循环的基础及应用

python while循环的基础及应用

当前版本:

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、notin、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)

相关推荐

《c++dll篇》VS2019生成dll及调用
365体育app官方版下载

《c++dll篇》VS2019生成dll及调用

📅 07-07 👁️ 6158
华为手机
365体育app官方版下载

华为手机

📅 07-20 👁️ 2317
【美帽绝伦】毛线帽子的9个经典编织法,附图解教程
365体育app官方版下载

【美帽绝伦】毛线帽子的9个经典编织法,附图解教程

📅 06-30 👁️ 2847