我收到运行时错误,说:
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
(
您的函数有两个问题,
- 没有
return
值(您的函数总是返回None
( while
循环进入无限运行(intreverse(123)
返回321000...0
n=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(
- 的
intreverse(123001)
会返回100321
这是可以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()
输出值。