用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不会返回任何内容,因此不能在表达式中使用它