鱼C论坛

 找回密码
 立即注册
查看: 1540|回复: 3

[已解决]模拟输出月历python,求救!!!

[复制链接]
发表于 2019-10-2 19:11:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zltzlt 于 2019-10-5 19:59 编辑

一只python小菜鸡,大神们看看有什么地方错了嘛,或者有什么可以优化的地方

题目
程序输入有两行,每行一个整数
第1行有一个整数S (0 <= S < 7),表示本月1号是星期几,S=0表示星期日,S=1表示星期一,S=2为星期二,...S=6表示星期六
第2行有一个整数M,表示本月的天数。M的取值只可能是{28,29,30,31}
输出
第一行是"Su Mo Tu We Th Fr Sa",把星期信息显示出来(每天用两个字母表示,中间用一个空格分隔,行尾没有空格)
下边几行输出日历,各数字与第一行的星期对齐,若日期只有一位数则对齐在个位上。行尾不要有多余空格。



                               
登录/注册后可看大图


a = int(input())
b = int(input())
print('Su','Mo','Tu','We','Th','Fr','Sa')
i = 7
j=int()
k=int()
for j in range(i-a-6,i-a+1):
    if j <= 0:
        print('   ',end='')
    elif 0 < j < i-a:
        print('',j,end=' ')
    elif j == i-a:
        print('',j)
while i <= b-7:
    i+=7   
    for j in range(i-a-6,i-a+1):
        if j < 10:
            if 0 < j < i-a:
                print('',j,end=' ')
            else:
                print('',j)
        elif 10<= j< i-a:
            print(j,end=' ')
        elif j == i-a:
            print(j)
else :
    for k in range(i+1-a,b+1):
        if k == b:
            print(k)
        elif k == i-a+7:
            print(i-a)
        else:
            print(k,end=' ')
   
最佳答案
2019-10-3 01:05:18
  1. a = int(input('本月1号是星期几,S=0表示星期日,S=1表示星期一...: '))
  2. b = int(input('本月的天数, 取值只可能是[28,29,30,31]: '))
  3. print('Su','Mo','Tu','We','Th','Fr','Sa')

  4. print(' '*a*4, end='')
  5. for index in range(1, b+1):
  6.     if (index+a+1) % 7 == 0:
  7.         print('{0:2}'.format(index))   
  8.     else:
  9.         print('{0:2}'.format(index), end=' ')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-2 21:09:26 From FishC Mobile | 显示全部楼层
真正的月历都是能计算出来的,不需要输入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-3 01:05:18 | 显示全部楼层    本楼为最佳答案   
  1. a = int(input('本月1号是星期几,S=0表示星期日,S=1表示星期一...: '))
  2. b = int(input('本月的天数, 取值只可能是[28,29,30,31]: '))
  3. print('Su','Mo','Tu','We','Th','Fr','Sa')

  4. print(' '*a*4, end='')
  5. for index in range(1, b+1):
  6.     if (index+a+1) % 7 == 0:
  7.         print('{0:2}'.format(index))   
  8.     else:
  9.         print('{0:2}'.format(index), end=' ')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-5 19:43:21 | 显示全部楼层

谢谢大佬提供的思路。问题终于解决了呜呜呜,为了对齐,我稍微修改了几个小地方总之谢谢大佬!!!

  1. print(' '*a*3, end='')
  2. for index in range(1, b+1):
  3.     if (index+a) % 7 == 0:
  4.         print('{0:2}'.format(index))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-19 08:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表