为什么在Python的while条件中不允许进行复杂的算术运算

时间:2018-07-17 09:15:44

标签: python

此函数查找数字中的位数

def getNumOfDigits(i):
    num = i
    count = 1
    num = num // 10
    while num != 0:
        count += 1
        num //= 10
    return count

如果我尝试修改while条件以将num除以10并检查它是否不等于0,则会引发语法错误。为什么在python中会这样?

def getNumOfDigits(i):
num = i
count = 1
while (num //= 10)!= 0:
    count += 1
return count

1 个答案:

答案 0 :(得分:5)

诸如num //= 10之类的赋值是一个语句,不能成为表达式的一部分。

  

为什么在python中会这样?

最近决定在某些情况下允许在表达式中使用赋值,这引起了巨大的争议,有关更多信息,请参见this article