由于我是一名全面的编程新手,我需要您就在线课程中需要完成的编码练习提出建议。
以下是指示:
mystery_int_1 = 3
mystery_int_2 = 4
mystery_int_3 = 5
(这些将在我提交代码后更改,因此它只是一个示例)
以上是三个值。运行while循环,直到所有三个值都小于或等于0.每次更改三个变量的值时,都要在同一行上打印出新值,用单个空格分隔。例如,如果它们的值分别为3,4和5,则代码将打印:
2 3 4
1 2 3
0 1 2
-1 0 1
-2 -1 0
我试着这样写:
while not mystery_int_1 <= 0 and not mystery_int_2 <= 0 and not 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)
运行代码后,我意识到它有问题,但我无法弄清楚如何修改它。尝试了很多选择,但它们都没有像预期的那样工作......
提前谢谢大家!
答案 0 :(得分:3)
您的循环当前循环,直到任何的数字小于或等于零。大声说出来,你的循环是“当mystery_int_1不小于或等于零且 mystery_int_2不小于或等于零和 ...”,因此,如果 小于或等于零,则循环停止。
你想要这个:
while not (mystery_int_1 <= 0 and mystery_int_2 <= 0 and mystery_int_3 <= 0):
或者这个:
while mystery_int_1 > 0 or mystery_int_2 > 0 or mystery_int_3 > 0:
或者可能这样,虽然我发现这个版本最令人困惑。 (也就是说,它与你已经拥有的最接近。)
while not mystery_int_1 <= 0 or not mystery_int_2 <= 0 or not mystery_int_3 <= 0:
答案 1 :(得分:0)
试试这个 -
while not mystery_int_1 <= 0 or not mystery_int_2 <= 0 or not mystery_int_3 <= 0:
mystery_int_1 -= 1
mystery_int_2 -= 1
mystery_int_3 -= 1
print("{} {} {}".format(mystery_int_1, mystery_int_2, mystery_int_3))
答案 2 :(得分:0)
你的条件while not mystery_int_1 <= 0 and not mystery_int_2 <= 0 and not mystery_int_3 <= 0
说的是循环,而所有这些条件都是真的(因为和使用过。):
当其中一个数字低于0时,一个条件变为false,但循环条件要求所有这些条件为真,因此它会停止执行。您可能希望将and
替换为or
。因此,循环继续,直到其中一个变量仍大于0。
答案 3 :(得分:0)
打开python解释器并尝试以下操作,
假设我有一个值为2
>>> number = 2
>>> number-=1 #2-1=1
>>> number
1
现在让我们检查数字是否> = 0
>>> number>=0
True
是的!是真的。因为数字大于0. 这就是你应该做的。检查数字是否> = 0。但相反你正在做,
>>> not number<=0
False
意味着你正在做与你应该做的完全相反的事情,
>>> number-=2
>>> number
-1 #now number has become -1
>>> number>=0
False
>>> not number<=0
True
因此,通过添加额外的not
,您只需要执行与您想要的完全相反的操作。所以在你的情况下,这就足够了:
while mystery_int_1 > 0 or mystery_int_2 > 0 or mystery_int_3 > 0:
看看这个:
value=1
value1=2
value2 =3
while value or value2 or value1:
print("looop")
打印infinte times looop
。
value=0
value1=2
value2 =3
while value and value2 and value1:
print("looop")
但是这不会执行,因为一个值是0
。在python中,您不必检查是否value>=0
。当值为0
时,其本身被认为是假的。所以你可以这样做:
while mystery_int_1 or mystery_int_2 or mystery_int_3:
这里即使一个值为not 0
,即>=0
循环也会运行。只有在其中一个值为0
时才会退出。
以下是完整的代码:
mystery_int_1 = 3
mystery_int_2 = 4
mystery_int_3 = 5
while mystery_int_1 or mystery_int_2 or mystery_int_3:
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
答案 4 :(得分:0)
您可以尝试以下代码:
while not (mystery_int_1<=0 and mystery_int_2 <=0 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)