Spyder与VS Code运行带函数定义的Python单元格无输出问题求助
问题原因及解决方法
你当前的操作没有错误,编辑器和Anaconda环境也不需要额外开启设置,出现该现象是Python基础语法规则导致的:
def hello():属于函数定义语句,运行这段代码只会将hello函数注册到当前运行环境的内存中,不会主动执行函数内部的代码(即你写的print语句)- 去掉
def hello():后直接写print语句属于顶层可执行语句,运行时会直接执行,因此能正常看到输出
正确运行的两种方案
方案1:函数定义后增加调用语句
如果需要保留函数封装的写法,在第一个单元格末尾新增函数调用语句即可,修改后单元格内容如下:
#%% def hello(): print("Hello, world!") hello()
再次运行单元格就能正常输出Hello, world!。
方案2:直接编写可执行语句
如果只是临时测试打印逻辑,不需要复用这段代码,可以直接写print语句,不需要套函数定义。
额外提示
你控制台开头出现的ntpath.py相关警告是Python3.7版本的已知问题,不影响代码正常运行,可以直接忽略;如果介意该提示,可将Python版本升级到3.8及以上即可消除。
内容的提问来源于stack exchange,提问作者user218592
相关产品推荐
相关产品推荐

