鱼C论坛

 找回密码
 立即注册
查看: 440|回复: 6

Python课后作业 5 (闰年)

[复制链接]
发表于 2020-3-25 04:35:52 | 显示全部楼层 |阅读模式

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

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

x
def year(x):
  res=x/4
  a=isinstance(res,int)
  if a == True:
    print(x,'是闰年')
  elif a != True:
    print(x,'不是闰年')
year(2000)


这串代码有些问题,因为x/4的结果就算是整数也会带上小数点,比如2000/4=500.0。希望能在代码上改进一下,去除这个问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-25 05:58:31 | 显示全部楼层
本帖最后由 XiaoPaiShen 于 2020-3-25 06:03 编辑

你写的闰年的定义不对,我只是按你的思路改了一下
def year(x):
  res=x%4
  
  if res == 0:
    print(x,'是闰年')
  else:
    print(x,'不是闰年')

year(2000)

正确代码如下:
def leap_year(year):
        if (year%4 == 0) & (year%100 != 0):
                print("%d年是闰年" % year)
        elif year%400 == 0:
                print("'%d'年是闰年" % year)
        else:
                print("'%d'不年是闰年" % year)

leap_year(2000)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2020-3-25 09:48:43 | 显示全部楼层
python中默认的 / 返回的都是float,所以你的代码永远不会输出是闰年
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-25 13:27:59 | 显示全部楼层
Python 中除法的结果总是小数,所以需要用取余运算判断
def year(x):
    if (x % 4 == 0) and (x % 100 != 0):
        print("%d 年是闰年" % year)
    elif x % 400 == 0:
        print("%d 年是闰年" % year)
    else:
        print("%d 年不是闰年" % year)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-25 14:13:31 | 显示全部楼层
/ 除返回的值总是float型的, 永远不满足int. 要么你用% 取余数为0,就好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-31 04:10:46 | 显示全部楼层
XiaoPaiShen 发表于 2020-3-25 05:58
你写的闰年的定义不对,我只是按你的思路改了一下

非常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-31 04:30:29 | 显示全部楼层

请选择最佳答案,结贴
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-25 12:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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