Unterschiedliche Rückgabewerttypen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
JeanC
User
Beiträge: 11
Registriert: Dienstag 29. Dezember 2015, 18:46

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
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. ;-)
JeanC
User
Beiträge: 11
Registriert: Dienstag 29. Dezember 2015, 18:46

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. :-)
Antworten