colab 中 if elif else 的不同单元格

different cells for if elif else in colab

我想知道是否有任何方法可以在一个单元格中使用 if 语句,然后在另一个单元格中使用 elif,然后在最后一个单元格中使用 else,在google 协作。 不将所有代码都放在一个单元格中的原因是因为我想为每个 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 笔记本,每个可执行单元必须是 python 代码的有效“块”。第一个“块”是有效的,但随后的“块”将无效,因为解释器假定每个单元格都从最小缩进级别开始。举个例子:

if False:
    print('false')
    print('how did we get here?')

运行按顺序排列每个单元格可能使这看起来很有意义,但“我们如何到达这里”将始终打印,而“false”则不会。内核不能假定第二个单元格与第一个单元格相关联,因为如果需要,笔记本天生就被设计为 运行 乱序。因此,就调用堆栈而言,单元格的起始缩进级别仅被视为“模块”级别。考虑一下您是否首先尝试 运行 这个单元格:

    print('this should print if True')
elif False:
    print('this should print if False')

如果这是它看到的第一段代码,解释器应该做什么?它将 return 出错,因为“取消缩进”类似于弹出堆栈帧,并且在这种情况下没有要弹出的帧。