Python:如何将 eval() 的输出保存在变量中?

我是 Python 世界的新手。我的问题是:如何将 eval() 的输出保存在变量中?


# CODE

var = eval(print("Heyo"))

message = f"{var}"


# RESULT

None

我尝试使用数字表达式:1+1,输出为 2。我需要输出为:Heyo(在本例中)


我能做些什么?


红糖糍粑
浏览 139回答 3
3回答

幕布斯7119047

Eval 将执行您作为输入提供的字符串内的任何内容,这意味着您的 print 语句将打印到标准输入。解决此问题的一种方法是stdout在调用 eval 之前将 重定向到变量。from io import StringIOimport sysold_stdout = sys.stdoutsys.stdout = mystdout = StringIO()eval("print('Heyo')")sys.stdout = old_stdoutmessage = mystdout.getvalue()

UYOU

打印语句没有返回?var = eval("2")message = f"{var}"print(message)输出:2

长风秋雁

eval() 将字符串计算为 Python 代码。现在如果有任何返回值,它将存储在var变量中。在您的代码中,打印语句None在执行后返回。所以你不会收到 None 作为消息。例如:如果你运行下面的代码,你将得到 500:def something():     return 500var = eval("something()")print(var)output500
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python