如何解决colab 中 if elif else 的不同单元格
我想知道是否有任何方法可以在一个单元格中使用 if
-statement,然后在另一个单元格中使用 elif
,然后在 Google colab 中的最后一个单元格中使用 else
.
不在一个单元格中包含所有代码的原因是我想为每个 if
案例添加文本单元格。
对于相同的概念,我可以用 while
和 for
循环来做吗?例如在 while
循环中,原始代码如下:
while True:
print('this is my first job)
print('this is my second job)
while True:
print('this is my first job)
然后这是另一个单元格?
print('this is my second job)
for n in range(100):
print(n + 10)
print(n + 20)
for n in range(100):
print(n + 10)
print(n + 20)
解决方法
不,你不能这样做。
Google colab 基本上只是一个 IPython Notebook,并且每个可执行单元都必须是其自身的有效 Python 代码“块”。第一个“块”将是有效的,但随后的“块”将无效,因为解释器假定每个单元格以最小缩进级别开始。以下面的例子:
if False:
print('false')
print('how did we get here?')
按顺序运行每个单元格可能使这看起来有意义,但是“我们如何到达这里”将始终打印,而“假”则不会。内核不能假设第二个单元与第一个相关联,因为笔记本在本质上被设计为在需要时乱序运行。因此,就调用堆栈而言,单元的起始缩进级别仅被视为“模块”级别。考虑您是否尝试先运行此单元格:
print('this should print if True')
elif False:
print('this should print if False')
如果这是它看到的第一段代码,解释器应该怎么做?它会返回一个错误,因为“取消缩进”类似于弹出堆栈帧,并且在这种情况下没有要弹出的帧。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。