为什么这行“当numA!= numA [:: - 1]:”给我“int object is not subscriptable”错误?

时间:2016-12-19 03:15:07

标签: python

所以我尝试了以下变种,但没有成功:

1)

numA = input("Type a number: ")
while str(numA) != str(numA[::-1]):

2)

numA = input("Type a number: ")
while int(numA) != int(numA[::-1]):

1 个答案:

答案 0 :(得分:1)

你必须首先转换为字符串,然后反转。将括号稍微向左移动。

while str(numA) != str(numA)[::-1]:

由于您的版本不起作用,您必须使用Python 2,它会评估input()的值返回值,这次是一个整数。如果您使用的是Python 3,那么您的代码就可以工作,因为Python 3的input()会返回一个字符串,所以您可以完成它而不需要进行转换:

while numA != numA[::-1]:

或者,在Python 2中,您可以切换到raw_input,它总是返回一个字符串,而不需要进行任何转换:

numA = raw_input("Type a number: ")
while numA) != numA[::-1]: