如何使用' exec()' python中的命令

时间:2014-11-05 12:24:37

标签: python exec

对于以下代码:

command = '\'{:.' + str(3) + 'f}\'.format(' + str(12.6543423) + ')'

print(command)
print('{:.3f}'.format(12.6543423))
print(exec(command))

预期结果:

'{:.3f}'.format(12.6543423)
12.654
12.654

实际结果:

'{:.3f}'.format(12.6543423)
12.654
None

请有人告诉我我做错了什么以及如何解决?我都在尝试编写一个数字舍入函数并尝试理解exec命令。

5 个答案:

答案 0 :(得分:9)

或者根本不使用exec或eval。使用功能format优惠:

>>> '{:.{}f}'.format(12.6543423, 3)
12.654

答案 1 :(得分:0)

使用eval()代替exec()来获取表达式返回的结果。

答案 2 :(得分:0)

使用eval

>>> eval('\'{:.' + str(3) + 'f}\'.format(' + str(12.6543423) + ')')
'12.654'

答案 3 :(得分:0)

或者您可以使用exec

command = '\'{:.' + str(3) + 'f}\'.format(' + str(12.6543423) + ')'
print(command)
mycode = """print('{:.3f}'.format(12.6543423))"""

print('{:.3f}'.format(12.6543423))
exec(mycode)

答案 4 :(得分:0)

你困惑了exec和eval:

In [27]: command = 'print'+'('+'\'{:.' + str(3) + 'f}\'.format(' + str(12.6543423) + ')'+')'

In [28]: exec(command)
12.654