【问题标题】:Fixing While Loops Python修复 While 循环 Python
【发布时间】:2022-06-15 23:58:17
【问题描述】:
  1. 我们想要创建一个程序,提示用户输入一个介于 1 和 10 之间的数字。只要数字超出范围,程序就会重新提示用户输入有效数字。完成以下步骤来编写此代码。

a.编写一行代码,提示用户输入 1 到 10 之间的数字。

number = float(input("Enter a number between 1 and 10: "))

b.编写一个布尔表达式,测试用户在步骤“a”中输入的数字。判断它是否不在范围内。

x = (number > 10 or number < 1)

c. 使用在步骤 b 中创建的布尔表达式编写一个 while 循环,当用户输入超出范围时执行该循环。循环的主体应该告诉用户他们输入了一个无效的数字,并再次提示他们输入一个有效的数字。

while x == True:
    print("you printed an invalid number")
    number = float(input("please enter the number again, this time between 1 and 10"))

d.编写代码,打印一条消息,告诉用户他们输入了一个有效数字。

if x == False:
    print("wow, you printed a number between 1 and 10!")

我回答了问题的内容,但我的问题是,每当用户在第一次尝试时输入错误的数字并在第二次尝试时输入正确的数字时,程序仍将其视为无效输入。我该如何解决这个问题???

【问题讨论】:

  • 你能把你的脚本分享为一个块吗?然后社区可以轻松复制粘贴进行调试。
  • 如果你输入一个新的数字,你需要更新x的值。
  • 如果您只分配给x 一次,那么它就只有一个值。如果你想让x 取一个新值,那么你应该再次分配给它。你的老师写了四个步骤来帮助你编程,而不是因为每个步骤对应于不同的代码“块”。例如,(c) 中的 while 循环可能包含 (a) 和 (b) 的代码。

标签: python


【解决方案1】:

while循环中重写这一行:

x = (number > 10 or number < 1)

原来如此

while x == True:
    print("you printed an invalid number")
    number = float(input("please enter the number again, this time between 1 and 10"))
    x = (number > 10 or number < 1)

这会更改 x 的值,因此它不会停留在 True

【讨论】:

  • 你的意思是我应该将另一个粘贴到那个部分还是放在那个部分?
猜你喜欢
  • 2020-09-15
  • 1970-01-01
  • 2013-09-18
  • 2014-08-29
  • 2012-07-03
  • 1970-01-01
  • 1970-01-01
  • 2014-11-02
  • 1970-01-01
相关资源
最近更新 更多