鱼C论坛

 找回密码
 立即注册
查看: 1199|回复: 4

[已解决]关于type输出类型的问题

[复制链接]
发表于 2020-7-1 21:35:56 | 显示全部楼层 |阅读模式

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

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

x
各位鱼油大哥这是我写的代码的一部分:
temp=input("请输入一个你想知道的年份:")
year=int(temp)
aaa=year/400
if type(aaa)==int:
    print(temp+"年,"+"这一年是闰年")
感觉这行代码奇奇怪怪:
if type(aaa)==int:

不知道为什么==后边的填int或者<class 'int'>都不能达到理想目的呢?

感谢各位鱼油大哥拜托了
最佳答案
2020-7-1 21:37:54
本帖最后由 Twilight6 于 2020-7-1 21:40 编辑



Python 中的除法返回的都是 float 浮点型哈

所以你 type(aaa)  永远为 float ,而不为 int 导致 你的条件永不成立

建议代码用 % 求余运算符,看看有没余数用来判断是否被整除:
temp=input("请输入一个你想知道的年份:")
year=int(temp)
aaa=year%400
if aaa:
    print(temp+"年,"+"这一年是闰年")

或者用 int 和 原先的除法后的 float 判断值是否相等:
temp=input("请输入一个你想知道的年份:")
year=int(temp)
aaa=year/400
if int(aaa)==aaa:
    print(temp+"年,"+"这一年是闰年")

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-1 21:37:54 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-7-1 21:40 编辑



Python 中的除法返回的都是 float 浮点型哈

所以你 type(aaa)  永远为 float ,而不为 int 导致 你的条件永不成立

建议代码用 % 求余运算符,看看有没余数用来判断是否被整除:
temp=input("请输入一个你想知道的年份:")
year=int(temp)
aaa=year%400
if aaa:
    print(temp+"年,"+"这一年是闰年")

或者用 int 和 原先的除法后的 float 判断值是否相等:
temp=input("请输入一个你想知道的年份:")
year=int(temp)
aaa=year/400
if int(aaa)==aaa:
    print(temp+"年,"+"这一年是闰年")

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

使用道具 举报

 楼主| 发表于 2020-7-1 21:39:02 | 显示全部楼层
Twilight6 发表于 2020-7-1 21:37
Python 中的除法返回的都是 float 浮点型哈

sorry,这个知识点忘了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-1 21:40:19 From FishC Mobile | 显示全部楼层
除法运算最后结果都是浮点数,所以用数据类型判断是行不通的,可以用取余%,余数为0就是能整除。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-7-1 21:41:33 | 显示全部楼层
hrp 发表于 2020-7-1 21:40
除法运算最后结果都是浮点数,所以用数据类型判断是行不通的,可以用取余%,余数为0就是能整除。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 03:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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