Python日历日期缺少空格
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python日历日期缺少空格相关的知识,希望对你有一定的参考价值。
我遇到了这个程序,并在这里修复了一部分,但我遇到了另一个问题。当它打印出月份时,日期不在正确的位置,它缺少一个空格。我需要在一周的最后一个字母下面找到一位数字的日期。例如,“r”字母下的数字1而不是“F”字母。谢谢您的帮助。
calendar1 = [('January', range(1, 31 + 1)),
('Feburary', range(1, 28 + 1)),
('March', range(1, 31 + 1)),
('April', range(1, 30 + 1)),
('May', range(1, 31 + 1)),
('June', range(1, 30 + 1)),
('July', range(1, 31 + 1)),
('August', range(1, 31 + 1)),
('September', range(1, 30 + 1)),
('October', range(1, 31 + 1)),
('November', range(1, 30 + 1)),
('December', range(1, 31 + 1))]
week = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su']
def make_calendar(year, start_day):
# Determine current starting position on calendar
start_pos = week.index(start_day)
for month, days in calendar1:
# Print month title
print('{0} {1}'.format(month, year).center(20, ' '))
# Print Day headings
print(' '.join(['{0:<2}'.format(w) for w in week]))
# Add spacing for non-zero starting position
print('{0:<3}'.format('')*start_pos, end='')
for day in days:
# Print day
print('{0:<3}'.format(day), end='')
start_pos += 1
if start_pos == 7:
# If start_pos == 7 (Sunday) start new line
print()
start_pos = 0 # Reset counter
print('
')
yr=int(input('Enter Year'))
strtday=input('Enter start day of the year Mo,Tu,We,Th,Fr,Sa,Su')
make_calendar(yr,strtday)
答案
改变这个:
print('{0:<3}'.format(day), end='')
对此:
print('{0:>2} '.format(day), end='')
请注意,格式字符串中的右大括号后面有一个空格。
您的原始代码显示“打印day
左对齐在3个字符的字段中”。新代码说“打印day
在2个字符的字段中右对齐,然后打印一个空格”。
以上是关于Python日历日期缺少空格的主要内容,如果未能解决你的问题,请参考以下文章