我在试着理解海象作业操作员。
当条件在循环中被重新分配为False时,经典的while循环会中断。
x = True
while x:
print('hello')
x = False为什么这不能用海象操作员呢?它忽略了产生无限循环的x的重分配。
while x := True:
print('hello')
x = False发布于 2020-12-30 22:54:41
您似乎有这样的印象:在输入循环之前,赋值只发生一次,但事实并非如此。重新分配会在检查条件之前进行,并且在每次迭代中都会发生。
x := True将始终为true,而不考虑任何其他代码,这意味着条件将始终计算为true。
发布于 2021-09-28 23:00:44
假设我们有一个代码:
>>> a = 'suhail'
>>> while len(a) < 10:
... print(f"too small {len(a)} elements expected at least 10")
... a += '1'赋值表达式有助于避免两次调用len:
>>> a = 'suhail'
>>> while (n := len(a)) < 10:
... print(f"too small {n} elements expected at least 10")
... a += '1'
...
too small 6 elements expected at least 10
too small 7 elements expected at least 10
too small 8 elements expected at least 10
too small 9 elements expected at least 10https://stackoverflow.com/questions/65514544
复制相似问题