我试图找出在Python中评估表达式的语法,该表达式涉及替换变量。
代码需要遍历一个选项列表,在“{:(此处插入列表项)}”中插入字符串输入“
示例代码(Python 3.x):
n = 11
print("my number is {:d}".format(n))
formatList = ['e', 'b', 'o', 'd', 'x', 'f', 's']
for atype in formatList:
# Failed Attempts:
# print("my number is {:eval(atype)}".format(n))
# print("my number is {:" + eval(atype) + "}".format(n))
# print(eval("my number is {:" + atype + "}").format(n))
# print(eval(' "my number is {:" + atype + "}".format(n)) '))
输出应该类似于数字11,以列表给出的所有可能格式。
感谢大家的帮助!
答案 0 :(得分:1)
您可以通过分为两个段落来实现这一目标:
n = 11
print("my number is {:d}".format(n))
formatList = ['e', 'b', 'o', 'd', 'x', 'f', 's']
for atype in formatList:
str_template = 'my number is {:' + atype + '}'
print(str_template.format(n))
如果你真的想要一行,你可以使用this回答,在字符串中使用双花括号' {{':
for atype in formatList:
print('my number is {{:{}}}'.format(atype).format(n))