while`循环

简介: `Python`的`while`循环在条件为真时重复执行代码块。常见用法包括:固定次数循环、无限循环(可由外部条件退出)、使用`break`和`continue`控制流程,以及等待条件满足。经典应用案例有模拟登录尝试、读取文件至末尾和实现简单聊天机器人。`while`循环适用于处理不确定次数迭代和条件触发场景。

Python中的while循环是一种基本的循环结构,它会在条件为真时反复执行代码块。while循环的语法如下:

while condition:
    # 执行代码块

这里的condition是一个布尔表达式,如果其值为True,则执行缩进的代码块。每次执行完代码块后,会重新评估条件表达式,如果仍然为True,则继续执行循环体。当条件表达式为False时,循环停止。

常见的用法

  1. 执行固定次数的循环

    count = 5
    while count > 0:
        print("Count:", count)
        count -= 1
    
  2. 无限循环

    while True:
        # 执行代码块,直到外部条件(如用户输入)触发退出
        user_input = input("Enter 'exit' to quit: ")
        if user_input == 'exit':
            break
    
  3. 使用breakcontinue语句

    numbers = [1, 2, 3, 4, 5, 6]
    while True:
        current = numbers.pop(0)
        if current == 3:
            continue  # 跳过当前迭代,继续下一次迭代
        if current > 5:
            break  # 条件不满足时退出循环
        print(current)
    
  4. 等待条件满足

    import time
    from threading import Event
    
    stop_event = Event()
    
    def stop_thread():
        stop_event.set()
    
    thread = threading.Thread(target=stop_thread)
    thread.start()
    
    while not stop_event.is_set():
        print("Thread is running...")
        time.sleep(1)
    
    print("Thread has stopped.")
    

经典的应用案例

  1. 模拟用户登录尝试
    用户有限定次数尝试登录,超过次数则锁定账户。

    MAX_ATTEMPTS = 3
    attempts = 0
    
    while attempts < MAX_ATTEMPTS:
        username = input("Enter username: ")
        password = input("Enter password: ")
        if valid_login(username, password):
            print("Login successful!")
            break
        else:
            attempts += 1
            print(f"Invalid credentials. Attempts left: {MAX_ATTEMPTS - attempts}")
    
        if attempts == MAX_ATTEMPTS:
            print("Account locked!")
            break
    
  2. 读取文件直到文件末尾
    打开一个文件,并逐行读取内容,直到文件结束。

    filename = 'example.txt'
    with open(filename, 'r') as file:
        while True:
            line = file.readline()
            if not line:
                break
            print(line, end='')  # 打印每一行内容
    
  3. 实现简单的聊天机器人
    允许用户与机器人对话,直到用户选择退出。

    print("Welcome to the chatbot! Type 'exit' to quit.")
    
    while True:
        message = input("You: ")
        if message.lower() == 'exit':
            print("Chatbot: Goodbye!")
            break
        response = chatbot_response(message)
        print(f"Chatbot: {response}")
    

while循环是处理不确定次数的迭代和等待特定条件发生时的理想选择。通过结合breakcontinue语句,可以灵活地控制循环的执行流程。

目录
相关文章
|
1月前
什么是 While 循环?
什么是 While 循环?
34 0
|
6月前
|
C语言
do-while 循环
do-while 循环
46 1
|
6月前
|
机器学习/深度学习
while循环
该内容是关于编程中的`while`循环结构介绍。它以markdown格式展示了`while`循环的基本形式:`while(表达式) 语句;`,并提到如果需要多条语句,可以用大括号包裹。接着,提供了两个实例:一是打印1到10的数字,二是逆序输出一个正整数的每一位。每个实例都配有一个展示结果的图片。
52 2
|
6月前
do while循环
该内容介绍了编程中的循环语句,强调了`do while`循环与`while`和`for`循环的区别。`do while`循环先执行循环体再判断条件,确保至少执行一次,而`while`和`for`先判断条件再执行。通过示例展示了`do while`循环打印1-10和计算正整数位数的应用,指出在某些情况下,`do while`循环更为合适。
44 0
|
6月前
|
C++
C++ 循环
C++ 循环
38 0
|
6月前
|
Python
phython中while循环
phython中while循环
|
6月前
|
Shell 开发工具
while do done, until do done(不定循环)
【1月更文挑战第7天】。
57 0
|
C语言
C 循环
C 循环。
40 1
三个循环(C)
while语句:while(表达式){},先判断表达式,若符合,则执行循环内容,一个循环后再次判断表达式。
71 0