185253426 发表于 2020-9-7 07:12:24

while循环后面直接跟变量名字,但不跟任何比较运算符表示什么含义?

求问一下
while后直接跟变量的名字,表示的循环条件是什么?
例如
def func1(dec):
       while dec:
在某期的课后作业发现的,不知道这样写代表这个while循环的判断条件是什么?

挥舞乾坤 发表于 2020-9-7 07:17:44

dec不是空的,包括空字符串列表等等

heidern0612 发表于 2020-9-7 07:40:00

whiledec 是个缩写,表示dec不为空,不为假,不为零的时候,while循环一直循环。

kogawananari 发表于 2020-9-7 08:35:16

while obj:

等价于
while bool(obj)
等价于
【如果__bool__定义了】while obj.__bool__()
【如果__bool__没有定义】whileTrue and obj.__len__()
【如果__len__和__bool__都没有定义】while True

if while and or not 都可以触发: 隐式布尔推断

Twilight6 发表于 2020-9-7 09:36:47

本帖最后由 Twilight6 于 2020-9-7 09:37 编辑



这里就看这个 while 循环条件的变量值,或者 while 循环条件这个函数的调用结果的 布尔类型值是什么,就作为 while 循环条件的结果

你要知道在 Python 中,只要是非0、非None、非空字符串、非空字典、非空列表、非空元组等,都可以视为布尔类型值的 True

只要是0、None、空字符串、空字典、空列表、空元组都可以视为布尔类型值的 False

所以这里 while 循环的条件判断是看你变量的值,该值的 布尔类型值是什么,即作为 while 循环的条件
页: [1]
查看完整版本: while循环后面直接跟变量名字,但不跟任何比较运算符表示什么含义?