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)“`
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:
Luego, en el código principal, puede imprimir el valor de docCountryList: