鱼C论坛

 找回密码
 立即注册
查看: 3570|回复: 12

[已解决]python 第五课课后题 判断一年是否为闰年#见代码

[复制链接]
发表于 2018-1-5 22:41:12 | 显示全部楼层 |阅读模式

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

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

x

请问 我这个对不对  如果不对 哪里错了  谢谢指点

  1. temp = input('请输入一个年份: ')
  2. year = int(temp)
  3. if (year / 4 == 0) and (year / 100 != 0) and (year / 400 == 0):
  4.     print('你输入的是闰年.')
  5. else:
  6.     print('你输入的不是闰年.')
复制代码


请问 我这个对不对  如果不对 哪里错了  谢谢指点
最佳答案
2018-1-5 23:10:58
temp = input('请输入一个年份: ')
year = int(temp)
if ((year % 4 == 0) and (year % 100 != 0)) or year%100 ==0:
    print('你输入的是闰年.')
else:
    print('你输入的不是闰年.')
①标红那儿and改为or
②整除是余数等0,所以应当用%
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-5 23:04:52 | 显示全部楼层
if (year / 4 == 0) and (year / 100 != 0) and (year / 400 == 0):这句明显不对,运算符号用错了,你应该是取模吧,用%,你这句话的意思肯定是无解,世界上没有数能除以4跟400等于0而除以100不等于0,而且你这程序缺少判断输入数据类型不对的判断,如果对方输入的不是数字而是字母或者输入的不是整数是小数应该告诉对方输入正确的年分数。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-5 23:10:58 | 显示全部楼层    本楼为最佳答案   
temp = input('请输入一个年份: ')
year = int(temp)
if ((year % 4 == 0) and (year % 100 != 0)) or year%100 ==0:
    print('你输入的是闰年.')
else:
    print('你输入的不是闰年.')
①标红那儿and改为or
②整除是余数等0,所以应当用%
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-5 23:17:24 | 显示全部楼层
zero月蚀的假面 发表于 2018-1-5 23:10
temp = input('请输入一个年份: ')
year = int(temp)
if ((year % 4 == 0) and (year % 100 != 0)) or ye ...
  1. temp = input('请输入一个年份:')
  2. while not temp.isdigit():
  3.     temp = input("抱歉,您的输入有误,请输入一个整数:")

  4. year = int(temp)
  5. if year/400 == int(year/400):
  6.     print(temp + ' 是闰年!')
  7. else:
  8.     if (year/4 == int(year/4)) and (year/100 != int(year/100)):
  9.         print(temp + ' 是闰年!')
  10.     else:
  11.         print(temp + ' 不是闰年!')
复制代码

小甲鱼的正确答案是这样的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-5 23:17:54 | 显示全部楼层
冰封雪舞 发表于 2018-1-5 23:04
if (year / 4 == 0) and (year / 100 != 0) and (year / 400 == 0):这句明显不对,运算符号用错了,你应该 ...
  1. temp = input('请输入一个年份:')
  2. while not temp.isdigit():
  3.     temp = input("抱歉,您的输入有误,请输入一个整数:")

  4. year = int(temp)
  5. if year/400 == int(year/400):
  6.     print(temp + ' 是闰年!')
  7. else:
  8.     if (year/4 == int(year/4)) and (year/100 != int(year/100)):
  9.         print(temp + ' 是闰年!')
  10.     else:
  11.         print(temp + ' 不是闰年!')
复制代码

小甲鱼的正确答案是这样的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-5 23:29:34 | 显示全部楼层
本帖最后由 zero月蚀的假面 于 2018-1-5 23:31 编辑

但是你也可以用%求余数等于0的方式来求,我是按照你的那样改了一下
  1. if ((year % 4 == 0) and (year % 100 != 0)) or year%100 ==0:
复制代码

这个我按照你那个改的没写为两句话,在or前用了个大括号
其实最好分开写,是两种情况,用elif就可以
在你改之后还需要在那个代码前面加个判断不是整数类型的时候的情况
  1. while not temp.isdigit():
  2.     temp = input("抱歉,您的输入有误,请输入一个整数:")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-5 23:40:39 | 显示全部楼层
冰封雪舞 发表于 2018-1-5 23:04
if (year / 4 == 0) and (year / 100 != 0) and (year / 400 == 0):这句明显不对,运算符号用错了,你应该 ...

谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-5 23:41:37 | 显示全部楼层
zero月蚀的假面 发表于 2018-1-5 23:29
但是你也可以用%求余数等于0的方式来求,我是按照你的那样改了一下

这个我按照你那个改的没写为两句话, ...

嗯  新学的 太小白了  谢谢指导
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-6 21:46:54 | 显示全部楼层
屁哥 发表于 2018-1-5 23:17
小甲鱼的正确答案是这样的

兄弟我不明白你打出小甲鱼答案是什么意思?
if (year / 4 == 0) and (year / 100 != 0) and (year / 400 == 0)这句话跟
if (year/4 == int(year/4)) and (year/100 != int(year/100)):
意思差别有多大你看不出来?
year/4 ==0 是说year除以4等于0,这也就是说year必须等于0才会符合条件
而year/4 ==int(year/4)是说year除以4跟year除以4的得数取整相等是,也就是说year是个能整除4的数才会符合条件。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-6 22:09:57 | 显示全部楼层
冰封雪舞 发表于 2018-1-6 21:46
兄弟我不明白你打出小甲鱼答案是什么意思?
if (year / 4 == 0) and (year / 100 != 0) and (year / 400 ...

现在明白点了  我数学也不是很好。。。。。。。。
谢谢师兄指点  以后 跟你们多多学习
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-7 01:53:02 | 显示全部楼层
zero月蚀的假面 发表于 2018-1-5 23:10
temp = input('请输入一个年份: ')
year = int(temp)
if ((year % 4 == 0) and (year % 100 != 0)) or ye ...

if ((year % 4 == 0) and (year % 100 != 0)) or year%100 ==0:不明白你这句话什么意思?你能翻译一下吗?
按照你这个公式有符合条件的数字吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-7 15:13:06 | 显示全部楼层
冰封雪舞 发表于 2018-1-7 01:53
if ((year % 4 == 0) and (year % 100 != 0)) or year%100 ==0:不明白你这句话什么意思?你能翻译一下吗 ...

if ((year % 4 == 0) and (year % 100 != 0)) or year%400 ==0
不好意思,我后面那个写错了应该是year%400 ==0
一个数能整除就是余数为0嘛,就根据它余数来判断
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-7 18:43:33 | 显示全部楼层
zero月蚀的假面 发表于 2018-1-7 15:13
if ((year % 4 == 0) and (year % 100 != 0)) or year%400 ==0
不好意思,我后面那个写错了应该是year%4 ...

我是明白,就是楼猪怕是不明白。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-5 11:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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