为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

红糖糍粑 2023-10-11 22:43:13
我是 Python 世界的新手。我的问题是:如何将 eval() 的输出保存在变量中?# CODEvar = eval(print("Heyo"))message = f"{var}"# RESULTNone我尝试使用数字表达式:1+1,输出为 2。我需要输出为:Heyo(在本例中)我能做些什么?
查看完整描述

3 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

Eval 将执行您作为输入提供的字符串内的任何内容,这意味着您的 print 语句将打印到标准输入。解决此问题的一种方法是stdout在调用 eval 之前将 重定向到变量。


from io import StringIO

import sys


old_stdout = sys.stdout

sys.stdout = mystdout = StringIO()


eval("print('Heyo')")


sys.stdout = old_stdout


message = mystdout.getvalue()


查看完整回答
反对 回复 2023-10-11
?
UYOU

TA贡献1878条经验 获得超4个赞

打印语句没有返回?


var = eval("2")

message = f"{var}"


print(message)

输出:


2


查看完整回答
反对 回复 2023-10-11
?
长风秋雁

TA贡献1757条经验 获得超7个赞

eval() 将字符串计算为 Python 代码。现在如果有任何返回值,它将存储在var变量中。在您的代码中,打印语句None在执行后返回。所以你不会收到 None 作为消息。


例如:


如果你运行下面的代码,你将得到 500:



def something(): 

    return 500


var = eval("something()")


print(var)


output

500


查看完整回答
反对 回复 2023-10-11
  • 3 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信