number=int(input("Number: "))
sum = 0
while number:
sum = sum + number % 10
number /= 10
print(sum)
好的,所以我试图了解这段代码实际上做了什么。我想知道它是否循环26次。有人可以用语言输入这个,因为我有一个阅读障碍,我正在尝试理解Python。
我实际上是在尝试向用户询问两位数字,然后 想要从中得到一笔钱。 23将是2 + 3,等于5
代码确实有效,但我不明白。先感谢您! :)
答案 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