Python 代码中用于使用函数反转数字的运行时错误



我收到运行时错误,说:

ValueError: int(( 的文字无效,底数为 10:"intreverse(368(">

这个问题的解决方案是什么?

这是我的代码:

def intreverse(n):
rev=0
dig=0
while(n>=0):
dig=n%10
rev=rev*10+dig
n=n//10
n=int(input("enter the number:"))
rev=intreverse(n)
print("Reverse is",rev)

你想反转一个整数(例如。intreverse(123) = 321(

您的函数有两个问题,

  1. 没有return值(您的函数总是返回None(
  2. while循环进入无限运行(intreverse(123)返回321000...0n=n//10因为对于任何正n永远不会破坏条件n>=0(

因此,我将通过按以下方式重写您的函数来解决上述两个问题,

def intreverse(n):
rev=0
dig=0
while(n > 0):
dig = n%10
rev = rev*10 + dig
n = n//10
return rev
n=int(input("enter the number:"))
rev=intreverse(n)
print("Reverse is",rev)

限制:上面的代码将无法反转在最不重要的位置带有零的数字(如下面的案例 2(

  1. intreverse(123001)会返回100321这是可以
  2. intreverse(123000)会回来321

如果您对 case-2(上面(感兴趣,那么我建议您将integer转换为string并按照以下代码反转字符串。

def gen_intreverse(n):
s = str(n)
rev = ''
for letter in s:
rev = letter + rev
return rev

或者您可以简单地使用以下[::-1]修饰符

def gen_intreverse(n):
s = str(n)
return s[::-1]
def gen_intreverse(n):
return str(n)[::-1]

将返回反转字符串。intreverse(123001)会回来"100321"如果你想要整数值。只需int()输出值。

相关内容

最新更新