鱼C论坛

 找回密码
 立即注册
查看: 927|回复: 6

[已解决]新人

[复制链接]
发表于 2020-6-12 18:02:31 | 显示全部楼层 |阅读模式

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

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

x
year = input('请输入一个年份:')
while not year.isdigit():
    year = input("抱歉,您的输入有误,请输入一个整数:")
time =5
while time>0:
    year = input('请输入一个年份:')
    year = int(year)
    if year % 400 == 0:
        print(year, "是世纪闰年!")
    else:
        if year % 4 == 0 and year % 100 != 0:
            print(year, "是闰年!")
        else:
            print(year, "不是闰年!")
    time=time-1  




请问为什么第一次输入没结果,后面开始才有结果
最佳答案
2020-6-12 23:22:36
加油吧猪大帅 发表于 2020-6-12 23:16
大大,如果回答的次数跟设置的次数一样,该怎么改?



print 设置默认参数,end = '' 让他不换行,把 input 写在循环里就好了
  1. time =5
  2. print('请输入一个年份:',end='')
  3. while time>0:
  4.     year = input()
  5.     while not year.isdigit():
  6.         year = input("抱歉,您的输入有误,请输入一个整数:")
  7.     year = int(year)
  8.     time=time-1
  9.     if year % 400 == 0:
  10.         print(year, "是世纪闰年!")
  11.     else:
  12.         if year % 4 == 0 and year % 100 != 0:
  13.             print(year, "是闰年!")
  14.         else:
  15.             print(year, "不是闰年!")
  16.     if time != 0:
  17.         print('请输入一个年份:',end='')
  18.     else:
  19.         print('你的所有查询次数用完了!')
复制代码
微信图片_20200612180124.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-12 18:09:39 | 显示全部楼层
本帖最后由 Twilight6 于 2020-6-12 18:11 编辑

因为你第一段代码就是:
  1. year = input('请输入一个年份:')
复制代码

而直到循环里也没有进行判断 所以就没有结果,把第二个while 循环的 input 和 int 那两段代码移动到循环最后即可

但是要记住  你外面输入了一次  所以虽然你 time = 5 但是实际上你有 6 次机会
  1. year = input('请输入一个年份:')
  2. while not year.isdigit():
  3.     year = input("抱歉,您的输入有误,请输入一个整数:")
  4. year =int(year)
  5. time =5
  6. while time>0:
  7.     if year % 400 == 0:
  8.         print(year, "是世纪闰年!")
  9.     else:
  10.         if year % 4 == 0 and year % 100 != 0:
  11.             print(year, "是闰年!")
  12.         else:
  13.             print(year, "不是闰年!")
  14.     year = input('请输入一个年份:')
  15.     while not year.isdigit():
  16.         year = input("抱歉,您的输入有误,请输入一个整数:")
  17.     year = int(year)
  18.     time=time-1
复制代码



小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-12 18:09:47 From FishC Mobile | 显示全部楼层
你的第一句是最先的imput 而第二句是 while裡面的input
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-12 18:10:58 From FishC Mobile | 显示全部楼层
你要在while前檢測是否閏年 如果不是 或者有誤 才while 如果是的話就不要執行while裡面的語句
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-12 23:16:53 | 显示全部楼层
Twilight6 发表于 2020-6-12 18:09
因为你第一段代码就是:

而直到循环里也没有进行判断 所以就没有结果,把第二个while 循环的 input 和 i ...

大大,如果回答的次数跟设置的次数一样,该怎么改?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-12 23:19:20 | 显示全部楼层
wuguiyou888 发表于 2020-6-12 18:10
你要在while前檢測是否閏年 如果不是 或者有誤 才while 如果是的話就不要執行while裡面的語句

不是很懂...有没命令
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-12 23:22:36 | 显示全部楼层    本楼为最佳答案   
加油吧猪大帅 发表于 2020-6-12 23:16
大大,如果回答的次数跟设置的次数一样,该怎么改?



print 设置默认参数,end = '' 让他不换行,把 input 写在循环里就好了
  1. time =5
  2. print('请输入一个年份:',end='')
  3. while time>0:
  4.     year = input()
  5.     while not year.isdigit():
  6.         year = input("抱歉,您的输入有误,请输入一个整数:")
  7.     year = int(year)
  8.     time=time-1
  9.     if year % 400 == 0:
  10.         print(year, "是世纪闰年!")
  11.     else:
  12.         if year % 4 == 0 and year % 100 != 0:
  13.             print(year, "是闰年!")
  14.         else:
  15.             print(year, "不是闰年!")
  16.     if time != 0:
  17.         print('请输入一个年份:',end='')
  18.     else:
  19.         print('你的所有查询次数用完了!')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-21 19:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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