嘿,你听说过while循环吗?它就像一个不停循环的小恶魔,直到满足某个条件才会停止。但是,别担心,这个循环并不是邪恶的,它可以帮助你编写很多有用的代码。

首先,让我们来了解一下while循环的基本结构。while循环会重复执行一段代码,直到某个条件不再满足。这个条件放在了循环的头部,被称为“循环条件”。下面是一个简单的例子:

i = 0  
while i < 10:  
    print(i)  
    i += 1

这个代码会输出从0到9的数字。当i的值达到10时,循环条件不再满足,循环就会停止。

但是,这只是一个简单的例子。while循环可以用于很多其他情况。比如说,你有一个任务需要重复执行,直到某个条件满足。这时候,while循环就可以派上用场了。

假设你要写一个程序来计算1到100的和。你可以使用while循环来实现:

total = 0  
i = 1  
while i <= 100:  
    total += i  
    i += 1  
print("1到100的和为:", total)

这个程序会计算从1到100的和,并将结果输出。当i的值达到101时,循环条件不再满足,循环就会停止。

还有一种情况是,你需要在一个无限循环中等待某个事件的发生。比如说,你写了一个程序来监听网络连接,当有新的连接时才会继续执行。这时候,你可以使用while循环和条件语句来实现:

socket.setblocking(False)  
while True:  
    sock, addr = socket.accept()  
    print("新的连接来自", addr)  
    # 处理连接...

这个程序会一直监听网络连接,直到有新的连接。当有新的连接时,程序会打印出连接的来源,并继续执行后续的代码。注意,这里的while True表示循环永远不会停止,直到程序被手动终止。因此,这个例子使用了socket.setblocking(False)来让程序始终处于非阻塞状态,以避免程序一直阻塞在socket.accept()上。

举几个例子:

猜数字游戏

import random  
  
num = random.randint(1, 100)  
guess = int(input("猜数字(1-100):"))  
  
while guess != num:  
    guess = int(input("猜数字(1-100):"))  
    if guess < num:  
        print("你猜的数字太小了!")  
    else:  
        print("你猜的数字太大了!")  
          
print("恭喜你,猜对了!", num)

这个程序会随机生成一个1到100之间的整数,然后让用户猜这个数字是多少。在用户猜的过程中,程序会根据用户猜的数字给出提示,直到猜中为止。

输出斐波那契数列

n = int(input("斐波那契数列的项数:"))  
a, b = 0, 1  
count = 0  
  
while count < n:  
    print(a, end=" ")  
    a, b = b, a + b  
    count += 1

这个程序会输出指定项数的斐波那契数列。在循环中,每次输出当前的数a,然后将a和b的值更新为b和a+b,直到输出完指定项数的数列为止。

计算阶乘

num = int(input("计算阶乘的数:"))  
result = 1  
  
while num > 0:  
    result *= num  
    num -= 1  
  
print("阶乘为:", result)

这个程序会计算输入的数的阶乘。在循环中,每次将当前的数乘以已经计算出的结果,然后将当前的数减1,直到计算完所有的数为止。

总之,Python中的while循环可以用于重复执行一段代码、计算、等待事件的发生等多种情况。在使用时要注意循环条件和循环体的编写,以及避免无限循环的问题。