-2
 for r in range(0,11):
    print r
0
1
2
3
4
5
6
7
8
9
10

反正有没有像这样的输出

0 1 2 3 4 5
6 7 8 9 10

或我想要的尽可能多的行

但不与

for r in range (0,6):
    print r,
print
for r in range(6,11):
    print r,

这只是一个例子,虽然我的程序需要打印

* - - - - - - - - - - - - - - - - - - -
* * - - - - - - - - - - - - - - - - - -
* - * - - - - - - - - - - - - - - - - -
* * - * - - - - - - - - - - - - - - - -
* - - - * - - - - - - - - - - - - - - -
* * * - - * - - - - - - - - - - - - - -
* - - - - - * - - - - - - - - - - - - -
* * - * - - - * - - - - - - - - - - - -
* - * - - - - - * - - - - - - - - - - -
* * - - * - - - - * - - - - - - - - - -
* - - - - - - - - - * - - - - - - - - -
* * * * - * - - - - - * - - - - - - - -
* - - - - - - - - - - - * - - - - - - -
* * - - - - * - - - - - - * - - - - - -
* - * - * - - - - - - - - - * - - - - -
* * - * - - - * - - - - - - - * - - - -
* - - - - - - - - - - - - - - - * - - -
* * * - - * - - * - - - - - - - - * - -
* - - - - - - - - - - - - - - - - - * -
* * - * * - - - - * - - - - - - - - - *

但我只能生成每个字符的行和所有字符的一行。所以请帮忙

4

3 回答 3

0

您可以使用以下if语句:

if r >= 0 and r < 6:
    print r
if r >= 6 and <= 10:
    print r,
于 2013-10-06T11:20:51.757 回答
0

首先列出您要打印的内容,然后在循环中使用例如简单的模数:

toprint=['*','-',1,2,'a','b','c','d',3,4,5,'-','l',0]

width=4

tmp=''
for i,char in enumerate(toprint):
   tmp=tmp+' '+str(char)
   if (i+1)%width==0:
      print tmp
      tmp=''

 * - 1 2
 a b c d
 3 4 5 -
于 2013-10-06T11:41:37.297 回答
0

你可以这样做:

>>> from itertools import izip_longest
>>> for i in izip_longest(*[iter(range(11))]*6, fillvalue=''):
...     print ' '.join(map(str, i))
... 
0 1 2 3 4 5
6 7 8 9 10 

可能有更好的解决方案

于 2013-10-06T11:32:57.743 回答