python-3.x 为什么在使用eval函数时,第二行的输出结果为None?

dba5bblo  于 2022-11-26  发布在  Python
关注(0)|答案(3)|浏览(165)

我正在执行这行代码-

print(eval("print(2 +3)"))

但这不是像5那样给出输出,而是给出输出-

5
None
tktrz96b

tktrz96b1#

这是因为您在print()中提供了eval()。

eval("(2 +3)")

这将返回5,因为函数eval返回值5,并使用print()打印该值
但是,

print(eval("(2 +3)"))

在eval()中,我们使用了print(),所以内部的print()打印值5,函数eval()返回None,因为它没有返回任何值,外部的print()打印None

vwkv1x7d

vwkv1x7d2#

当你试图得到像eval("2")这样的函数的eval时,你实际上得到的是int类型。
但试图计算print表达式时得到的是None类型。将执行Print,但eval("print(2+3)")的类型将为None。

tv6aics1

tv6aics13#

print()有时会在value之后打印一个None或None。
对于不打印None需要使用定义功能。
也许你的问题是来自海克兰。
我今天有个问题。
这就是我的答案。

def ev(expression):
  return eval(expression)
ev(input())

相关问题