Python教程-Python While 循环
在编程中,循环被设计用来重复执行特定的代码块。我们将在本教程中学习如何在 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