+ 2

syntax error: string indices must be integers

no entiendo que pasa porque en la línea 10 (if int(ime[lamitad]) == int(ime[lamitad+1]) ) ime = input("Enter a number") lngth = len(ime) lamitad = 0 paroimpar = "h" if lngth%2==0: paroimpar = "par" lamitad=len(ime) / 2 - 1 if int(ime[lamitad]) == int(ime[lamitad+1.0]): print ("si es palindromo") else: ("no es palindromo") else: lamitad= len(ime) / 2 - 1.5 paroimpar = "impar" yo ya le puse un int al principio con unos parentesis pero me sigue apareciendo ese error, no se como solucionarlo

7th Aug 2020, 9:32 PM
nacho agost
nacho agost - avatar
12 Antworten
+ 2
nacho agost para que el número sea completo
7th Aug 2020, 9:53 PM
Julia Shabanova
Julia Shabanova - avatar
+ 2
¿Está comprobando si un número es un palíndromo?
7th Aug 2020, 9:56 PM
Julia Shabanova
Julia Shabanova - avatar
+ 2
nacho agost entonces suficiente: ime = input() if ime == ime[::-1]: print ("si es palindromo") else: print("no es palindromo")
7th Aug 2020, 10:12 PM
Julia Shabanova
Julia Shabanova - avatar
+ 1
You are using index [lamitad + 1.0], which is a float... Just delete .0, so it is an integer...
7th Aug 2020, 9:41 PM
G B
G B - avatar
0
Julia Shabanova ahi estas diciendo que el problema empieza ahí, pero yo a medida que iba avanzando iba probando con el metodo print y en esa parte no tuve problemas :(
7th Aug 2020, 9:44 PM
nacho agost
nacho agost - avatar
0
Julia Shabanova ahi pude jajaja el problema estaba en que habia puesto un solo / enves de // cual es la diferencia?
7th Aug 2020, 9:47 PM
nacho agost
nacho agost - avatar
0
Julia Shabanova si jaja, esa sería la idea; para responder también una pregunta del proyecto euler ese
7th Aug 2020, 9:58 PM
nacho agost
nacho agost - avatar
0
Use round() in line 7 and replace all float expressions for integers... Then it should be working :)
7th Aug 2020, 9:58 PM
G B
G B - avatar
0
G B how?
7th Aug 2020, 9:59 PM
nacho agost
nacho agost - avatar
0
ime = input("Enter a number") lngth = len(ime) lamitad = 0 paroimpar = "h" if lngth%2==0: paroimpar = "par" lamitad=round(len(ime) / 2 - 1) #use round here if int(ime[lamitad]) == int(ime[lamitad+1]): print ("si es palindromo") else: print("no es palindromo") else: lamitad= len(ime) / 2 - 1 paroimpar = "impar"
7th Aug 2020, 10:02 PM
G B
G B - avatar
0
G B ah that looks like put // maybe is the same, but hey look at the line 15 you putted lamitad=len(ime)/2-1 but the -1 must be -1.5 because always will have 0,5 more than neccessary. sorry for my english but is no posible to rest 1.5?
7th Aug 2020, 10:06 PM
nacho agost
nacho agost - avatar
0
Maybe use math.floor(len(ime) / 2 - 1.5), this will round down the expression(and don't forget to import math)
7th Aug 2020, 10:11 PM
G B
G B - avatar