【问题标题】:How can I create a loop with my conditions如何根据我的条件创建循环
【发布时间】:2023-01-19 15:09:42
【问题描述】:

我正在寻求帮助。我们需要编写一个程序来打印 (n -20,n + 20) 范围内的所有数字。此外,程序会事先要求您输入一个数字。如果该数字不是偶数或 10 的倍数,则需要再次猜测。只有当数字是偶数并且是 10 的倍数时,程序才会打印上述范围。我为此苦苦挣扎。

我想出了这个解决方案:

    i = int(input("please enter a number: "))
    while (i % 10 == 0) and ((i % 2) == 0):
        x = 20
        while (x >= 0):
            print(i - x)
            x = x - 1
        break

但它只会打印 n-20 而不是 +20 的范围,并且如果您输入了错误的数字,它也不会再次询问您。

我知道也有可能在 range() 中使用 for I 但我现在不知所措。

谢谢!

【问题讨论】:

  • 10 的倍数都是偶数。你的条件之一是多余的。

标签: python python-3.x loops


【解决方案1】:

你可以简单地做:

while True:
  i = int(input("please enter a number: "))
  if i % 10 == 0:
       for x in range(i-20,i+21):
           print(x)
       break

它会一直询问直到它满足条件。

【讨论】:

  • 谢谢!我当时想出了那个。 while True: print("Welcome at my guessing game.") i = int(input("Please enter a number: ")) if i % 10 == 0 and i % 2 == 0: continue //.在我们的教师示例中,continue 会将我们带回到循环的开头。之后我想定义范围或至少尝试一下。在您的情况下,为什么它会一直询问直到满足条件?
  • 您可以根据需要进行更改,我已经输入了while True:,这样它会一直询问,直到遇到可以被 10 整除的数字。如果满足条件;它会通过 if 条件并进入 for 循环;一旦打印了所有整数;它会脱离循环。
【解决方案2】:

最好使用range,比如:

x = 20
for number in range(i - x, i + x + 1):
    print(number)

注意:range(1, 5) 创建了一个生成器,生成数字 1 到 4,不包括 5。因此是 i + 20 + 1

【讨论】:

    【解决方案3】:

    困难的做法:你想从i-20开始,所以:

    n = i - 20
    

    然后转到i+20,所以:

    while n < i+20:
        print(n)
        n += 1
    

    就是这样。

    或者,简单的方法,也就是使用范围的一个班轮

    print(range(i-20, i+20), sep="
    ")
    

    从...开始

    i = 1
    while not (i % 10 == 0):
        i = int(input("please enter a number: "))
    

    继续询问,直到输入有效输入并解决问题。

    【讨论】:

      猜你喜欢
      • 2021-07-25
      • 1970-01-01
      • 1970-01-01
      • 2022-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-03
      相关资源
      最近更新 更多