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)