我正在阅读一本书,并且我已被指示制作一个程序,该程序从用户读取一个四位数字,然后在四位数字相加时返回该值,
例如:3141:3 + 1 + 4 + 1 = 9
。 我该如何拆分并对数字进行排序?
答案 0 :(得分:1)
一种方法是将 int转换为字符串并将其拆分并使用sum
<强>实施例强>
n = 3141
print(sum([int(i) for i in str(n)])) #list comprehension
print(sum(map(int, list(str(n))))) #using map
<强>输出:强>
9
答案 1 :(得分:1)
不使用str()
/ int()
转化来回转前进并迭代各个数字:
def sum_digits(number):
if number < 10:
return number
return number % 10 + sum_digits(number // 10)
print(sum_digits(3141)) # 9
也应该快得多。
答案 2 :(得分:0)
当用户输入数字时,您可以获得string
。可以使用list
将此字符串拖入split(separator)
。
示例:
digits = 1234
list_digit = digits.split("") //I lived blank the separator as there is no character between each value we need.
print list_digit
它将返回list_digit = ['1','2','3','4'];
由此,您只需使用for
循环遍历列表的所有值。
total = 0
for digit in list_digit:
print digit
total = total+int(digit) //Note the convertion from string to int to avoid any error.
print total
这不是可能的短,但它会做的事情