此函数查找数字中的位数
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
答案 0 :(得分:5)
诸如num //= 10
之类的赋值是一个语句,不能成为表达式的一部分。
为什么在python中会这样?
最近决定在某些情况下允许在表达式中使用赋值,这引起了巨大的争议,有关更多信息,请参见this article。