You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Jupyter与IDLE运行相同Python代码输出不一致的问题求助

Jupyter与IDLE运行相同Python代码输出不一致的问题求助

嗨,我太懂你这种困惑了——明明代码一字不差,怎么Jupyter和IDLE跑出来结果差这么多?别担心,这不是你代码写错了,纯粹是两个环境的交互逻辑不一样而已!

给你掰扯清楚为啥会这样:

  • Jupyter Notebook(包括IPython这类交互式环境)有个“自动展示最后一行结果”的小机制,只要代码块最后是变量或者表达式,它就会自动把这个内容打印出来,不用你额外写print。
  • 但IDLE Shell是标准的Python交互环境,它只会老老实实地执行每一行代码,不会主动把最后一个变量的内容给你吐出来,必须你手动用print()函数明确要求输出,它才会显示。

你看你的代码,最后一行只是写了dominoes,没有任何打印指令。Jupyter会贴心地帮你把这个列表内容展示出来,但IDLE执行完后,dominoes这个变量其实已经在内存里生成好了,只是没把它打印给你看而已。

解决办法超简单,把代码最后一行改成:

print(dominoes)

或者在原代码末尾加这么一行,这样不管在Jupyter还是IDLE里,都会乖乖输出所有多米诺骨牌的元组对啦。

对了,要是你已经在IDLE里跑过原来的代码了,也不用重新跑一遍,直接在Shell里输入print(dominoes),照样能看到生成的结果,变量早就存在啦!

备注:内容来源于stack exchange,提问作者Rodney

火山引擎 最新活动