微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

colab 中 if elif else 的不同单元格

如何解决colab 中 if elif else 的不同单元格

我想知道是否有任何方法可以在一个单元格中使用 if-statement,然后在另一个单元格中使用 elif,然后在 Google colab 中的最后一个单元格中使用 else . 不在一个单元格中包含所有代码的原因是我想为每个 if 案例添加文本单元格。


对于相同的概念,我可以用 whilefor 循环来做吗?例如在 while 循环中,原始代码如下:

while True: 
    print('this is my first job)
    print('this is my second job)

在 colab 中,是否可以在一个单元格中包含此内容

while True: 
    print('this is my first job)

然后这是另一个单元格?

    print('this is my second job)

一个关于 for 循环的例子,这是原始代码

for n in range(100):
    print(n + 10)
    print(n + 20)

在 colab 中,然后我想要一个单元格包括

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 举报,一经查实,本站将立刻删除。