Hemos visto que para acceder a un elemento de una lista, tupla o cadena de caracteres debemos indicar mediante un subíndice que comienza a numerarse a partir de cero.
También hemos visto el concepto anterior que podemos generar otra lista, tupla o cadena de caracteres indicando una porción con el caracter ":"
Ahora veremos que podemos utilizar un valor negativo para acceder a un elemento de la estructura de datos.
lista1=[0,1,2,3,4,5,6] print(lista1[-1]) # 6 print(lista1[-2]) # 5
En Python podemos acceder fácilmente al último elemento de la secuencia indicando un subíndice -1:
print(lista1[-1]) # 6
Luego el anteúltimo se accede con la sintaxis:
print(lista1[-2]) # 5
Confeccionar una función que reciba una palabra y verifique si es capicúa (es decir que se lee igual de izquierda a derecha que de derecha a izquierda)
def capicua(cadena): indice=-1 iguales=0 for x in range(0,len(cadena)//2): if cadena[x]==cadena[indice]: iguales=iguales+1 indice=indice-1 print(cadena) if iguales==(len(cadena)//2): print("Es capicua") else: print("No es capicua") # bloque principal capicua("neuquen") capicua("casa")
Disponemos un contador que comience en -1 llamado indice y otro contador para las coincidencias:
def capicua(cadena): indice=-1 iguales=0
Un for que se repita tantas veces como caracteres tenga la palabra dividido 2:
for x in range(0,len(cadena)//2):
Dentro del for verificamos si el caracter del principio de lista coincide con el caracter del fin de la lista, si es así incrementamos el contador de coincidencias:
if cadena[x]==cadena[indice]: iguales=iguales+1 indice=indice-1
Cuando sale del for si la cantidad de coincidencias es igual a la mitad de la cadena luego podemos inferir que la palabra es capicúa:
if iguales==(len(cadena)//2): print("Es capicua") else: print("No es capicua")
ejercicio177.py palabra=input("Ingresar una palabra:") indice=-1 for x in range(len(palabra)): print(palabra[indice],end="") indice=indice-1 ejercicio178.py def cargar(): palabras=[] for x in range(0,5): pal=input("Ingrese una palabra:") palabras.append(pal) return palabras def intercambiar(palabras): aux=palabras[0] palabras[0]=palabras[-1] palabras[-1]=aux def imprimir(palabras): print(palabras) # bloque principal palabras=cargar() imprimir(palabras) intercambiar(palabras) imprimir(palabras)