我想要打印一行数字,然后让它换行并继续计数..即日历..
现在我有
numbers = [1, 2, 3, 4, 5];
print(*numbers, sep=' ')
Sun Mon Tues Wed Thurs Fri Sat
1 2 3 4 5 6 7
但现在我需要它来制作新的一行并继续......我能轻易地做到这一点吗?如果我把它全部写出来,我的代码真的很笨重。
答案 0 :(得分: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
解决方案包括号码justification奖励将是:
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参数,该参数允许指定应如何分离单个要打印的项目。这也可以给你一个想法。
答案 1 :(得分:0)
您可以使用'\ n'开始新行:
Python 2.7:打印'\ n'
Python 3. *:print('\ n')
答案 2 :(得分: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,这个方法总是在星期天的第一个月。