在编程中,循环被设计用来重复执行特定的代码块。我们将在本教程中学习如何在 Python 中构建 while 循环,while 循环的语法,循环控制语句如 break 和 continue,以及其他一些示例。

Python While 循环简介

在本文中,我们将讨论 Python 中的 while 循环。Python 的 while 循环是在给定条件,即条件表达式为真时,对代码块进行迭代执行。

如果我们不知道在开始时将执行迭代多少次,我们可以编写一个无限循环。

Python While 循环的语法

现在,我们来讨论 Python while 循环的语法。语法如下所示

Statement  
while Condition:  
        Statement 

在 Python 的 while 循环中,首先对给定的条件表达式进行评估。然后,如果条件表达式返回布尔值 True,则执行 while 循环语句。在执行完整的代码块时再次验证条件表达式。这个过程一直重复,直到条件表达式返回布尔值 False。

  • Python 的 while 循环语句由缩进来控制。
  • 代码块从第一个缩进的语句开始,并以第一个未缩进的语句结束。
  • 在 Python 中,任何非零数都会被解释为布尔值 True。False 被解释为 None 和 0。

示例

下面是一些在 Python 中使用 while 循环的示例。

程序代码 1:

下面给出了在 Python 中使用 while 循环打印从 1 到 10 的数字的代码

i=1  
while i<=10:  
    print(i, end=' ')  
    i+=1 

输出:

编译上述代码,并成功运行后,输出如下

1 2 3 4 5 6 7 8 9 10 

程序代码 2:

下面给出了在 Python 中使用 while 循环找到在 1 到 50 范围内可被 5 或 7 整除的数字的代码

i=1  
while i<51:  
    if i%5 == 0 or i%7==0 :  
        print(i, end=' ')  
    i+=1  

输出:

编译上述代码,并成功运行后,输出如下

5 7 10 14 15 20 21 25 28 30 35 40 42 45 49 50

程序代码:

下面给出了在 Python 中使用 while 循环计算前 15 个自然数的平方和的代码

# Python program example to show the use of while loop   
  
num = 15  
  
# initializing summation and a counter for iteration  
summation = 0  
c = 1  
  
while c <= num: # specifying the condition of the loop  
    # begining the code block  
    summation = c**2 + summation  
    c = c + 1    # incrementing the counter  
  
# print the final sum  
print("The sum of squares is", summation)  

输出:

编译上述代码,并成功运行后,输出如下

The sum of squares is 1240

只要计数参数 c 对于条件是 True,即 c 小于等于 num,循环就会重复执行代码块 c 次数。

接下来是一个关键的点(通常被忽略)。我们必须在循环的语句中递增计数参数的值。如果不这样做,我们的 while 循环将无限执行(无限循环)。

最后,我们使用 print 语句打印结果。

使用 while 循环进行练习

判断质数和 Python While 循环

使用 while 循环,我们将构建一个 Python 程序,以判断给定的整数是否为质数。

程序代码:

下面给出了在 Python 中使用 while 循环判断一个数字是否为质数的代码

num = [34, 12, 54, 23, 75, 34, 11]    
  
def prime_number(number):  
    condition = 0  
    iteration = 2  
    while iteration <= number / 2:  
        if number % iteration == 0:  
            condition = 1  
            break  
        iteration = iteration + 1  
  
    if condition == 0:  
        print(f"{number} is a PRIME number")  
    else:  
        print(f"{number} is not a PRIME number")  
for i in num:  
    prime_number(i)  

输出:

编译上述代码,并成功运行后,输出如下

34 is not a PRIME number
12 is not a PRIME number
54 is not a PRIME number
23 is a PRIME number
75 is not a PRIME number
34 is not a PRIME number
11 is a PRIME number

阿姆斯特朗数和 Python While 循环

使用 while 循环,我们将构建一个 Python 程序,以判断给定的整数是否为阿姆斯特朗数。

程序代码:

下面给出了在 Python 中使用 while 循环判断一个数字是否为阿姆斯特朗数的代码

n = int(input())  
n1=str(n)  
l=len(n1)  
temp=n  
s=0  
while n!=0:  
    r=n%10  
    s=s+(r**1)  
    n=n//10  
if s==temp:  
    print("It is an Armstrong number")  
else:  
    print("It is not an Armstrong number ")  

输出:

编译上述代码,并成功运行后,输出如下

342
It is not an Armstrong number

使用 while 循环打印乘法表

在此示例中,我们将使用 while 循环打印给定数字的乘法表。

程序代码:

在此示例中,我们将使用 while 循环打印给定数字的乘法表。代码如下

num = 21        
counter = 1      
# we will use a while loop for iterating 10 times for the multiplication table        
print("The Multiplication Table of: ", num)      
while counter <= 10: # specifying the condition  
    ans = num * counter      
    print (num, 'x', counter, '=', ans)      
    counter += 1 # expression to increment the counter  

输出:

编译上述代码,并成功运行后,输出如下

The Multiplication Table of:  21
21 x 1 = 21
21 x 2 = 42
21 x 3 = 63
21 x 4 = 84
21 x 5 = 105
21 x 6 = 126
21 x 7 = 147
21 x 8 = 168
21 x 9 = 189
21 x 10 = 210

使用 while 循环处理列表

程序代码 1:

下面给出了在 Python 中使用 while 循环求列表中每个数字的平方的代码

# Python program to square every number of a list    
# initializing a list    
list_ = [3, 5, 1, 4, 6]    
squares = []    
# programing a while loop     
while list_: # until list is not empty this expression will give boolean True after that False    
    squares.append( (list_.pop())**2)    
#  Print the squares of all numbers.  
print( squares )    

输出:

编译上述代码,并成功运行后,输出如下

[36, 16, 1, 25, 9]

在上述示例中,我们在给定的整数列表上执行一个 while 循环,只要列表中还有元素,循环就会重复执行。

程序代码 2:

下面给出了在 Python 中使用 while 循环判断列表中每个数字是奇数还是偶数的代码

list_ = [3, 4, 8, 10, 34, 45, 67,80]        # Initialize the list  
index = 0  
while index < len(list_):  
    element = list_[index]  
    if element % 2 == 0:  
        print('It is an even number')       # Print if the number is even.  
    else:  
        print('It is an odd number')        # Print if the number is odd.  
    index += 1  

输出:

编译上述代码,并成功运行后,输出如下

It is an odd number
It is an even number
It is an even number
It is an even number
It is an even number
It is an odd number
It is an odd number
It is an even number

程序代码 3:

下面给出了在 Python 中使用 while 循环计算给定列表中每个单词的字母数量的代码

List_= ['Priya', 'Neha', 'Cow', 'To']  
index = 0  
while index < len(List_):  
    element = List_[index]  
    print(len(element))  
    index += 1  

输出:

编译上述代码,并成功运行后,输出如下

5
4
3
2

带有多个条件的 Python While 循环

我们必须使用逻辑运算符将指定条件的两个或更多个表达式组合成单个 while 循环。这会告诉 Python 集体分析所有给定的条件表达式。

在这个示例中,我们可以构建一个带有多个条件的 while 循环。我们给出了两个条件和一个 and 关键字,这意味着在这两个条件都返回布尔值 True 时,循环将执行语句。

程序代码:

下面给出了在 Python 中构建带有多个条件的 while 循环的代码示例

num1 = 17  
num2 = -12  
   
while num1 > 5 and num2 < -5 : # multiple conditions in a single while loop  
    num1 -= 2  
    num2 += 3  
    print( (num1, num2) )  

输出:

编译上述代码,并成功运行后,输出如下

(15, -9)
(13, -6)
(11, -3)

让我们看另一个带有 OR 运算符的多个条件的示例。

代码

num1 = 17  
num2 = -12  
   
while num1 > 5 or num2 < -5 :  
    num1 -= 2  
    num2 += 3  
    print( (num1, num2) )  

输出:

编译上述代码,并成功运行后,输出如下

(15, -9)
(13, -6)
(11, -3)
(9, 0)
(7, 3)
(5, 6)

我们还可以将多个逻辑表达式组合在 while 循环中,如下面的示例所示。

代码

num1 = 9   
num = 14   
maximum_value = 4  
counter = 0   
while (counter < num1 or counter < num2) and not counter >= maximum_value: # grouping multiple conditions  
    print(f"Number of iterations: {counter}")   
    counter += 1  

输出:

编译上述代码,并成功运行后,输出如下

Number of iterations: 0
Number of iterations: 1
Number of iterations: 2
Number of iterations: 3

单语句 While 循环

与 if 语句的语法类似,如果我们的 while 子句包含一个语句,可以将其写在与 while 关键字相同的行上。

以下是单语句 while 循环的语法和示例

# Python program to show how to create a single statement while loop  
counter = 1  
while counter: print('Python While Loops')  

循环控制语句

现在我们将详细讨论循环控制语句。我们将看到每个控制语句的示例。

continue 语句

它将控制返回到循环的开头,继续执行循环。

代码

# Python program to show how to use continue loop control  
  
# Initiating the loop  
for string in "While Loops":  
    if string == "o" or string == "i" or string == "e":  
         continue  
    print('Current Letter:', string)  

编译上述代码,并成功运行后,输出如下

输出:

Current Letter: W
Current Letter: h
Current Letter: l
Current Letter:  
Current Letter: L
Current Letter: p
Current Letter: s

break 语句

当执行到 break 语句时,它会终止循环的执行。

代码

# Python program to show how to use the break statement  
  
# Initiating the loop  
for string in "Python Loops":  
    if string == 'n':  
         break  
    print('Current Letter: ', string)  

编译上述代码,并成功运行后,输出如下

Current Letter:  P
Current Letter:  y
Current Letter:  t
Current Letter:  h
Current Letter:  o

pass 语句

pass 语句用于创建空循环。pass 语句还用于类、函数和空控制语句。

代码

# Python program to show how to use the pass statement    
for a string in "Python Loops":    
    pass    
print( 'The Last Letter of given string is:', string)   

编译上述代码,并成功运行后,输出如下

输出:

The Last Letter of given string is: s

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程