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.

Confundido acerca de cómo funciona el retorno en Python.

El programa se ejecuta y la función funciona, pero no puedo ver mi lista de países en la salida. ¿Alguien puede decirme por qué?

Tengo este código

def ViewByCountry(docID,user_selection):
    docCountryList=[]
    for x in jfile:
        if x.get('subject_doc_id') == docID:
            docCountryList.append(x['visitor_country'])
    if user_selection == '2a':
        x = []
        y = []
        #Insert countries and number of occurences in two seperate lists
        for k,v in Counter(docCountryList).items():
            x.append(k)
            y.append(v)
        plt.title('Countries of Viewers')
        plt.bar(range(len(y)), y, align='center')
        plt.xticks(range(len(y)), x, size='small')
        plt.show()
        return docCountryList

y en mi principal

“`
from program import ViewByCountry

Press the green button in the gutter to run the script.

if name == 'main':
docID = input("Enter required document ID: ")
user_selection = input("Enter selection")
ViewByCountry(docID,user_selection)“`

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que la función ViewByCountry devuelve el valor de docCountryList solo si user_selection es ‘2a’. Si user_selection no es ‘2a’, la función no devuelve nada. Por lo tanto, en el código principal, cuando se llama la función, el valor de docCountryList no se muestra ni se almacena de ninguna manera.

    Para ver la salida de docCountryList en el código principal, podría modificar la función ViewByCountry para que siempre devuelva el valor de docCountryList, independientemente de user_selection:

    def ViewByCountry(docID,user_selection):
        docCountryList=[]
        for x in jfile:
            if x.get('subject_doc_id') == docID:
                docCountryList.append(x['visitor_country'])
        if user_selection == '2a':
            x = []
            y = []
            #Insert countries and number of occurences in two seperate lists
            for k,v in Counter(docCountryList).items():
                x.append(k)
                y.append(v)
            plt.title('Countries of Viewers')
            plt.bar(range(len(y)), y, align='center')
            plt.xticks(range(len(y)), x, size='small')
            plt.show()
        return docCountryList
    

    Luego, en el código principal, puede imprimir el valor de docCountryList:

    from program import ViewByCountry
    
    # Presione el botón verde en la ventana para ejecutar el script.
    if __name__ == '__main__':
        docID = input("Ingrese el ID del documento requerido: ")
        user_selection = input("Ingrese la selección: ")
        docCountryList = ViewByCountry(docID,user_selection)
        print(docCountryList)
    

Comments are closed.