如何根据我的条件创建循环

How can I create a loop with my conditions

我正在寻求帮助。我们需要编写一个程序来打印 (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,但我现在不知所措。

谢谢!

你可以简单地做:

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

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

最好使用 range,例如:

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

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

难度较大:您想从 i-20 开始,所以:

n = i - 20

然后转到 i+20,所以:

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

应有尽有。

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

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

开始于

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

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