Python:如何使用递归反转整数

我遇到了一个问题,我必须仅使用递归来反转给定的数字,但问题是当我尝试打印出反转的整数时,例如,如果整数是 1234,它会一次打印部分反转的数字,例如:21、321、4321。我该如何解决这个问题,以便它可以一次性打印 4321?


def reverse_digits(n):

    if n < 10:

        return n

    else:

        reverse = str(n % 10) + str(reverse_digits(n // 10))

        print(reverse)

        return reverse


慕哥9229398
浏览 245回答 2
2回答

翻过高山走不出你

只是根本不让函数打印任何东西,只返回值,调用时可以打印:def reverse_digits(n):&nbsp; &nbsp; if n < 10:&nbsp; &nbsp; &nbsp; &nbsp; return n&nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; reverse = str(n % 10) + str(reverse_digits(n // 10))&nbsp; &nbsp; &nbsp; &nbsp; return reverseprint(reverse_digits(1234))输出:4321如果您仍然希望该功能打印,您可以在同一行中分别打印每个数字(end=''在打印功能中使用):def reverse_digits(n):&nbsp; &nbsp; if n < 10:&nbsp; &nbsp; &nbsp; &nbsp; print(n)&nbsp; #&nbsp; print the very last digit and add a newline&nbsp; &nbsp; &nbsp; &nbsp; return n&nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; print(n % 10, end='')&nbsp; #&nbsp; print the last digit so far and stay on the same line&nbsp; &nbsp; &nbsp; &nbsp; reverse = str(n % 10) + str(reverse_digits(n // 10))&nbsp; &nbsp; &nbsp; &nbsp; return reversereverse_digits(1234)输出:4321

慕的地8271018

从函数中删除打印:def reverse_digits(n):&nbsp; &nbsp; if n < 10:&nbsp; &nbsp; &nbsp; &nbsp; return n&nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; reverse = str(n % 10) + str(reverse_digits(n // 10))&nbsp; &nbsp; &nbsp; &nbsp; return reverseprint(reverse_digits(1234))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python