Python函数仅添加print才输出结果,求解决方案
问题原因
Python脚本环境中,函数调用后仅返回值但不做显式打印操作的话,解释器不会自动输出返回结果——这和交互式终端(比如Python命令行、Jupyter Notebook)里直接调用函数就显示返回值的逻辑不同。你的函数确实正确生成并返回了特征值列表,但脚本里必须主动触发打印才能看到内容。
另外注意代码里缺失import math语句,运行时会抛出模块未找到的错误,记得补上。
解决方法
以下几种简单方式可以看到结果:
方法1:直接打印函数返回值
在函数调用语句外层包裹print():
import math def compute_reference_eig(Neigen, exact=True, ref_solver=None): if exact: eigenvalues = [] for i in range(Neigen+1): if (i%2)==0: eig = (i**2)*math.pi**2 else: eig = ((i-1)**2)*math.pi**2 eigenvalues.append(eig) return eigenvalues[1::] else: return None # 直接打印函数返回结果 print(compute_reference_eig(3, exact=True, ref_solver=None))
方法2:赋值后再打印
把返回值存入变量,后续按需打印或处理:
import math def compute_reference_eig(Neigen, exact=True, ref_solver=None): if exact: eigenvalues = [] for i in range(Neigen+1): if (i%2)==0: eig = (i**2)*math.pi**2 else: eig = ((i-1)**2)*math.pi**2 eigenvalues.append(eig) return eigenvalues[1::] else: return None # 先保存返回值到变量 result = compute_reference_eig(3, exact=True, ref_solver=None) # 打印结果 print("Exact Eigenvalues:\n", result)
方法3:函数内部添加打印(可选)
如果希望函数调用时自动输出结果,同时保留返回值功能,可以在return前加入打印语句:
import math def compute_reference_eig(Neigen, exact=True, ref_solver=None): if exact: eigenvalues = [] for i in range(Neigen+1): if (i%2)==0: eig = (i**2)*math.pi**2 else: eig = ((i-1)**2)*math.pi**2 eigenvalues.append(eig) result = eigenvalues[1::] print('Exact Eigenvalues:\n', result) return result else: return None # 调用函数时自动打印结果 compute_reference_eig(3, exact=True, ref_solver=None)
内容的提问来源于stack exchange,提问作者user46044
相关产品推荐
相关产品推荐

