我有以下代码:
>>> x = 0
>>> y = 3
>>> while x < y:
... print '{0} / {1}, '.format(x+1, y)
... x += 1
输出:
1 / 3,
2 / 3,
3 / 3,
我希望输出如下:
1 / 3, 2 / 3, 3 / 3
我搜索并发现在一行中执行此操作的方法是:
sys.stdout.write('{0} / {1}, '.format(x+1, y))
还有另一种方法吗?我对sys.stdout.write()
感到不舒服,因为我不知道它与print
有什么不同。
答案 0 :(得分:6)
你可以使用
打印“东西”,
(带尾随逗号,不插入换行符),所以 试试这个
... print '{0} / {1}, '.format(x+1, y), #<= with a ,
答案 1 :(得分:3)
我认为sys.stdout.write()
会很好,但是Python 2中的标准方式是print
,并带有一个尾随逗号,如 mb14 所示。如果您使用的是Python 2.6+并希望向上兼容Python 3,则可以使用新的print
函数,它提供了更易读的语法:
from __future__ import print_function
print("Hello World", end="")
答案 2 :(得分:2)
无需write
。
如果你在print语句后加上一个逗号,你就会得到你需要的东西。
注意事项:
答案 3 :(得分:2)
>>> while x < y:
... print '{0} / {1}, '.format(x+1, y),
... x += 1
...
1 / 3, 2 / 3, 3 / 3,
注意额外的逗号。
答案 4 :(得分:2)
答案 5 :(得分:-1)
这是一种使用itertools实现您想要的方法。这对于打印成为函数的Python3也是可行的
from itertools import count, takewhile
y=3
print(", ".join("{0} / {1}".format(x,y) for x in takewhile(lambda x: x<=y,count(1))))
您可能会发现以下方法更容易理解
y=3
items_to_print = []
for x in range(y):
items_to_print.append("{0} / {1}".format(x+1, y))
print(", ".join(items_to_print))
使用带有逗号的逗号print
的问题是,最后会得到一个额外的逗号,而且没有换行符。这也意味着你必须有单独的代码才能与python3