|
发表于 2017-11-8 11:01:13
|
显示全部楼层
本帖最后由 wyp02033 于 2017-11-8 23:19 编辑
- weekend = ['日', '一', '二', '三', '四', '五', '六']
- days = [x for x in range(1,32)]
- months = {1:'一月', 2:'二月', 3:'三月', 4:'四月', 5:'五月', 6:'六月', 7:'七月', 8:'八月', 9:'九月', 10:'十月', 11:'十一月', 12:'十二月'}
- month_days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
- nmd = month_days.copy()
- for i in range(len(month_days)):
- if not i:
- nmd[i] += 1
- else:
- nmd[i] += nmd[i-1] % 7
- m = dict.fromkeys([x for x in range(12)], '')
- for i in range(12):
- m[i] += (months[i+1]+'\n')
- for each in weekend:
- m[i] += (each + ' ')
- m[i] += '\n'
-
- ndays = days.copy()
- for j in range(nmd[i] - month_days[i]):
- ndays.insert(0, ' ')
- for j in range(nmd[i]):
- if (j + 1) % 7:
- m[i] += (str(ndays[j]).ljust(2) + ' ')
- else:
- m[i] += (str(ndays[j]).ljust(2) + '\n')
- print('2018'.center(70))
- print()
- for each in m:
- m[each] = m[each].split('\n')
- for i in range(0, 12, 3):
- max_len = max(len(m[i]), len(m[i+1]), len(m[i+2]))
- for j in range(3):
- while len(m[i+j]) < max_len:
- m[i+j] += [' ' * 20]
- for j in range(max_len):
- if j == 0:
- print(m[i][j].center(17), end=' ' * 6)
- print(m[i + 1][j].center(17), end=' ' * 6)
- print(m[i + 2][j].center(17))
- elif j == 1:
- print(m[i][j].ljust(14), end=' ' * 6)
- print(m[i + 1][j].ljust(14), end=' ' * 6)
- print(m[i + 2][j])
- else:
- print(m[i][j].ljust(20), end=' ' * 6)
- print(m[i+1][j].ljust(20), end=' ' * 6)
- print(m[i+2][j])
复制代码
方法比较笨,但是基本上能满足题目要求。
输出结果:
|
-
输出结果。
评分
-
查看全部评分
|