鱼C论坛

 找回密码
 立即注册
查看: 3102|回复: 5

[已解决]请大神修改一下

[复制链接]
发表于 2023-5-21 18:41:17 | 显示全部楼层
你的代码逻辑基本正确,不过有一些小错误。如果我理解你的需求正确,你希望用户先输入一个0到10之间的数字,然后再输入一个两位数。以下是修正后的代码:

  1. for item in range(3):   
  2.     a=int(input('输入一个数字:'))
  3.     if a>=0 and  a<10:
  4.         while True: # 这里我们用一个无限循环来确保用户输入一个两位数
  5.             b=int(input('输入第二个数字:'))
  6.             if b>=10 and  b<100:
  7.                 break
  8.             else:
  9.                 print('请输入10到99之间的数字!!!')
  10.         break # 如果两个数字都输入正确,我们就退出循环
  11.     else:
  12.         print('请输入0到10之间的数字!!!')
复制代码


这里的改动有两点:

1. 你的需求是要求用户输入一个0到10之间的数字,所以我们的条件应该是  a>=0  和  a<10 ,而不是  a>0  和  a<10 。同样的,对于两位数,我们应该检查  b>=10  和  b<100 。

2. 我们在要求用户输入两位数的时候使用了一个新的循环。这样,如果用户输入的不是两位数,我们会再次要求他们输入,直到他们输入正确。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-21 19:11:02 | 显示全部楼层    本楼为最佳答案   
pyhello 发表于 2023-5-21 19:03
你好大神 我是想两次输入的都是一位数,现在的情况是第一次输入一位数 第二次输入两位数的时候,它会重新 ...

我明白你的需求了。对不起,我之前理解错了。你希望如果第一次输入的数字是正确的(即在0-10之间),而第二次输入的数字不正确时,只要求用户重新输入第二个数字,而不是两个数字都要重新输入。

下面是按照你的需求修改后的代码:

  1. for item in range(3):   
  2.     a=int(input('输入第一个数字:'))
  3.     if a>=0 and  a<10:
  4.         for _ in range(3):
  5.             b=int(input('输入第二个数字:'))
  6.             if b>=0 and  b<10:
  7.                 break
  8.             else:
  9.                 print('请输入0到10之间的数字!!!')
  10.         if b>=0 and  b<10:
  11.             break
  12.     else:
  13.         print('请输入0到10之间的数字!!!')
复制代码


在这段代码中,我在检查第一个数字是否正确后增加了一个新的循环来获取和检查第二个数字。如果第二个数字不正确,用户会被提示重新输入第二个数字,而不是两个数字都要重新输入。第二个数字正确后,两个循环都会结束。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-26 10:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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