es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Problema al utilizar a excepción de una sintaxis inválida.

Estoy intentando escribir un código. El código debe agregar un elemento a una lista “a” si no ocurre un error de nombre o de sintaxis. Pero la función ni siquiera funciona, porque este error detiene la función al principio.

def printing(lista):
    a = []
    b = []
    try:
        for elem in lista:
            a.append(elem)
    except (SyntaxError,NameError):
        for elem in lista:
            b.append(elem)
    return a,b

print(printing(1,2,1o,o))

Salida deseada a = [1,2] b = [1o,o]

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Hay algunos errores en el fragmento de código proporcionado que necesitan ser corregidos.

    En primer lugar, al llamar la función printing, la lista de entrada debe estar encerrada entre corchetes para indicar que es una lista. Entonces, la llamada correcta debería ser:

    print(printing([1, 2, '1o', 'o']))
    

    En segundo lugar, el bloque except no es necesario ya que no hay errores de sintaxis ni de nombre en el bucle for. En su lugar, el bloque try puede ser utilizado para añadir elementos válidos a a, mientras que los elementos inválidos pueden ser añadidos a b utilizando una condición if. Aquí está el código corregido:

    def printing(lst):
        a = []
        b = []
        for elem in lst:
            try:
                a.append(int(elem))
            except (SyntaxError, NameError, ValueError):
                b.append(elem)
        return a, b
    
    print(printing([1, 2, '1o', 'o']))
    

    Esto producirá una salida de (a, b) como ([1, 2], ['1o', 'o']), que es la salida deseada.

Comments are closed.