numpy und ein Problem

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
heraklion
User
Beiträge: 12
Registriert: Mittwoch 8. März 2017, 19:32

mOin mOin,

ich bin echt ein Anfänger und habe eine Frage und Zwar:

ich habe eine Gleichung und Zwar ganz einfache.


Q_i=m*c*(Ti-T2) und i=0-10 und T1-T10=100C°-200C°

Nun die Frage ist wie "i" geschrieben werden soll (for schleife) ,damit ich die Ergebnisse haben könnte.


Code: Alles auswählen

from math import*
import matplotlib.pyplot as plt

def Waermetauscher():
    
    m=float(input("Geben Sie den Massenstrom ein: "))
    
    cp=float(input("Geben Sie den Spezifischewaermekapazitaet ein: "))
    
    T2=float(input("Geben Sie den Fluidstemperatur ein: "))
    
    Ti=range(100,200)
    
    for i in Tw:
        
        i=i+1
        
        print(Qi=m*cp*(Tw-T2))
           
    
    return

Waermetauscher()
Danke.
Zuletzt geändert von Anonymous am Donnerstag 30. März 2017, 12:20, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
BlackJack

@heraklion: Wie ``for``-Schleifen funktionieren sollte eigentlich jedes Grundlagentutorial abdecken. In dem Tutorial in der Python-Dokumentation ist das zumindest der Fall.

In Deinem Quelltext wird es in Zeile 14 eine Ausnahme geben, weil `Tw` nirgends definiert wurde.

Letztlich ist `i` hier nicht notwendig wenn Du eine Liste oder ein anderes iterierbares Objekt mit den T_i-Werten hast, denn man kann (und sollte) in Python *direkt* über die Werte iterieren statt den unnötigen Umweg über einen Index zu nehmen.

Funktionsnamen beschreiben üblicherweise die Tätigkeit die von der Funktion ausgeführt wird. Damit der Leser weiss was sie tun und um sie leichter von eher ”passiven” Werten unterscheiden zu können. `Waermetauscher` ist nicht nur ein Name der eher für einen Wert steht der einen Wärmetauscher repräsentiert, sondern in der Schreibweise mit dem Grossbuchstaben, erwartet man da in Python eigentlich eine Klasse hinter dem Namen, die einen Wärmetauscher modelliert.

Die ``return``-Anweisung am Ende der Funktion erfüllt nicht wirklich einen Zweck. Wenn die da nicht stehen würde, ändert sich am Programmablauf nichts, die Funktion ist an der Stelle ja sowieso am Ende. Und dem Leser bringt diese Zeile auch keinen Mehrwert.

Das ``i=i+1`` ist mindestens seltsam. Da würde man sich fragen warum die Schleife nicht schon über einen jeweils 1 höheren Wert läuft. Oder ob der Programmierer ``for``-Schleifen nicht so ganz verstanden hat.

Wenn Zeile 14 nicht schon einen `NameError` auslösen würde, hätte man beim `print()` ein Problem weil diese Funktion kein `Qi`-Schlüsselwort kennt:
[codebox=pycon file=Unbenannt.txt]>>> print(Qi=42)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'Qi' is an invalid keyword argument for this function[/code]

Was das ganze jetzt mit Numpy zu tun hat ist mir nicht ersichtlich. Da würde man gar keine ``for``-Schleife verwenden sondern mit Numpy-Arrays arbeiten.
heraklion
User
Beiträge: 12
Registriert: Mittwoch 8. März 2017, 19:32

Vielen Dank für die Antwort,

ich habe mein Skript geändert:

Code: Alles auswählen

mport numpy as np
import matplotlib.pyplot as plt

def Waermetauscher():
    
    m=float(input("Geben Sie den Massenstrom ein: "))
    
    cp=float(input("Geben Sie den Spezifischewaermekapazitaet ein: "))
    
    Tf=float(input("Geben Sie den Fluidstemperatur ein: "))
    
    Tw=np.arange(100,200,10)
    
    for i in Tw:
        
        Q=m*cp*(Tw-Tf)
        
        print("Q= ",Q)
          

Waermetauscher()

nun ich möchte eigentlich den Verlauf in einem DIAGRAM darzustellen. Das ist eigentlich mein Ziel. ich möchte die Funktionen numerisch lösen (Iterativ) und dann darstellen zu lassen

wie geht das?

Danke
Zuletzt geändert von Anonymous am Donnerstag 30. März 2017, 14:12, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
BlackJack

@heraklion: Was ist denn der Sinn der ``for``-Schleife hier? Das `i` wird nirgends verwendet und die Berechnung von `Q` enthält dementsprechend auch nichts was von der Schleife abhängt. Das sollte doch auch bei der Ausgabe aufgefallen sein‽

Zur grafischen Darstellung schaust Du Dir am besten in der Matplotlib-Dokumentation die Gallerie an, welcher Diagrammtyp Deinen Wünschen am nächsten kommt, und dann welche Funktionen dafür benutzt werden.
Antworten