https://foro.gambas-es.org/viewtopic.php?f=1&t=4269&p=24206#p24206
-----------------------------------
Shell
Sabado, 06 Diciembre 2014, 10:13

Re: Mostrar Arrays Dentro De Otro Arrays
-----------------------------------
Naturalmente. No todo es hacer print y ya está.. ;-)

Sin esta instrucción no tendríamos la posibilidad de depurar una aplicación en un punto determinado.
Prácticamente este ejemplo primero lo aprendí a hacerlo en Python y luego lo hice para Gambas.

[code linenumbers=false syntax=python]
# Mostrar contenido de listas anidadas

t = [1,2,3,[4,5,[6,7,[8,9,10]]]]

def show_item(l):    
    for item in l:
        if type(item) == type([]):
            show_item(item)
        else:
            print (item)

for item in t:
    if type(item) == type([]):
        show_item(item)    
    else:
        print (item)
[/code]

La comparación de los tipos es creativa. Aunque haya una instrucción concreta para saber el tipo directamente.
Cuando comenzamos a aprender Python la depuración no es tan fácil como en Gambas. Al menos hasta donde
he aprendido.

Aprendemos a depurar la aplicación con otras técnicas. No es que sean nuevas, pero aprendes a saber donde buscar, 
donde se puede crear un posible error. ( Que es una pregunta habitual a la hora de crear una aplicación)

Por ejemplo. Imagina que tienes un archivo de texto y lees cada linea que comienza por una palabra, son las que te interesa.
Dentro de esa frase hay un lugar concreto que quieres mostrar ( el día de la semana que se recibe un correo ).
Vas convirtiendo cada linea a un array y muestras un elemento concreto, pero....llega un momento en el que una de las
lineas que lees te da error, diciendo que no existe tal elemento en el array.

En el caso de Python, el error  (traceback error, lo llaman) te da el número de linea donde se produce el error. 
Lo primero es colocar un "Print" antes de la instrucción que produce el error. Se lee cada linea y vamos viendo el  
contenido que tiene el array (lista) en ese instante.   "Comprobamos que el error es producido por una linea en blanco".
dando un array vacío.

La acción de colocar este print en ese lugar concreto se le llama añadir un "guardian code".
Sin print no podríamos detectar errores como este.

Print mola!. :-)

Es una parte de nuestra aplicación, no el total de esta. A menos que sea una aplicación pequeña.
Una vez tengamos lo principal, funciones, procedimientos, va siendo hora de crear una aplicación interactiva.

Saludos


