python - 我做了这个算法来告诉你一个数字是否是素数,但我不明白为什么不同缩进级别的“if-else 语句”有效
问题描述
这是代码:
def is_prime(p):
for i in range(2, p):
if p % i == 0:
break
else:
print("Prime")
def main():
p = int(input())
is_prime(p)
main()
我的问题是,为什么“else 语句”在与“if”不同的缩进级别上有效?我的猜测是因为“for 循环”与“else”处于相同的缩进级别,“break”声明'使'else'附加到'if',但我不知道。
解决方案
该代码使用的是 for-else 子句,而不是 if-else 子句!
for blah:
do stuff
else:
do more
当且仅当您正常退出 for 循环时才会执行 do more 子句,即不引发错误或使用 break 语句。
推荐阅读
- python - 通过单独的 .py 文件编写更简洁的 Python 代码
- angular - 在 Azure Pipelines 中集成 Angular 测试用例
- css - webpack-cdn-plugin 不在 head 中导入 CSS
- python - 如何在Python上逐行填充空矩阵?
- c++ - 试图创建一个空的类列表并用指针引用它
- python - 无法使用 Gzip 解压缩 DES3 加密数据
- uwp - 一次只能注册一个 PrintTaskRequested 事件的处理程序 UWP 打印错误
- excel - Excel crash after Copy and paste Chart image
- c++ - Cleaning a data file to be read as only numbers in C++
- python - Windows 10 上的 PsychoPy 无头