2

我想打印一行数字,然后让它换行并继续计数..即日历..
现在我有

numbers = [1, 2, 3, 4, 5];                                                                       
print(*numbers, sep='  ')


Sun Mon Tues Wed Thurs Fri Sat                      
  1  2    3   4    5    6   7

但现在我需要它来制作一条新线并继续..有什么方法可以轻松做到这一点?如果我把它全部写出来,我的代码真的很庞大而且很混乱。

4

3 回答 3

1

Python 2.*. 以下代码将打印从 1 到 31、每行 7 的数字:

columns = 7
for i in range(1, 32):
 if i % columns != 0:
  print i,
 else:
  print i

注意打印 i,然后打印 i。逗号符号禁止换行符。当我想开始一个新行时,我省略了逗号。另一种开始新行的方法是打印一个空字符串:

print ''

Python 3.*中,print 变成了一个函数

print(x, end=" ")  # Appends a space instead of a newline

或者

print(x), # this will still print a space, but not a newline

包括数字调整奖金的解决方案是:

for i in range(1, 32):
  if i%column != 0:
    print(str(i).rjust(3)),
  else:
    print(str(i).rjust(3))

结果:

  1   2   3   4   5   6   7
  8   9  10  11  12  13  14
 15  16  17  18  19  20  21
 22  23  24  25  26  27  28
 29  30  31

你可以使用str.ljust(),str.center()函数来获得你想要的理由。

另一种打印数字的方法:

import sys    
sys.stdout.write(str(i))

print() 函数还提供了 sep 参数,可让您指定要打印的各个项目应如何分开。这也可以给你一个想法。

于 2013-10-14T03:33:39.963 回答
0

您可以使用 '\n' 开始新行:
Python 2.7: print '\n'
Python 3.*: print('\n')

于 2013-10-14T03:36:37.453 回答
0

我对python不是最熟悉,但我可以给你一些伪代码。

int day = 1;

print("Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday");
while(day < DaysInMonth){

    for (int i = 0; i < 7; i ++){

        print(day.ToString());
        print("  ");                    //spacing
        day++;
    }

print("\n");
}

当然,这个解决方案不是很健壮。您必须以编程方式确定 DaysInMonth,并且此方法将始终在星期日为每月的第一天。

于 2013-10-14T03:38:04.923 回答