用python中的一系列格式化字符串填充列表

用python中的一系列格式化字符串填充列表,python,list,Python,List,为什么这不起作用 [ print("%d03" % a) for a in range(1,99)] File "<stdin>", line 1 [ print("%d03" % a) for a in range(1,99)] ^ SyntaxError: invalid syntax [打印(“%d03”%a)范围(1,99)] 文件“”,第1行 [对于范围(1,99)内的a,打印(“%d03”%a)] ^ SyntaxError:无效语法

为什么这不起作用

[ print("%d03" % a) for a in range(1,99)]
  File "<stdin>", line 1
    [ print("%d03" % a) for a in range(1,99)]
          ^
SyntaxError: invalid syntax
[打印(“%d03”%a)范围(1,99)]
文件“”,第1行
[对于范围(1,99)内的a,打印(“%d03”%a)]
^
SyntaxError:无效语法
但是

打印(“%03d”%a)
098


这是因为
print()
是一个打印参数但不返回参数的函数。好消息是,格式化不需要
print()

您(可能)正在寻找的是:

["%03d" % a for a in range(1,99)]
或者使用内置函数
format()

如果您确实想
print()
打印数字,则不要使用列表理解,而只需使用一个简单的
for
循环:

for _ in range(99): print("%03d" % _)

这是因为
print()
是一个打印参数但不返回参数的函数。好消息是,格式化不需要
print()

您(可能)正在寻找的是:

["%03d" % a for a in range(1,99)]
或者使用内置函数
format()

如果您确实想
print()
打印数字,则不要使用列表理解,而只需使用一个简单的
for
循环:

for _ in range(99): print("%03d" % _)

在Python2.x中,
print
是一条语句,因此它不能作为表达式的一部分出现。在Python3.x中,列表理解在语法上是正确的,因为
print
被转换为一个函数,尽管有点毫无意义,因为
print()
总是返回
None

无论如何,这是正确的方法:

for a in range(1,99):
    print("%d03" % a)

在Python2.x中,
print
是一条语句,因此它不能作为表达式的一部分出现。在Python3.x中,列表理解在语法上是正确的,因为
print
被转换为一个函数,尽管有点毫无意义,因为
print()
总是返回
None

无论如何,这是正确的方法:

for a in range(1,99):
    print("%d03" % a)

我不知道为什么不能在列表理解中使用print,但可以解决这个问题:

In: print ["%03d" % a for a in range(1,10)]
['001', '002', '003', '004', '005', '006', '007', '008', '009']

我不知道为什么不能在列表理解中使用print,但可以解决这个问题:

In: print ["%03d" % a for a in range(1,10)]
['001', '002', '003', '004', '005', '006', '007', '008', '009']
print不会返回任何内容,因此不能在表达式中使用它

print不会返回任何内容,因此不能在表达式中使用它