为什么这是 while 循环的条件?

时间:2021-05-29 00:16:46

标签: python python-3.x while-loop

该函数执行二进制除法。但是,我对循环的条件“while len(b) ≤ len(a) and a”感到困惑。

为什么条件中有“and a”?

“a”不是一个列表吗?那么为什么 len(b) 应该大于那个?

enter image description here

感谢您的帮助! <3

4 个答案:

答案 0 :(得分:1)

在python中,空列表的布尔值为0,因此and a可能会检查列表a是否为空

答案 1 :(得分:1)

这是评估“a”是真还是假。它实际上是在评估“a”的大小或长度。如果“a”有任何值,那么它将评估为真。如果“a”为空,它将评估为 0 或 false。

“a”和“b”的长度都可以是 0,如果“and a”没有被包含并且“a”是空的,那么“if a[0]”表达式会导致越界异常。

基本上,如果“a”为空,则忽略 while 循环。似乎先检查“a”的状态会更简单。

答案 2 :(得分:1)

如何阅读 while 循环

我认为您对 while 循环的阅读方式存在误解。

正如您在代码中所做的那样:

while len(b) <= len(a) and a:

这意味着它有 2 个条件len(b) <= len(a)a。所以不要读作 len(b) <= len(a) and a !

换句话说,这并不意味着 len(b) 必须小于 len(a)a


让我们阅读a

第二个条件 (a) 可能看起来很奇怪,因为在现实生活中这没有任何意义。

<块引用>

但是编程语言不同于现实生活中的句子

说有这些代码:

代码 1

a = []
print(bool(a))

代码 2

a = [1, 2, 3, 3]
print(bool(a))

  • 代码 1 将打印出 False

  • 代码 2 将打印出 True

原因是,在python中当一个变量有值时,它等于True


结论

回到这段代码:

while len(b) <= len(a) and a:

该代码也意味着继续while len(b) <= len(a)a == True

所以 while 循环意味着,len(b) 必须小于 len(a) AND a成为 True(必须有价值)。


我真的希望这对你有帮助:)

答案 3 :(得分:0)

<块引用>

为什么条件中有“and a”?

while 循环检查 2 个条件,首先检查 b 列表的长度小于或等于 a 列表的长度。然后使用 and 语句告诉解释器您要检查第二个条件,在本例中为 a 的内容。 and 只是告诉解释器检查多个条件。