带参数的Python打印变量

时间:2016-08-25 17:56:32

标签: python output

我知道你可以为字符串做这个:

print("You have inputted {0} postive numbers and {1} negative numbers".format('3','2'))

这会产生:

You have inputted 3 postive numbers and 2 negative numbers

但我想在变量名中插入一个字母。例如,

number = 4
print(nu{}ber.format("m"))

这应该产生4任何想法?

2 个答案:

答案 0 :(得分:2)

PRAGMA journal_mode = WAL

Eval从string中计算表达式,默认情况下可以访问程序变量。

或者:

print(eval('nu{}ber'.format("m")))

Globals是字典{' variable_name':value}。

除非你确实信任字符串的来源,否则你应该小心。例如,如果你有

print(globals()['nu{}ber'.format("m")])

class Nuke:
    def destroy_everything():
        launch_nukes()

class Cucumber:
    ...

print(eval('nu{}ber'.format(string_received_from_user)))

比命令

string_received_from_user = "ke.destroy_everything() or Cucum"

将被执行。

答案 1 :(得分:0)

虽然不推荐,但您可以通过globals动态访问您的变量:

>>> number = 4
>>> globals()['num' + 'ber']
4

eval也有效:

>>> eval('num' + 'ber')
4