将字符串变成整数后用isinstance测试得到的结果是false
o=input("输入年份:")n = int(o)
if isinstance(n/4,int):
print("闰年")
输入数字2000得到的结果是false.
请问这是咋回事 n/4永远不是整数 假设n为16:
16 / 4 = 4.0, 而不是4
老老实实用取余吧 o = int(input("输入年份:"))
for n in range (2,o):
if o % n == 0:
print("是闰年")
break
else:
print("不是闰年")
这样应该就可以了 判断能否能整除,用取余是最佳方案:
o=input("输入年份:")
n = int(o)
if n%4==0:
print("闰年")
代码没问题了,但是闰年可不只有被4整除一项,还有不是100的倍数,但400的倍数可以,所以应该是这样判断:
o=input("输入年份:")
n = int(o)
if n%4==0 and n%100!=0 or n%400==0:
print("闰年")
else:
print("非闰年") Python 的除法运算返回值永远不可能为整数:
>>> 4 / 2
2.0
>>> 8 / 3
2.6666666666666665
>>> 12 / 12
1.0
建议还是用取余运算:
o = input("输入年份:")
n = int(o)
if n % 4 == 0: # 如果除以 4 能除尽
print("闰年")
页:
[1]