brianwang93 发表于 2021-2-4 13:50:59

最新python第010讲闰年题

year = input('请输入一个年份:')

while not year.isdigit():
    year = input("抱歉,您的输入有误,请输入一个整数:")

year = int(year)
if year % 4 == 0:
    print("%d是闰年"%(year))
else:
    if year % 4 == 0 and year % 100 != 0:
      print('%d是闰年'%(year))
    else:
      print('%d不是闰年'%(year))

这样算出来1900年也是闰年,不对吧。。。

qq1151985918 发表于 2021-2-4 13:56:39

看一下条件再
year = input('请输入一个年份:')

while not year.isdigit():
    year = input("抱歉,您的输入有误,请输入一个整数:")

year = int(year)
if year % 4 == 0 and year % 100 != 0:
    print("%d是闰年"%(year))
else:
    if year % 400 == 0:
      print('%d是闰年'%(year))
    else:
      print('%d不是闰年'%(year))

jackz007 发表于 2021-2-4 15:13:35

本帖最后由 jackz007 于 2021-2-4 15:18 编辑

      能被 4 整除就直接判定是闰年焉能不错?
      在能被 4 整除的年份中,还需要扣除能被 100 整除的,补回能被 400 整除的。
      告诉你一个妙招,在一个逻辑表达式中,凡是需要扣除的条件一律用 and 连接,凡是需要添加的条件一律用 or 连接。
f = True
while f:
    s = input('请输入一个年份:') . strip()
    if s:
      try:
            year = int(s)
            break
      except ValueError:
            print('抱歉,输入有误')
    else:
      f = False
if f:
    if year % 4 == 0 and year % 100 != 0 or year % 400 == 0 :
      print("%d 是闰年" % year)
    else:
      print('%d 不是闰年' % year)

sunrise085 发表于 2021-2-4 15:20:29

判断条件有问题
只修改一处即可
第一个if的条件中,year % 4 改为 year % 400
页: [1]
查看完整版本: 最新python第010讲闰年题