Python While 循环


Python While 循环用于重复执行语句块,直到满足给定条件。当条件变为假时,程序中紧接着循环之后的行将被执行。

句法:

while expression:
    statement(s)

While 循环流程图:

Python While 循环

While 循环属于无限迭代的范畴。不定迭代是指没有事先明确指定循环执行的次数。

语句表示在编程构造被视为单个代码块的一部分之后缩进相同数量的字符空间的所有语句。Python 使用缩进作为对语句进行分组的方法。当执行 while 循环时,首先在布尔上下文中计算 expr,如果为 true,则执行循环体。然后再次检查 expr,如果它仍然为 true,则再次执行主体,直到表达式变为 false。

示例 1: Python While 循环

Python3

# Python program to illustrate
# while loop
count = 0
while (count < 3):
    count = count + 1
    print("Hello Geek")

输出

Hello Geek
Hello Geek
Hello Geek

在上面的示例中,只要计数器变量 (count) 小于 3,while 的条件就为 True。

示例 2:带列表的 Python while 循环

Python3

# checks if list still
# contains any element
a = [1, 2, 3, 4]

while a:
    print(a.pop())

输出

4
3
2
1

在上面的示例中,我们在列表上运行了 while 循环,该循环将一直运行到列表中存在元素为止。

示例 3:单个语句 while 块

就像 if 块一样,如果 while 块由单个语句组成,我们可以在一行中声明整个循环。如果组成循环体的块中有多个语句,则可以用分号(;)分隔它们。

Python3

# Python program to illustrate
# Single statement while block
count = 0
while (count < 5): count += 1; print("Hello Geek")

输出

Hello Geek
Hello Geek
Hello Geek
Hello Geek
Hello Geek

示例 4:循环控制语句

循环控制语句改变其正常顺序的执行。当执行离开作用域时,在该作用域中创建的所有自动对象都将被销毁。Python 支持以下控制语句。

继续声明

PythonContinue语句将控制权返回到循环的开头。

示例:带有 continue 语句的 Python while 循环

Python3

# Prints all letters except 'e' and 's'
i = 0
a = 'geeksforgeeks'

while i < len(a):
    if a[i] == 'e' or a[i] == 's':
        i += 1
        continue

    print('Current Letter :', a[i])
    i += 1

输出

Current Letter : g
Current Letter : k
Current Letter : f
Current Letter : o
Current Letter : r
Current Letter : g
Current Letter : k

中断声明

Python Break 语句将控制带出循环。

示例:带有break语句的Python while循环

Python3

# break the loop as soon it sees 'e'
# or 's'
i = 0
a = 'geeksforgeeks'

while i < len(a):
    if a[i] == 'e' or a[i] == 's':
        i += 1
        break

    print('Current Letter :', a[i])
    i += 1

输出

Current Letter : g

通过声明

Python pass 语句编写空循环。Pass 还用于空控制语句、函数和类。

示例:带有 pass 语句的 Python while 循环

Python3

# An empty loop
a = 'geeksforgeeks'
i = 0

while i < len(a):
    i += 1
    pass

print('Value of i :', i)

输出

Value of i : 13

While 与 else 循环

如上所述,while 循环执行块直到满足条件。当条件为假时,立即执行循环后面的语句。else 子句仅在 while 条件变为 false 时执行。如果跳出循环,或者引发异常,则不会执行该循环。

注意:只有当循环没有被break语句终止时,才会执行for/while后面的else块。

Python3

# Python program to demonstrate
# while-else loop

i = 0
while i < 4:
    i += 1
    print(i)
else: # Executed because no break in for
    print("No Break\n")

i = 0
while i < 4:
    i += 1
    print(i)
    break
else: # Not executed as there is a break
    print("No Break")

输出

1
2
3
4
No Break

1

哨兵控制语句

在此,我们不使用任何计数器变量,因为我们不知道循环将执行多少次。在这里,用户决定他想要执行循环多少次。为此,我们使用哨兵值。哨兵值是每当用户进入循环时用于终止循环的值,通常哨兵值为-1。

示例:带有用户输入的 Python while 循环

Python3

a = int(input('Enter a number (-1 to quit): '))

while a != -1:
    a = int(input('Enter a number (-1 to quit): '))

输出:

img

解释:

  • 首先,它要求用户输入一个数字。如果用户输入-1则循环将不会执行
  • 用户输入 6,循环体执行并再次要求输入
  • 这里用户可以输入多次,直到输入-1停止循环
  • 用户可以决定输入多少次

示例:布尔值上的 While 循环:

while 循环中布尔值的一种常见用途是创建一个无限循环,该循环只能根据循环内的某些条件退出。例如:

Python3

# Initialize a counter
count = 0

# Loop infinitely
while True:
    # Increment the counter
    count += 1
    print(f"Count is {count}")

    # Check if the counter has reached a certain value
    if count == 10:
        # If so, exit the loop
        break

# This will be executed after the loop exits
print("The loop has ended.")

输出

Count is 1
Count is 2
Count is 3
Count is 4
Count is 5
Count is 6
Count is 7
Count is 8
Count is 9
Count is 10
The loop has ended.

在此示例中,我们初始化一个计数器,然后使用无限 while 循环(True 始终为 true)来递增计数器并打印其值。我们检查计数器是否达到了某个值,如果是,我们使用break语句退出循环。


原文链接:codingdict.net