闰年输出结果不一致
temp = input('请输入一个年份:')year = int(temp)
while not temp.isdigit():
temp = input('对不起,您的输入有误,请重新输入:')
while year:
if year/400 == int(year/400):
print ('这是闰年')
temp = input('请输入一个年份:')
year = int(temp)
else:
if year/4 == int(year/4) and year/100 != int(year/100):
print ('这是闰年')
else:
print ('这不是闰年')
temp = input('请输入一个年份:')
year = int(temp)
Python 3.7.9 (tags/v3.7.9:13c94747c7, Aug 17 2020, 18:58:18) on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>
============================ RESTART: D:/桌面文件/算闰年.py ===========================
请输入一个年份:-20
对不起,您的输入有误,请重新输入:99
这是闰年
请输入一个年份:99
这不是闰年
请输入一个年份:
我想问一下为什么第一次输入了错误的数据,再次输入同样的年份得出的结果会不一致? temp = input('请输入一个年份:')
year = int(temp)
while not temp.isdigit():
temp = input('对不起,您的输入有误,请重新输入:')
while year:
if year%4==0 and year%100!=0 or year%400==0:
print ('这是闰年')
else:
print ('这不是闰年')
temp = input('请输入一个年份:')
year = int(temp) temp = input('请输入一个年份:')
year = int(temp)
while not temp.isdigit():
temp = input('对不起,您的输入有误,请重新输入:')
while year:
if year/400 == int(year/400):
print ('这是闰年')
temp = input('请输入一个年份:')
year = int(temp)
else:
if year/4 == int(year/4) and year/100 != int(year/100):
print ('这是闰年')
else:
print ('这不是闰年')
temp = input('请输入一个年份:')
year = int(temp)
还是缩进问题,最后两行往前缩进就好了 因为你在第一次,“对不起,您的输入有误,请重新输入:99“时 只给temp赋值,并没有给year赋值,这时候year还是-20,不会等于99 疾风怪盗 发表于 2020-8-29 17:02
还是缩进问题,最后两行往前缩进就好了
我按照你说的改了一下,结果还是一样的呀?{:9_241:} RobbyC 发表于 2020-8-29 17:05
我按照你说的改了一下,结果还是一样的呀?
那就是4楼说的那个问题了吧
因为你的第一个year=int(temp) 写错地方了,应该写在第一个while之后
另外,在第二个while循环中的input直接放到ifelse外面就可以了,不必在if和else中各写一遍
以上这两处帮你修改了
此外判断整除最好使用求余的方式,例如:if year/400 == int(year/400): 可以写成 if year%400 == 0:或者直接写 if not year%400:
这个不算错误,就没有帮你修改。
temp = input('请输入一个年份:')
while not temp.isdigit():
temp = input('对不起,您的输入有误,请重新输入:')
year = int(temp)
while year:
if year/400 == int(year/400):
print ('这是闰年')
else:
if year/4 == int(year/4) and year/100 != int(year/100):
print ('这是闰年')
else:
print ('这不是闰年')
temp = input('请输入一个年份:')
year = int(temp) 学习型motor 发表于 2020-8-29 17:04
因为你在第一次,“对不起,您的输入有误,请重新输入:99“时 只给temp赋值,并没有给year赋值,这时候year ...
啊!懂了,谢谢! 疾风怪盗 发表于 2020-8-29 17:10
那就是4楼说的那个问题了吧
感谢! sunrise085 发表于 2020-8-29 17:12
因为你的第一个year=int(temp) 写错地方了,应该写在第一个while之后
另外,在第二个while循环中的input直 ...
谢谢,我知道了!
页:
[1]