我放弃了如何弄清楚如何向后打印数字为它做了一个功能,但我还是不太明白它是如何工作的。例如,为什么它向后打印数字而不是按顺序打印?
def print_digits(n):
"""
>>> print_digits(13789)
9 8 7 3 1
>>> print_digits(39874613)
3 1 6 4 7 8 9 3
>>> print_digits(213141)
1 4 1 3 1 2
"""
while n > 0:
print n % 10
n = n / 10
我很感激从while循环开始逐行解释。我已经尝试过在头脑和纸上进行追踪,但却无法掌握功能中的代码。
答案 0 :(得分:1)
在循环的第一行中,'%'运算符将给定的数字除以10并仅返回其余数字,表示除法的分数(25:10 = 2.5,因此它仅返回5!)。
该行' n / 10'然后完全反过来将逗号左边的部分存储到变量本身,就像' /' operator 仅返回逗号的左侧部分。
简而言之,你可以说:
答案 1 :(得分:0)
%运算符返回除法的余数。 (20%3 = 2,24%5 = 4)。 当你将数字除以10时,余数总是最后一位数。 例如123/10 = 12&余数是3.所以123%10 = 3。 在while循环内部,当n大于0时,将打印n的最后一位。
由于线n = n / 10,n变为n / 10。这里使用了整数除法,因此最终n的值将变为0,然后循环将停止。(如果n最初为123,则n的值将更改为123,12,1,0然后循环将停止。)