Ejercicio practico resuelto de listas en Python

Cuando empiezas a escribir programas, es tentador crear muchas variables individuales para almacenar un grupo de valores similares. Por ejemplo, si quisiera almacenar los nombres de mis gatos, podría tener la tentación de escribir un código como el siguiente:

catName1 = 'Zophie'
catName2 = 'Pooka'
catName3 = 'Simon'
catName4 = 'Lady Macbeth'
catName5 = 'Fat-tail'
catName6 = 'Miss Cleo'

Resulta que esta es una mala manera de escribir código. (Además, en realidad no tengo tantos gatos, lo juro.) Por un lado, si el número de gatos cambia, tu programa nunca podrá almacenar más gatos de los que tienes en las variables. Este tipo de programas también tienen mucho código duplicado o casi idéntico en ellos. Considere cuánto código duplicado hay en el siguiente programa, que debería introducir en el editor de archivos y guardar como allMyCats1.py:

print('Enter the name of cat 1:')
catName1 = input()
print('Enter the name of cat 2:')
catName2 = input()
print('Enter the name of cat 3:')
catName3 = input()
print('Enter the name of cat 4:')
catName4 = input()
print('Enter the name of cat 5:')
catName5 = input()
print('Enter the name of cat 6:')
catName6 = input()
print('The cat names are:')
print(catName1 + ' ' + catName2 + ' ' + catName3 + ' ' + catName4 + ' ' +
catName5 + ' ' + catName6)

En lugar de utilizar varias variables repetitivas, puede utilizar una única variable que contenga un valor de lista. Por ejemplo, aquí hay una versión nueva y mejorada del programa allMyCats1.py. Esta nueva versión utiliza una única lista y puede almacenar cualquier número de gatos que el usuario introduzca. En una nueva ventana del editor de archivos, introduzca el siguiente código fuente y guárdelo como allMyCats2.py:

catNames = []
while True:
    print('Enter the name of cat ' + str(len(catNames) + 1) +
      ' (Or enter nothing to stop.):')
    name = input()
    if name == '':
        break
    catNames = catNames + [name]  # list concatenation
print('The cat names are:')
for name in catNames:
    print('  ' + name)

Cuando ejecute este programa, la salida será algo parecido a esto:

Enter the name of cat 1 (Or enter nothing to stop.):
Zophie
Enter the name of cat 2 (Or enter nothing to stop.):
Pooka
Enter the name of cat 3 (Or enter nothing to stop.):
Simon
Enter the name of cat 4 (Or enter nothing to stop.):
Lady Macbeth
Enter the name of cat 5 (Or enter nothing to stop.):
Fat-tail
Enter the name of cat 6 (Or enter nothing to stop.):
Miss Cleo
Enter the name of cat 7 (Or enter nothing to stop.):

The cat names are:
  Zophie
  Pooka
  Simon
  Lady Macbeth
  Fat-tail
  Miss Cleo

Puedes ver la ejecución de estos programas en https://autbor.com/allmycats1/ y https://autbor.com/allmycats2/. La ventaja de utilizar una lista es que tus datos están ahora en una estructura, por lo que tu programa es mucho más flexible a la hora de procesar los datos de lo que sería con varias variables repetitivas.

Deja una respuesta