【发布时间】:2020-04-16 02:12:47
【问题描述】:
运行 while 循环,直到所有三个值都小于或等于 0。每次更改三个变量的值时,都在同一行打印出它们的新值,并用单个空格分隔。例如,如果它们的值分别为 3、4 和 5,您的代码将打印:
2 3 4
1 2 3
0 1 2
-1 0 1
-2 -1 0
我的代码是:
while (mystery_int_1 and mystery_int_2 and mystery_int_3) >= 0:
mystery_int_1 -= 1
mystery_int_2 -= 1
mystery_int_3 -= 1
print(mystery_int_1, mystery_int_2, mystery_int_3)
它产生:
2 3 4
1 2 3
0 1 2
-1 0 1
-2 -1 0
-3 -2 -1
我知道答案会让我觉得自己像个白痴,但我想不通
【问题讨论】:
-
您的语法没有按照您的想法执行。将
while测试更改为while mystery_int_1 >= 0 and mystery_int_2 >= 0 and mystery_int_3 >= 0:您现在所要做的是检查所有三个值是否非零,然后比较该结果(如果有的话,这将是第一个0 值,否则最后一个(非零)值)为 0。根本不是你想要的。 -
例如,试试这个:
(-1 and 1) >= 0。它将是True,因为它在比较中使用最后一个非零值1。但是-1 >= 0 and 1 >= 0将是False,这就是你想要的。 -
我将其更改为 while 神秘_int_1 >= 0 和神秘_int_2 >= 0 和神秘_int_3 >= 0:现在它提前停止 1 行而不是太迟停止 1 行。
标签: python while-loop