Seite 1 von 1

Unterschiedliche Rückgabewerttypen

Verfasst: Dienstag 29. Dezember 2015, 19:01
von JeanC
Hallo zusammen,

zunächst einmal möchte ich alle "vorwarnen": habe heute mit Python 3.5 (Anaconda-Installation) angefangen. Bis dato habe ich viel in Ruby programmiert, sodass ich noch mit der einen oder anderen (m.E. umständlichen) "Eigenart" von Python kämpfe, aber im Grossen und Ganzen ganz gut zurecht komme. Insbesondere die Vielfalt der Module im wissenschaftlichen Bereich überzeugt mich immer mehr von Python. Ich bin somit weder Für-Gegen-Ruby/Python, sondern sehe in jeder Sprache die Vorteile. Falls mein Wording nicht ganz Python-like ist, so bitte ich das zu entschuldigen.

So, nun zu meinem "Befund", den ich nicht ganz verstehe.

Anbei der Code:

Code: Alles auswählen

from scipy.stats import norm

a = norm.pdf(1, loc=0.0, scale=0.5)
print(type(a))

mean = 0.0,
std_dev = 0.5
b = norm.pdf(1, loc=mean, scale=std_dev)
print(type(b))
Warum wird bei Verwendung von Variabeln (mean, std_dev) ein anderer Type zurückgebene, als wenn ich die Zahlen direkt in die Funktion eintrage?

Gruss,

Jean

Re: Unterschiedliche Rückgabewerttypen

Verfasst: Dienstag 29. Dezember 2015, 19:25
von BlackJack
@JeanC: Du übergibst nicht das selbe in beiden Fällen. Im ersten Fall übergibst Du bei `loc` eine Zahl, im zweiten Fall *nicht*! Lass Dir mal den Typ von `mean` ausgeben. ;-)

Re: Unterschiedliche Rückgabewerttypen

Verfasst: Dienstag 29. Dezember 2015, 19:32
von JeanC
BlackJack hat geschrieben:@JeanC: Du übergibst nicht das selbe in beiden Fällen. Im ersten Fall übergibst Du bei `loc` eine Zahl, im zweiten Fall *nicht*! Lass Dir mal den Typ von `mean` ausgeben. ;-)
Ich habe es nun gemerkt, das Komma in der mean-Zeile hat den "Fehler" verursacht. mean war also vom Typ tuple.

Warum ich den Fehler nicht vorher gemerkt hatte? Naja, ganz einfach: die typen hatte ich mir mir ipython-ausgeben lassen und es kam jedes Mal "float" raus, da ich dort den "Tippfehler" nicht gemacht hatte. Somit wunderte ich mich auch, warum es zu diesem Verhalten man. :-)

Es sei wieder bestätigt: Das Problem sitzt in der Regel vor dem Bildschirm. :-)