Python 有人能解释一下带多个条件的while循环是如何工作的吗
有人能解释一下While循环是如何工作的,这段代码是如何最终得到结果的:3和1,4和0。怎样谢谢Python 有人能解释一下带多个条件的while循环是如何工作的吗,python,while-loop,Python,While Loop,有人能解释一下While循环是如何工作的,这段代码是如何最终得到结果的:3和1,4和0。怎样谢谢 i = 2 j = 2 while i < 4 or j > 2: i += 1 j -= 1 print(i, j) 在第一次迭代中,i==2,j==2。条件i2为假。当您将条件与或组合时,如果其中一个条件为真,则为真,因此组合的条件为真,我们进入循环体 然后它将i加1,j减去1,并打印新值31 在下一次迭代中,i2仍然为假。因为其中一个是真的,或者条件是真
i = 2
j = 2
while i < 4 or j > 2:
i += 1
j -= 1
print(i, j)
在第一次迭代中,i==2,j==2。条件i<4为真,而j>2为假。当您将条件与或组合时,如果其中一个条件为真,则为真,因此组合的条件为真,我们进入循环体
然后它将i加1,j减去1,并打印新值31
在下一次迭代中,i<4仍然为真,j>2仍然为假。因为其中一个是真的,或者条件是真的,所以我们进入循环体
然后递增i,递减j,并打印新值4 0
在下一次迭代中,i<4为假,j>2为假。由于这两个条件都为假,or条件也为假。因此循环停止。在第一次迭代中,i==2,j==2。条件i<4为真,而j>2为假。当您将条件与或组合时,如果其中一个条件为真,则为真,因此组合的条件为真,我们进入循环体
然后它将i加1,j减去1,并打印新值31
在下一次迭代中,i<4仍然为真,j>2仍然为假。因为其中一个是真的,或者条件是真的,所以我们进入循环体
然后递增i,递减j,并打印新值4 0
在下一次迭代中,i<4为假,j>2为假。由于这两个条件都为假,or条件也为假。因此循环停止。似乎您需要一个包含调试器的适当IDE。这样,您就可以逐行检查代码,并查看每个变量发生了什么。我建议。他们有免费的社区版
Line number value of i value of j i < 4 j > 2 or of these
Program start -/- -/- -/-
Line 1 2 0 -/-
Line 2 2 2 -/-
Line 4 2 2 True False True
Line 5 3 2 -/-
Line 6 3 1 -/-
Line 7 ^print ^print
Line 4 3 1 True False True
Line 5 4 1 -/-
Line 6 4 0 -/-
Line 7 ^print ^print
Line 4 4 0 False False False
End of program ^jump out of while loop
似乎您需要一个包含调试器的适当IDE。这样,您就可以逐行检查代码,并查看每个变量发生了什么。我建议。他们有免费的社区版
Line number value of i value of j i < 4 j > 2 or of these
Program start -/- -/- -/-
Line 1 2 0 -/-
Line 2 2 2 -/-
Line 4 2 2 True False True
Line 5 3 2 -/-
Line 6 3 1 -/-
Line 7 ^print ^print
Line 4 3 1 True False True
Line 5 4 1 -/-
Line 6 4 0 -/-
Line 7 ^print ^print
Line 4 4 0 False False False
End of program ^jump out of while loop
如果希望先看到“2 2”,则必须将打印语句放在算术运算之前。正如您正式要求的那样,循环将应用这些操作,直到'or'的任何一个子句都不为真,每次在进入下一步之前都会打印结果。如果您希望先看到“2 2”,则必须将打印语句放在算术运算之前。正如您正式要求的那样,循环将应用这些操作,直到'or'的任何一个子句都不为真,每次都会在进入下一步之前打印结果。我穿着睡衣在家,所以我没有工具来检查它,我对理论也太累了,但这里躺着一个毛茸茸的大怪物: 它们都给出了与op相同的结果
i = j = 2
while i < (4 or j) > 2:
i += 1
j -= 1
print(i, j)
print('-'*5)
i = j = 2
while i < (4 or j > 2):
i += 1
j -= 1
print(i, j)
print('-'*5)
i = j = 2
while (i < 4) or (j > 2): # Prefered way of doing things...
i += 1
j -= 1
print(i, j)
那么i<4或j>2是如何工作的呢?
比较运算符具有优先级,并且从左到右。i<4,j>2先完成
然后应用逻辑运算符or。
看:不要相信你在网上读到的东西
现在又有一个毛茸茸的大怪物:
使用or运算时,我们是否在左操作数为真时处理右操作数?看起来不像。。。但我没有工具来检查它是否与简单值而不是函数的行为相同
def print_and_return(mah_var):
print(mah_var)
return mah_var
value = print_and_return(False) or print_and_return(True)
print('mah value!', value)
print('-'*5)
# Here, the right operand is ignored !
value = print_and_return(True) or print_and_return(False)
print('mah value!', value)
print('-'*5)
# Here, the comparison operand is ignored !
value = print_and_return(True) or print_and_return(True) > print_and_return(True)
print('mah value!', value)
输出:
3 1
4 0
3 1
4 0
-----
3 1
4 0
-----
3 1
4 0
False
True
mah value! True
-----
True
mah value! True
-----
True
mah value! True
因此,首先处理i<4。然后处理or,如果为真,则返回左操作数值,否则返回右操作数值触发i>2的处理。我穿着睡衣在家,所以我没有工具来检查它,我对理论太累了,但这里躺着一个毛茸茸的大怪物: 它们都给出了与op相同的结果
i = j = 2
while i < (4 or j) > 2:
i += 1
j -= 1
print(i, j)
print('-'*5)
i = j = 2
while i < (4 or j > 2):
i += 1
j -= 1
print(i, j)
print('-'*5)
i = j = 2
while (i < 4) or (j > 2): # Prefered way of doing things...
i += 1
j -= 1
print(i, j)
那么i<4或j>2是如何工作的呢?
比较运算符具有优先级,并且从左到右。i<4,j>2先完成
然后应用逻辑运算符or。
看:不要相信你在网上读到的东西
现在又有一个毛茸茸的大怪物:
使用or运算时,我们是否在左操作数为真时处理右操作数?看起来不像。。。但我没有工具来检查它是否与简单值而不是函数的行为相同
def print_and_return(mah_var):
print(mah_var)
return mah_var
value = print_and_return(False) or print_and_return(True)
print('mah value!', value)
print('-'*5)
# Here, the right operand is ignored !
value = print_and_return(True) or print_and_return(False)
print('mah value!', value)
print('-'*5)
# Here, the comparison operand is ignored !
value = print_and_return(True) or print_and_return(True) > print_and_return(True)
print('mah value!', value)
输出:
3 1
4 0
3 1
4 0
-----
3 1
4 0
-----
3 1
4 0
False
True
mah value! True
-----
True
mah value! True
-----
True
mah value! True
因此,首先处理i<4。然后处理or,如果为真,则返回左操作数值,否则返回右操作数值将触发i>2的处理。在需要了解的情况下对其进行可视化,只有一个条件。条件是一个布尔表达式。你是在问这个布尔表达式是怎么工作的吗?对于这个简单的程序,你可以用笔和纸逐行检查它。记住或写下哪些值有i和j,while条件中的变量是如何检查的,以及它们是如何变化的。条件是一个布尔表达式。你是在问布尔表达式是如何工作的吗?对于这个简单的程序 你可以用笔和纸一行一行地看一遍。只要记住或写下i和j的值,while条件下变量是如何检查的,以及它们是如何变化的。