有人能告诉我为什么这个while循环在python中工作吗?

2024-05-18 05:12:34 发布

您现在位置:Python中文网/ 问答频道 /正文

sum, Nr = 0, 12
i = Nr
while i:
    sum += i
    i -= 1
print ('The sum of all natural numbers up to (and inclusive of) ' + repr(Nr) +
' is ' + repr(sum))

所以这是Python3中一个非常简单的while循环,它返回“所有自然数之和(包括)12是78”,正如预期的那样。你知道吗

我困惑的是,为什么当“I”不受任何比较运算符的约束时,“while I:”条件在这里起作用。你知道吗

谢谢!你知道吗


Tags: andofthetoisinclusiveallnatural
3条回答

在条件语句中,输入隐式转换为boolean,因此循环等价于

while bool(i):
    ...

bool(i)True只要i != 0,而False如果i == 0,那么循环一直到i变为零。你知道吗

While需要表达式,如果是true则运行循环。你知道吗

while_stmt ::= "while" expression ":" suite ["else" ":" suite]

In [38]: bool(Nr)
Out[38]: True

while循环需要任何条件TrueFalse。当您写入while i(假设i = 5)时,它被计算为True,因此循环继续,但当它遇到i=0时,它被计算为False,循环中断。你知道吗

相关问题 更多 >