Wenn ich diesen Code ausführen auf Python 3.5 ichPython spielte Ausdruck in Funktion nicht funktioniert
Nameerror name ‚md‘ ist nicht definiert.
Ich habe einen markierten Ausdruck für MD verwendet, so dass es alle der mittleren Werte greifen wird. Da es nicht funktioniert hat, habe ich versucht, einen markierten Ausdruck im Code über der Funktion (drop_first_last) zu verwenden, und dieser markierte Ausdruck funktionierte gut.
t = [3, 5, 6,8, 2, 9]
first, *middle, last = t
avgg = np.mean(middle)
print('middle is:', middle)
print('avg is:', avgg)
def drop_first_last(t):
frst, *md, lst = t
return np.mean(md)
drop_first_last(t)
print("avg",md)
'md' ist *** lokal *** innerhalb der 'drop_first_last'-Funktion definiert und kann nicht außerhalb der Funktion aufgerufen werden, es sei denn, Sie _globalize_ es. Ich empfehle letzteres überhaupt nicht. – Abdou
Beachten Sie, dass es funktionieren wird, wenn Sie den 'print (" avg ", md)' -Aufruf innerhalb der Definition 'drop_first_last()' setzen (nachdem 'md' definiert wurde). Das Problem, wie @Abdou sagte, ist, dass 'md' nur innerhalb der Funktion verfügbar ist, nicht nach der Rückkehr. – dimo414
Also, nur um sicher zu sein, ich verstehe, dann würden Sie normalerweise einen Druckwert innerhalb der Funktion (?) Verwenden oder eine return-Anweisung verwenden, um die Werte aus der Funktion zu erhalten? –