|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
temp = input("请输入一个年份:")
while not temp.isdigit():
temp = input("输入有错误,请输入一个整数年份:")
while True:
year = int(temp)
if year/400 == int(year/400):
print(temp + " 是闰年!")
else:
if(year/4 == int(year/4)) and (year/100 != int(year/100)):
print(temp + "是闰年!")
else:
print(temp + "不是闰年")
temp = input("请输入一个年份:")
小甲鱼的0基础python教学第五课的课后作业 发现按作业写 写完后程序只能回答一次问题 程序就结束了 我就自己加了两句话 希望程序能够循环回答问题
结果出现一个BUG 情况是 第一次回答你的问题 不管你输 有小数的数字还是整数 都可以正常提示 或者进入循环正常回答 并等待第二次回答
但是当第一次提问回答过以后 第二次输入有小数点的数字(比如1.1) 就提示
Traceback (most recent call last):
File "F:/Python/自我练习/检测是否为闰年.py", line 6, in <module>
year = int(temp)
ValueError: invalid literal for int() with base 10: '1.1
如果输入整数 就可以一直循环回答下去
请问为什么会出现这样的问题 怎么样让其在第二次 或者以后回答问题时 不是整数时提醒输入整数
因为你的代码中,获取输入年份以及验证输入是否正确的语句并不在while的循环内
改成这样就完美了
- while True:
- temp = input("请输入一个年份:")
- while not temp.isdigit():
- temp = input("输入有错误,请输入一个整数年份:")
- year = int(temp)
- if year/400 == int(year/400):
- print(temp + " 是闰年!")
- else:
- if(year/4 == int(year/4)) and (year/100 != int(year/100)):
- print(temp + "是闰年!")
- else:
- print(temp + "不是闰年")
复制代码
|
|