【问题标题】:Python calendar date missing a whitespacePython 日历日期缺少空格
【发布时间】:2017-12-16 13:04:45
【问题描述】:

我遇到了这个程序并在这里修复了其中的一部分,但我遇到了另一个问题。当它打印出月份时,日期不在正确的位置,它缺少一个空格。我需要将带有个位数的日期放在一周的最后一个字母之下。例如“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('\n')

yr=int(input('Enter Year'))
strtday=input('Enter start day of the year Mo,Tu,We,Th,Fr,Sa,Su')
make_calendar(yr,strtday)

【问题讨论】:

    标签: python list calendar whitespace


    【解决方案1】:

    改变这个:

        print('{0:<3}'.format(day), end='')
    

    到这里:

        print('{0:>2} '.format(day), end='')
    

    请注意,格式字符串中的右大括号后面有一个空格。

    您的原始代码显示“在 3 个字符的字段中打印 day 左对齐”。新代码说“打印day 在 2 个字符的字段中右对齐,然后打印一个空格”。

    【讨论】:

    • 在我进行了更改后,日历完全搞砸了:(
    • 那么您没有正确进行更改。你的那部分程序现在是什么样子的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多