while循环后面直接跟变量名字,但不跟任何比较运算符表示什么含义?
求问一下while后直接跟变量的名字,表示的循环条件是什么?
例如
def func1(dec):
while dec:
在某期的课后作业发现的,不知道这样写代表这个while循环的判断条件是什么? dec不是空的,包括空字符串列表等等 whiledec 是个缩写,表示dec不为空,不为假,不为零的时候,while循环一直循环。 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:37 编辑
这里就看这个 while 循环条件的变量值,或者 while 循环条件这个函数的调用结果的 布尔类型值是什么,就作为 while 循环条件的结果
你要知道在 Python 中,只要是非0、非None、非空字符串、非空字典、非空列表、非空元组等,都可以视为布尔类型值的 True
只要是0、None、空字符串、空字典、空列表、空元组都可以视为布尔类型值的 False
所以这里 while 循环的条件判断是看你变量的值,该值的 布尔类型值是什么,即作为 while 循环的条件
页:
[1]