-2

我想反转一个数字,但我收到此错误:

“TypeError:‘类型’对象不可下标”

如果您能更正我的代码,我将不胜感激。这是我的代码:

number=input("enter your number ")
num=int(number)
count=0
list1=[]
while(num!=0):
    list1.append(num%10)
    num=num//10
    count=count+1
print(list1[::-1])
k=len(list1)
after=0
for h in range(k):
    after+=int(list[h])*(10**h)
    h=-1
print(after)
4

4 回答 4

1

您可以使用列表(创建、反向、连接)轻松完成:

''.join(map(str, list(reversed(list(str(num))))))

或者只是,更容易:

int(str(num)[::-1])
于 2015-06-15T10:01:24.957 回答
0

您必须将您的int转换为 a str,反转字符串并将其转换回去。

这就是我的做法:

number = input("enter your number ")
number = int(str(number)[::-1])
于 2015-06-15T09:58:10.323 回答
0

您必须在第 13 行使用 list1 。

另外,我不确定你想做什么,你的算法似乎不正确,代码根本不是 pythonic。

阅读地图功能。如果你想使用列表。(不要使用典型的 C++ while 循环)要将数字分解为单个数字列表,请使用:

list1 = map(int,str(num)) 
于 2015-06-15T09:58:50.643 回答
0

也可以这样做

return eval(str(number)[::-1])

阅读有关扩展切片方法的更多信息以了解更多信息

于 2016-09-08T10:50:26.287 回答