Python:要求更多的数字输入并将其总和

时间:2015-10-13 11:35:24

标签: python loops python-3.x

number=int(input("Number: "))

sum = 0

while number:
    sum = sum + number % 10
    number /= 10

print(sum)

好的,所以我试图了解这段代码实际上做了什么。我想知道它是否循环26次。有人可以用语言输入这个,因为我有一个阅读障碍,我正在尝试理解Python。

  

我实际上是在尝试向用户询问两位数字,然后   想要从中得到一笔钱。 23将是2 + 3,等于5

代码确实有效,但我不明白。先感谢您! :)

3 个答案:

答案 0 :(得分:1)

如果您想要询问用户两位数字并添加数字,您可以进行一些错误检查......

number = input("Number: ")
if not (number.isdigit() and len(number) == 2):
    # invalid input -- handle it

tens, ones = number  # unpacking is magic!
tens = int(tens)
ones = int(ones)
# this could also be: tens, ones = map(int, number)

print(tens + ones)

就个人而言,我宁愿将个别数字作为字符串处理,而不是尝试数学。如果您更喜欢使用数学,那就是:

number = int(number)
tens, ones = ((number - (number % 10)) % 100)//10, number % 10

答案 1 :(得分:0)

while number:

将循环,直到数字等于0.

sum = sum + number % 10

将为您的总和添加您的号码的最后一位数字 (即:23%10 = 3,因为23 = 2 * 10 + 3)

因此,以你的23岁为例,你将拥有:

第一次迭代:

sum = 0 + 3
number = 23 /10 = 2

第二次迭代:

sum = 3 + 2
number = 2 / 10 = 0

number = 0所以它会停止。

答案 2 :(得分:0)

python 3 中,您的代码将是:

number=int(input("Number: "))

sum = 0

while number:
    sum = sum + number % 10
    number //= 10

print(sum)

让我们得到一个输入:

Number: 23

第1步:

> sum = 0 `while number` is true because number=26 
> then `sum = sum + number%10` means 
> sum = 0 + 3 (3 from 23%10)
> so, sum = 3 then 
> number = 2 (number//10)

第2步:

> sum = 3 `while number` is true because number=2 
> then `sum = sum + number%10` means
> sum = 3 + 2 (2 from 2%10)
> so, sum = 5 then 
> number = 0 (2//10)

第3步:

`while number` is false because number=0

然后while loop将被终止,总和将是:

sum = 5