强制类型为整数而不是 python 中的浮点数
Force type to be integer and not float in python
我正在编写一个简单的程序来计算数字的总和。因此,例如 123
将是 1 + 2 + 3 = 6
简单。当我写代码时
def sumOfNumber(number):
sum = 0
while(number >= 1):
temp = number % 10
sum += temp
number /= 10
return sum
main():
sumOfNumber(123)
# 6.53
谁能解释一下?
我最后只是投射了它,但如果有人有更好的解决方案,请也 post。
def sumOfNumber(number):
sum = 0
while(number >= 1):
temp = int(number % 10)
sum += temp
number = int(number / 10)
return sum
main():
sumOfNumber(123)
# 6
您似乎在使用 Python3,其中除法 /
输出浮动。将原位除法 /=
替换为整数除法 //=
以去除小数。
number //= 10
尽管如此,如果您想逐位操作一个数字,最好将其转换为 str
。这允许遍历它的数字并对它们求和。
def sumOfNumber(number):
digits = str(number)
sum_ = 0
for d in digits:
sum_ += int(d)
return sum_
sumOfNumber(123) # 6
使用内置的 sum
函数,您甚至可以在一行中重写此函数。
def sumOfNumber(number):
return sum(int(x) for x in str(number))
我正在编写一个简单的程序来计算数字的总和。因此,例如 123
将是 1 + 2 + 3 = 6
简单。当我写代码时
def sumOfNumber(number):
sum = 0
while(number >= 1):
temp = number % 10
sum += temp
number /= 10
return sum
main():
sumOfNumber(123)
# 6.53
谁能解释一下?
我最后只是投射了它,但如果有人有更好的解决方案,请也 post。
def sumOfNumber(number):
sum = 0
while(number >= 1):
temp = int(number % 10)
sum += temp
number = int(number / 10)
return sum
main():
sumOfNumber(123)
# 6
您似乎在使用 Python3,其中除法 /
输出浮动。将原位除法 /=
替换为整数除法 //=
以去除小数。
number //= 10
尽管如此,如果您想逐位操作一个数字,最好将其转换为 str
。这允许遍历它的数字并对它们求和。
def sumOfNumber(number):
digits = str(number)
sum_ = 0
for d in digits:
sum_ += int(d)
return sum_
sumOfNumber(123) # 6
使用内置的 sum
函数,您甚至可以在一行中重写此函数。
def sumOfNumber(number):
return sum(int(x) for x in str(number))