您的位置:

Python中的while循环:简化你的迭代操作

一、while循环的基本语法

在Python中,while循环的语法非常简单,基本格式如下:

while 条件:
    循环体

其中,条件是一个布尔表达式,表示循环的条件;循环体是要重复执行的代码块。

while循环执行的过程如下:

  1. 首先判断条件是否为True,如果为False,则跳过循环体,直接执行循环后面的代码;
  2. 如果条件为True,则执行循环体中的代码;
  3. 执行完循环体后,再次判断条件是否为True,如果为True,则再次执行循环体,否则跳过循环体;
  4. 重复上述过程,直到条件为False为止。

通过while循环,我们可以很方便地对某个代码块进行重复执行,直到满足某个条件为止。

下面是一个简单的例子,使用while循环实现1到5的累加:

n = 1
sum = 0
while n <= 5:
    sum += n
    n += 1
print(sum)

输出结果为:

15

在上面的代码中,首先设置了n和sum两个变量分别用于存储当前的数值和总和。然后,在while循环中,我们不断将n的值加1,并将其加入到sum中,直到n的值大于5为止。

二、while循环的高级用法

1. while循环嵌套

在Python中,while循环也可以进行嵌套。嵌套的while循环执行过程与单层的while循环相同,只是在循环体中又包含了一层循环。

下面是一个嵌套循环的例子,实现了1~4的乘法表:

i = 1
while i <= 4:
    j = 1
    while j <= i:
        print(f"{i}*{j}={i*j}", end="\t")
        j += 1
    print()
    i += 1

输出结果为:

1*1=1
2*1=2    2*2=4
3*1=3    3*2=6    3*3=9
4*1=4    4*2=8    4*3=12   4*4=16

在上面的代码中,外层的while循环用于循环行数,内层的while循环用于循环列数。在内部循环中,我们使用了一个参数end="\t",表示在每个元素后面加上一个制表符,以便打印出美观的乘法表。

2. 程序中加入用户交互

在实际开发中,我们通常会希望与用户进行交互。可以使用while循环来实现这个需求,在用户输入不正确的情况下,一直提示用户重新输入。

下面是一个例子,实现了一个加法运算器:

print("=======计算器=======")
while True:
    num1 = float(input("请输入第一个数:"))
    num2 = float(input("请输入第二个数:"))
    op = input("请输入运算符(+、-、*、/):")
    if op == "+":
        print(f"{num1}+{num2}={num1+num2}")
    elif op == "-":
        print(f"{num1}-{num2}={num1-num2}")
    elif op == "*":
        print(f"{num1}*{num2}={num1*num2}")
    elif op == "/":
        if num2 == 0:
            print("除数不能为0")
        else:
            print(f"{num1}/{num2}={num1/num2}")
    else:
        print("运算符输入错误,请重新输入")
    choice = input("是否继续运算?(Y/N):")
    if choice != "Y" and choice != "y":
        break
print("谢谢使用!")

在代码中,我们首先输出了一个简单的欢迎语句。然后,使用while True语句进行无限循环,只有当用户输入N或n时,才会停止循环。

在循环体中,首先使用input()函数接受用户的输入,并使用float()函数将字符串转换为实数。然后,使用if-elif-else语句进行运算,根据不同的运算符执行不同的操作。如果用户输入的是错误的运算符,那么程序会输出错误提示信息,并要求用户重新输入。

在每次运算后,程序会询问用户是否继续运算。如果用户输入的是N或n,则使用break语句退出循环,输出一条感谢消息。

3. break和continue语句的使用

Python中的break和continue语句可以用于控制循环的流程。其中,break语句用于结束当前循环,continue语句用于跳过当前的循环。

下面是一个例子,使用break语句跳出循环:

n = 0
while True:
    print(n)
    n += 1
    if n == 5:
        break
print("循环结束")

输出结果为:

0
1
2
3
4
循环结束

在上面的代码中,我们使用了一个while True语句进行无限循环。然后,在每个循环中打印当前的n值,并将其加1。如果n的值等于5,则使用break语句跳出循环。

下面是一个例子,使用continue语句跳过循环:

n = 0
while n < 5:
    n += 1
    if n == 3:
        continue
    print(n)
print("循环结束")

输出结果为:

1
2
4
5
循环结束

在上面的代码中,我们使用一个while循环从1到5循环。在循环体中,如果n的值等于3,则使用continue语句跳过循环体中后续的代码,直接执行下一轮循环。

三、总结

通过对Python中while循环的详细讲解,我们了解到了while循环的基本语法、高级用法以及与用户交互、break/continue语句的配合使用等方面的知识。在实际开发中,我们可以根据具体的需求,灵活使用while循环来完成各种任务。

下面是本文中所有代码的完整示例:

# 累加1~5
n = 1
sum = 0
while n <= 5:
    sum += n
    n += 1
print(sum)

# 乘法表
i = 1
while i <= 4:
    j = 1
    while j <= i:
        print(f"{i}*{j}={i*j}", end="\t")
        j += 1
    print()
    i += 1

# 加法运算器
print("=======计算器=======")
while True:
    num1 = float(input("请输入第一个数:"))
    num2 = float(input("请输入第二个数:"))
    op = input("请输入运算符(+、-、*、/):")
    if op == "+":
        print(f"{num1}+{num2}={num1+num2}")
    elif op == "-":
        print(f"{num1}-{num2}={num1-num2}")
    elif op == "*":
        print(f"{num1}*{num2}={num1*num2}")
    elif op == "/":
        if num2 == 0:
            print("除数不能为0")
        else:
            print(f"{num1}/{num2}={num1/num2}")
    else:
        print("运算符输入错误,请重新输入")
    choice = input("是否继续运算?(Y/N):")
    if choice != "Y" and choice != "y":
        break
print("谢谢使用!")

# break语句
n = 0
while True:
    print(n)
    n += 1
    if n == 5:
        break
print("循环结束")

# continue语句
n = 0
while n < 5:
    n += 1
    if n == 3:
        continue
    print(n)
print("循环结束")