如何在 python 中打印 C 格式

How to print a C format in python

一个python新手问题:

我想在 python 中打印带有参数列表的 c 格式:

agrs = [1,2,3,"hello"]
string = "This is a test %d, %d, %d, %s"

如何使用 python 进行打印:

这是测试1、2、3,你好

谢谢。

看看 % 运算符。它接受这样的字符串和元组:

print "My age is %d and my favourite char is %c" % (16, '$')

字符串重载模数运算符 %,用于 printf-style formatting,特殊情况 tuples 用于使用多个值进行格式化,因此您需要做的就是从 [= 转换14=] 到 tuple:

print(string % tuple(agrs))

元组:

示例:

print("Total score for %s is %s  " % (name, score))

你的情况:

print(string % tuple(agrs))

或使用新式字符串格式:

print("Total score for {} is {}".format(name, score))

或者将值作为参数传递,然后打印即可:

print("Total score for", name, "is", score)

Source

使用新式格式:这个怎么样? (这里只是做实验) 文档:https://docs.python.org/3.6/library/string.html

args = [1,2,3,"hello"]
string = "{}, "*(len(args)-1)+"{}" # = "{}, {}, {}, {}"

'This is a test {}'.format(string.format(*args)) # inception!

或者这个:

args = [1,2,3,"hello"]
argstring = [str(i) for i in args]
'This is a test {}'.format(', '.join(argstring))

或者简单地说:

args = [1,2,3,"hello"]
'This is a test {}'.format(', '.join(map(str,args)))

全部打印:

This is a test 1, 2, 3, hello

l = [1,2,3,"hello"]
print("This is a test %d, %d, %d, %s"%(l[0],l[1],l[2],l[3]))

希望这有效! 干杯!

以下方法不需要 % 字符:

agrs = [1,2,3,"hello"]
print("This is a test: {:02d},{:>10d},{:05d},{:>15s}".format(agrs[0],agrs[1],agrs[2],agrs[3]))

同样会做:

agrs = [1,2,3,"hello"]
print("This is a test: {0:02d},{1:>10d},{2:05d},{3:>15s}".format(agrs[0],agrs[1],agrs[2],agrs[3]))

每个项目都由每个大括号内的“:”后面的内容格式化,并且每个项目都对应于括号中传递给格式的参数。比如传入agrs[0],格式为“02d”,相当于C中的%02d.