Soy nuevo en Python, y estoy tratando de crear una función que crea listas con diferentes parámetros de los materiales de las entradas del usuario, como se muestra en el siguiente código.

def material():
    layers = int(raw_input("State the number of material layers in the wall (0 for default material): "))

    rho = [] # Density [kg/m3]
    c = [] # Heat capacity [J/(kg K)] 
    k = [] # Heat conductivity [W/(m K)]
    #a = [] # Thermal diffusivity [m2/s]
    d = [] # Thickness of material [m]

    # Saveing material properties
    if layers == 0:
        rho.append(2300)
        c.append(900)
        k.append(1.6)
        d.append(3.2)
        layers = 1

    else:
        for i in range(layers):
            print "\n" "Define thermal properties for material", i+1,"(starting from left)"
            rho.append(float(raw_input("Density [kg/m3]: ")))
            c.append(float(raw_input("Heat capacity [J/(kg K)]: ")))
            k.append(float(raw_input("Heat conductivity [W/(m K)]: ")))
            d.append(float(raw_input("Thickness [m]: ")))

    return ???

¿Cómo debo volver rho, c, k, d y capas así que soy capaz, por ejemplo, imprimir o utilizar el valor de – por ejemplo, el segundo elemento en la lista de d?

print d[1]

OriginalEl autor Christoffer | 2013-10-19

4 Comentarios

  1. 9

    ¿Cómo debo volver rho, c, k, d y capas de […] ?

    Simplemente hacerlo:

    return rho, c, k, d, layers

    Y luego se llamaría como

    rho, c, k, d, layers = material()
    print d[1]

    Tenga en cuenta que la más cosas que está regresando, lo más probable es que usted va a querer meterlo todo junto en una estructura como un dict (o namedtuple, o de clase, etc.)

    Obs.: Esta característica es en realidad la devolución de un tuple y, a continuación, haciendo una asignación múltiple declaración. También puede utilizar S = material(); print S[3][1] para lograr el mismo resultado, por ejemplo.
    muy cierto. Tiendo a no utilizar tupla de indexación para heterogéneo de devolución de resultados porque es demasiado fácil para mí hacer una mezcla de la variable que corresponde a que el índice.
    Dios, que es rápido por ahí. Muchas gracias. Puedo ver que mi problema era más sobre cómo llamar a la función–, pero lo tengo ahora. Gracias de nuevo, todo el mundo. Saludos.

    OriginalEl autor DSM

  2. 6

    return puede devolver varios valores si los separa con comas:

    return rho, c, k, d, layers

    Esto hará que material devolver una tupla que contiene rho, c, k, d, y layers.

    Una vez hecho esto, usted puede tener acceso a los valores devueltos por material a través de desembalaje:

    rho, c, k, d, layers = material()

    Aquí está una demostración:

    >>> def func():
    ...     return [1, 2], [3, 4], [5, 6]
    ...
    >>> a, b, c = func()
    >>> a
    [1, 2]
    >>> b
    [3, 4]
    >>> c
    [5, 6]
    >>> a[1]
    2
    >>>

    OriginalEl autor iCodez

  3. 0
    def return_values():
        # your code
        return list1, list2

    y obtener el valor como el de abajo,

    value1, value2 = return_values()

    OriginalEl autor santosh singh

  4. 0
    def function_returning_multiple_list():
      l1=[]
      l2=[]
      l3=[]
      return (l1,l2,l3)
    
    
    def another_fucntion():
      list1,list2,list3=function_returning_multiple_list()
      print list2
    Tenga en cuenta que no hay ninguna necesidad de que el paréntesis en la instrucción return.

    OriginalEl autor Archit Jain

Dejar respuesta

Please enter your comment!
Please enter your name here