选项中会无限循环的是:
C.while 1:
✅ 解析:
- A.
while 0:→0是假值(False),循环体不执行,不会进入循环,更不会无限循环。 - B.
while False:→ 条件恒为假,循环体不执行,不会进入循环。 - C.
while 1:→1是真值(True),条件恒为真,无break或退出机制时会无限循环。 - D.
for i in range(5):→ 明确迭代5次(i = 0,1,2,3,4),有限循环,不会无限。
因此,正确答案是:C
# 示例:C 会导致无限循环(除非内部有 break)while1:print("Hello")# 永远打印,除非手动中断(Ctrl+C)或加 break在 Python 中,以下值在布尔上下文中被视为False(即调用bool(x)返回False),其余绝大多数值均为True:
✅明确为假(Falsy)的值有且仅有以下 7 种(来自 Python 官方文档):
NoneFalse(布尔类型本身)- 所有数值类型的零值:
0(int)0.0(float)0j(complex)
- 空序列/集合:
''(空字符串)()(空元组)[](空列表){}(空字典)set()(空集合)range(0)(空 range 对象)
- 其他自定义对象若实现了
__bool__()方法并返回False,或未实现__bool__()但实现了__len__()且len(obj) == 0,也视为False
⚠️ 注意:
0.000,-0,0.0+0.0j等仍属于零值,均为False。'False'(字符串)、[0]、{0: 0}、True等都是True—— 字符串非空即真,容器非空即真,与内容语义无关。
# 示例验证falsy_values=[None,False,0,0.0,0j,'',(),[],{},set(),range(0)]print([bool(x)forxinfalsy_values])# 全为 [False, False, False, ..., False]# 这些看似“假”但实际为 True:print(bool('False'))# True(非空字符串)print(bool([0]))# True(非空列表)print(bool({}))# False(空字典)✅,但 bool({'a':1}) → True