关于type输出类型的问题
各位鱼油大哥这是我写的代码的一部分:temp=input("请输入一个你想知道的年份:")
year=int(temp)
aaa=year/400
if type(aaa)==int:
print(temp+"年,"+"这一年是闰年")
感觉这行代码奇奇怪怪:
if type(aaa)==int:
不知道为什么==后边的填int或者<class 'int'>都不能达到理想目的呢?
感谢各位鱼油大哥拜托了{:9_221:} 本帖最后由 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+"年,"+"这一年是闰年")
Twilight6 发表于 2020-7-1 21:37
Python 中的除法返回的都是 float 浮点型哈
sorry,这个知识点忘了 除法运算最后结果都是浮点数,所以用数据类型判断是行不通的,可以用取余%,余数为0就是能整除。 hrp 发表于 2020-7-1 21:40
除法运算最后结果都是浮点数,所以用数据类型判断是行不通的,可以用取余%,余数为0就是能整除。
谢谢鱼油大哥
页:
[1]