本文主要介绍循环及嵌套循环结构体的时间控制等。
Last Modified: 2022 / 9 / 5
循环及嵌套循环结构体的时间等因素的控制
- 循环
- while
- while True
- break 与 continue
- 示例
- while else
- 参考链接
循环
Python
的循环有 for
和 while
两种,while
为条件控制循环,通过条件表达式控制循环结束 1’ 2:。
while
Python
编程中 while
语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:
while <条件表达式>:
【语句块】
当 while
的 <条件表达式>
(条件表达式可以是任何表达式,任何非零、或非空( null
)的值均为 True
)时运行 【语句块】
,【语句块】
可以是单个语句或语句块,【语句块】
运行结束后,再次进入 <条件表达式>
进行判断:
如果 <条件表达式>
结果为 True
则再次运行 【语句块】
, 以此循环
直到 <条件表达式>
结果为 False
结束循环。
比如,
还有,
while True
采用该语句的核心思想是即使出现运行错误也可以返回到开始部分从而继续循环 3。while
True
语句中一定要有结束该循环的 break
语句,否则循环表达式总是为 True
时会陷入死循环。
break 与 continue
break
结束循环,遇到 break
直接退出循环;continue
跳过当次循环,进入下一次循环。
以 break
为例,
i = 0
while i <= 5: # 循环控制条件
if i == 3:
break # 结束循环
print(i)
i += 1 # 等同于i=i+1
# 0
# 1
# 2
# 输出结果到 3 就结束了,程序运行到 break 就结束整个循环。
以 continue
为例,
i = 0
while i <= 5: # 循环控制条件
i += 1
if i == 3:
continue # 跳过当次循环
print(i)
# 1
# 2
# 4
# 5
# 6
# 输出结果缺少了 3,continue 结束了当次的循环,进入下一循环
示例
try
except
语句不能单独和 continue
、break
命令搭配使用,比如用 for
,while
之类的循环 4。
如果想要什么不执行,可在 except
子句中加入 pass
而不是 continue
。
比如,
while True:
a = 12
try:
b = int(input("b = "))
except Exception as e:
print(f'Exception with input b: {e}.')
continue
try:
z = int(a/b)
except Exception as e:
print(f'Exception with z: {e}.')
continue
else:
print(f"z = {z}")
break
# b = 4.2
# Exception with input b: invalid literal for int() with base 10: '4.2'.
# b = 6
# z = 2
#
# Process finished with exit code 0
- 3
d = {
'Julie': 12345,
'Alice': 13579,
'Sam': 24680
}
retry = 5
while retry:
usr = input("Your Username: ")
if usr in d:
pwd = input("Your Password: ")
if str(d[usr]) == pwd:
print('Log in.')
break
else:
retry -= 1
print(f'Wrong password with left {retry} chances.')
continue
else:
print(f"Your Username Not Found.")
continue
while else
while ... else ...
先进行 while
循环,循环结束后再执行 else
下的语句。
只有在特定条件下会用 while...else...
。
Python
中 while else
语句的格式如下:
while <条件表达式>:
【while 的语句块】
else:
【else的语句块】
# 先进行 while 循环,当循环结束后执行【else 的语句块】
举例如下,
sum = i = 0
while (2 * i + 1) <= 100: # 循环控制条件
sum = sum + 2 * i + 1
i += 1 # 等同于i=i+1
else:
print('循环结束后执行else')
print(sum)
# 循环结束后执行else
# 2500