python - 如果 for 循环嵌套在内部,则忽略 while 条件
问题描述
我想知道为什么在 python 中,尝试时:
count = 0
while count < 3:
for i in range(40):
count += 1
实际上并不检查 while 循环条件。而在
count = 0
for i in range(40):
while count < 3:
count += 1
做。起初我假设在迭代完成之前可能必须忽略 while 循环。但是如果我运行 2 个不同的 for 循环
count = 0
while count < 3:
for i in range(40):
count += 1
for i in range(40):
count += 1
同样的事情也会发生!计数将变为 80。我经常使用 while 循环,很惊讶我从未遇到过这种情况。while 循环是否仅在其内容的末尾进行检查?如果是这样,我如何编写第一段代码的变体
解决方案
在while
循环体开始之前和循环体结束时检查循环的条件。如果您将更多循环放入主体中,它们都必须在while
循环进入下一次迭代之前完成。
如果您想在循环主体完成之前显式终止循环,则需要使用break
- 但如果您在嵌套循环内,则break
只会终止最里面的循环!
如果由于某种原因您确实需要从内部循环内部结束外部循环,那么最干净的方法是将整个事情放入一个函数中并使用return
. 另请参阅:如何打破多个循环?
推荐阅读
- c - 在 C 中重新创建 Ft_putnbr_base。但是,问题,没有显示
- excel - 如何修复。评估舍入结果
- api - 使用 Tweepy 检索单个直接消息并等待人们发送消息
- javascript - 如何从 Vue 实例外部触发 Stencil 组件功能/方法
- reactjs - 我们如何在 React.js 的表格中添加时间范围选择器
- bash - 减少 WGET 下载完成时间
- reactjs - 使用 React 将新底图添加到 Arcgis 地图
- google-bigquery - 如何将 1tb 表从 RDS MySql 数据库移动到 bigquery?
- python - 密码验证在 django-rest-framework 中不起作用
- r - 试图在一个简单的 BS 公式的实现中找到一个错误