首页 > 解决方案 > 为什么python的while条件中不允许进行复杂的算术运算

问题描述

此函数查找数字中的位数

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

标签: python

解决方案


诸如num //= 10is 语句的赋值不能是表达式的一部分。

为什么在python中会这样?

最近决定在某些情况下应该允许在表达式中赋值,这引起了巨大的争议,更多信息请参见这篇文章


推荐阅读