¿Qué cambio se requiere en el código fuente?
def Actualización (): imprimir ('\ n') imprimir ("Actualizar") cmd = os.system ('xterm -e apt-get update') Imprimir ("Finalizar actualización") def AptUpdate (): imprimir ('\ n') imprimir ("¿Sistema de actualización? {S / N}") imprimir ("Y o y") imprimir ("N o n") código = entrada ("Comando>") si el código == 'y' o el código == 'Y': para i en Update (): volver actualización código de elif == 'n' o código == 'N': regreso más: imprimir ("¡Advertencia!") AptUpdate () excepción: Rastreo (llamadas recientes más última): Archivo "pybash.py", línea 110, en AptUpdate () Archivo "pybash.py", línea 102, en AptUpdate para i en Update: TypeError: el objeto 'function' no es iterable
Lo que el error de rastreo está señalando es el mal uso de la statement for:
for i in Updt():
for
en Python 3 es como sigue: “La instrucción for de Python itera sobre los elementos de cualquier secuencia (una lista o una cadena), en el orden en que aparecen en la secuencia”. (fuente: documentación de Python 3.3, sección 4: Más estructuras de control Python 3
Como una función no es una lista ni una cadena, no puede usar el formato:
for [variable] in [function]():
En lo que respecta a lo que necesita ser arreglado, depende de lo que se supone que deben cumplir esas dos funciones individualmente.