Python While 循环用于重复执行语句块,直到满足给定条件。当条件变为假时,程序中紧接着循环之后的行将被执行。
句法:
while expression: statement(s)
While 循环属于无限迭代的范畴。不定迭代是指没有事先明确指定循环执行的次数。
语句表示在编程构造被视为单个代码块的一部分之后缩进相同数量的字符空间的所有语句。Python 使用缩进作为对语句进行分组的方法。当执行 while 循环时,首先在布尔上下文中计算 expr,如果为 true,则执行循环体。然后再次检查 expr,如果它仍然为 true,则再次执行主体,直到表达式变为 false。
# 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。
# checks if list still # contains any element a = [1, 2, 3, 4] while a: print(a.pop())
4 3 2 1
在上面的示例中,我们在列表上运行了 while 循环,该循环将一直运行到列表中存在元素为止。
就像 if 块一样,如果 while 块由单个语句组成,我们可以在一行中声明整个循环。如果组成循环体的块中有多个语句,则可以用分号(;)分隔它们。
# 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
循环控制语句改变其正常顺序的执行。当执行离开作用域时,在该作用域中创建的所有自动对象都将被销毁。Python 支持以下控制语句。
PythonContinue语句将控制权返回到循环的开头。
# 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 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 还用于空控制语句、函数和类。
# 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 条件变为 false 时执行。如果跳出循环,或者引发异常,则不会执行该循环。
注意:只有当循环没有被break语句终止时,才会执行for/while后面的else块。
# 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。
a = int(input('Enter a number (-1 to quit): ')) while a != -1: a = int(input('Enter a number (-1 to quit): '))
输出:
解释:
while 循环中布尔值的一种常见用途是创建一个无限循环,该循环只能根据循环内的某些条件退出。例如:
# 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