鱼C论坛

 找回密码
 立即注册
查看: 2849|回复: 11

[已解决]有关查询闰年程序的编写,小白求教1

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

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

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

x
print("········闰年查询系统········")
temp=input("请输入您想查询的年份")
a=int(temp)
b=a/4
c=a/100
d=a/400
if isinstance(d,int) == 1:
    print("这是闰年")
elif (isinstance(b,int) == 1) and (isinstance(c,int) == 0):
    print("这是闰年")
else:
    print("这是平年")

请问各位大佬,为什么结果都是平年呢
最佳答案
2020-3-2 19:17:27
Python 除法得到的结果都是浮点数,即使可以整除:

  1. >>> 3 / 3
  2. 1.0
复制代码


所以需要用求余数的方法判断:

  1. print("········闰年查询系统········")
  2. temp = int(input("请输入您想查询的年份"))    # 将用户输入的数转化为整数
  3. if temp % 400 == 0:
  4.     print("这是闰年")
  5. elif temp % 100 != 0 and temp % 4 == 0:
  6.     print("这是闰年")
  7. else:
  8.     print("这是平年")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-2 18:51:16 | 显示全部楼层
因为在Python中做除法,结果都会自带小数点,比如:
  1. >>> 4 / 2
  2. 2.0
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-2 18:53:31 | 显示全部楼层
  1. print("········闰年查询系统········")
  2. year = int(input("请输入要查询的年份: "))
  3. if year % 400 == 0 or (year % 4 == 0 and year % 100 == 0):
  4.     print("是闰年!")
  5. else:
  6.     print("不是闰年!")
复制代码

你要的是求余数,不是求商
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-2 18:55:57 From FishC Mobile | 显示全部楼层
因为无论你输入什么
isinstance(b,int),isinstance(c,int),isinstance(d,int)
这些都是false
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-2 18:56:18 | 显示全部楼层
qiuyouzhi 发表于 2020-3-2 18:53
你要的是求余数,不是求商

@一个账号 咋了?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-2 18:56:58 | 显示全部楼层
qiuyouzhi 发表于 2020-3-2 18:56
@一个账号 咋了?

什么咋了?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-2 19:06:39 | 显示全部楼层
本帖最后由 一个账号 于 2020-3-2 19:25 编辑

  1. try:
  2.     year = int(input("请输入要查询的年份: "))

  3.     if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
  4.         print("是闰年!")
  5.     else:
  6.         print("不是闰年!")

  7. except:
  8.     print("输入错误!")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-2 19:11:36 | 显示全部楼层

我看你刚才回复我来着
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-2 19:14:31 | 显示全部楼层
本帖最后由 海上飞鱼 于 2020-3-2 19:16 编辑
  1. year = int(input('请输入一个年份:'))
  2. print(str(year) +'年是'+('闰年' if (year % 400==0) or (year % 4==0 and year % 100) else '平年'))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-2 19:17:27 | 显示全部楼层    本楼为最佳答案   
Python 除法得到的结果都是浮点数,即使可以整除:

  1. >>> 3 / 3
  2. 1.0
复制代码


所以需要用求余数的方法判断:

  1. print("········闰年查询系统········")
  2. temp = int(input("请输入您想查询的年份"))    # 将用户输入的数转化为整数
  3. if temp % 400 == 0:
  4.     print("这是闰年")
  5. elif temp % 100 != 0 and temp % 4 == 0:
  6.     print("这是闰年")
  7. else:
  8.     print("这是平年")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-2 19:24:21 | 显示全部楼层

第一句放的位置不对吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-2 19:25:18 | 显示全部楼层
zltzlt 发表于 2020-3-2 19:24
第一句放的位置不对吧

搞错了,谢谢提醒
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-1 13:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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