temperaturumrechner!!!

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
sunny0303
User
Beiträge: 5
Registriert: Freitag 6. Juni 2008, 15:55

hallo hat jemand von euch vielleicht einen guten Temperaturumrechner mit Fenster und Radiobuttons und alles drum und dran??
vielen dank im vorraus
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Mach deine Hausaufgaben selbst!
lunar

Was audax damit sagen will, ist, dass wir hier niemandem fertige Programme präsentieren, die "nach Hausaufgabe" aussehen.

Wir helfen dir nur dabei, Fehler selbst zu finden. Wenn du also Code zeigst, dann helfen wir dir dabei, Fehler zu finden, aber keiner wird dir hier sowas vorprogrammieren.

Nach dem, was du im anderen Thread gezeigt hast, solltest du aber erstmal die Grundlagen lernen...
sunny0303
User
Beiträge: 5
Registriert: Freitag 6. Juni 2008, 15:55

Das sind keine Hausaufgaben, erstmal nur so nebenbei denn sowas gibt es nicht in schulen, dass man pythonprogramme zuhause schreiben muss :? und ich werde demnächst den code reinstellen :!:
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

sunny0303 hat geschrieben:... denn sowas gibt es nicht in schulen, dass man pythonprogramme zuhause schreiben muss
Wie kommst du denn zu der falschen Annahme? Nur weil du keinen kennst?
Janux
User
Beiträge: 78
Registriert: Donnerstag 12. Juni 2008, 21:11

Ich hoffe, dass es kein Fauxpas ist wenn ich ihm (oder ihr :?) ein Teil von dem Code
schreibe ^^ Die Aufgabe hat mich angesprungen und da musste ich
sie lösen :)

Nur ein Problem habe ich bekommen. Es werden in einigen Zeilen 'tuple'
gebildet anstatt die Gleichung zu lösen. Was habe ich an der Stelle falsch
gemacht?

Code: Alles auswählen

# -*- coding: cp1252 -*-

while True:

    print "'f' für °F"
    print "'c' für °C"
    print "'k' für Kelvin"
    print
    
    a = raw_input("Geben Sie den Typ der Ursprungstemperatur an: ")
    x = input("Wert der Ursprungstemperatur: ")
    
    print
    
    b = raw_input("Geben Sie den gewünschten Typ an: ")

    print
    if not (a or x or b):
        break
    if a == b:
        print "Bitte wählen Sie unterschiedliche Typen aus!"
    elif a == "f" and b == "c":
        z = (x-32)*5.0/9                    # Umrechnung funktioniert
        print x,"°F = ",round(z,2), "°C"
        print
    elif a == "f" and b == "k":
        z = (x + 459,67)/1,8                # z wird zu einem 'tuple'
        print x,"°F =",round(z,2), "K"
        print
    elif a == "c" and b == "f":
        z = x * 1,8 + 32                    # z wird zu einem 'tuple'
        print x,"°C =",z, "°F"
        print
    elif a == "c" and b == "k":
        z = x + 273,15                      # z wird zu einem 'tuple'
        print x,"°C =",z,"K"
        print
    elif a == "k" and b == "c":
        z = x - 273,15                      # z wird zu einem 'tuple'
        print x,"K =",z,"°C"
        print
    elif a == "k" and b == "f":
        z = x * 1,8 - 459,67                # z wird zu einem 'tuple'
        print x,"K =",round(z,2),"°F"
        print


EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Janux hat geschrieben:Nur ein Problem habe ich bekommen. Es werden in einigen Zeilen 'tuple'
gebildet anstatt die Gleichung zu lösen. Was habe ich an der Stelle falsch
gemacht?
Das Dir das bisher noch nicht aufgefallen ist :) Kommazahlen schreibt man in Python mit einem Punkt und nicht mit einem Komma. Also "0.5" und nicht "0,5". Das sollte dein Problem beheben.

Und "input" ist eine ganz schlecht Idee, wie hier überall im Forum zu lesen ist. Verwende besser "int(raw_input(...))" oder "float(raw_input(...))" oder was auch sonst immer du für einen Typ brauchst.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Man kann natürlich aussnutzen, dass es alles affine Transformationen sind:

Code: Alles auswählen

import string

while True: 
    print "'f' für °F" 
    print "'c' für °C" 
    print "'k' für Kelvin" 
    print
    a = raw_input("Geben Sie den Typ der Ursprungstemperatur an: ")
    b = raw_input("Geben Sie den gewünschten Typ an: ")
    x = raw_input("Wert der Ursprungstemperatur: ")
    print
    
    temp = {"fc":(5.0/9.0, -160.0/9.0),
            "fk":(1.0/1.8, 459.67/1.8),
            "cf":(1.8, 32.0),
            "ck":(1.0, 273.15),
            "kc":(1.0, -273.15),
            "kf":(1.8, -459.67)}
    
    try:
        if "" in (a, b, x):
            break
        else:
            a, b = a.lower(), b.lower()
            x = float(x)
            factor, offset = temp[a+b]
            z = factor*x + offset
            print "%.2f°%s = %.2f°%s" % (x, a.upper(), z, b.upper())
    except (KeyError, ValueError):
        print "Ungueltige Eingabe"
Janux
User
Beiträge: 78
Registriert: Donnerstag 12. Juni 2008, 21:11

Danke für die Tipps. Deine Variante versteh ich leider nicht.
Ich werd sie mir mal speichern und nochmal anschauen wenn
ich mein Python-Buch durchgelesen habe.
sunny0303
User
Beiträge: 5
Registriert: Freitag 6. Juni 2008, 15:55

pütone hat geschrieben:
sunny0303 hat geschrieben:... denn sowas gibt es nicht in schulen, dass man pythonprogramme zuhause schreiben muss
Wie kommst du denn zu der falschen Annahme? Nur weil du keinen kennst?
Ehm ich geh auf eine Schule und ich kenne die Regeln!
Man darf nur ein Python Programm zuende schreiben, es aber nicht von anfang an schreiben!!!
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

sunny0303 hat geschrieben: Ehm ich geh auf eine Schule und ich kenne die Regeln!
So, denk noch mal über diesen Satz nach ;-)

...

ok, noch mal ein Hinweis:
sunny0303 hat geschrieben: Ehm ich geh auf eine Schule und ich kenne die Regeln!
...

und noch einer

...
sunny0303 hat geschrieben: Ehm ich geh auf eine Schule und ich kenne die (dortigen) Regeln!
Nun klar?

SCNR
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

sunny0303 hat geschrieben:Ehm ich geh auf eine Schule und ich kenne die Regeln!
Man darf nur ein Python Programm zuende schreiben, es aber nicht von anfang an schreiben!!!
Und selbst bei der für deinen Kurs und deinen Lehrer geltenden Regel wäre es doch wohl per definitionem eine "Hausaufgabe", wenn du ein Programm, das du in der Schule angefangen hast, zu Hause zu Ende schreiben sollst.
Oder wie nennt ihr das an eurer Schule?
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

sunny0303 hat geschrieben:Man darf nur ein Python Programm zuende schreiben, es aber nicht von anfang an schreiben!!!
Wie bitte????
(Ich kenne reichlich seltsame Lehrkräfte, also ist das auch nicht ganz auszuschließen ... ist aber doch extrem seltsam formuliert.)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

CM hat geschrieben:
sunny0303 hat geschrieben:Man darf nur ein Python Programm zuende schreiben, es aber nicht von anfang an schreiben!!!
Wie bitte????
(Ich kenne reichlich seltsame Lehrkräfte, also ist das auch nicht ganz auszuschließen ... ist aber doch extrem seltsam formuliert.)
So kann man es sich doch auch einfach machen. Wenn man 70% der Lösung vorgibt, haben die Schüler wenig Chancen Programme zu schreiben die man selbst nicht versteht. 8)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Leonidas hat geschrieben:So kann man es sich doch auch einfach machen. Wenn man 70% der Lösung vorgibt, haben die Schüler wenig Chancen Programme zu schreiben die man selbst nicht versteht. 8)
Naja, beim durchschnittlichen Niveau der hier zu findenden Schüler-Postings sollte man letzteres wohl ausschließen können. Hoffentlich.

Andererseits kann man zahlreichen Threads hier im Forum entnehmen, dass es auf jeden Fall Schüler gibt, die es schaffen, Programme zu schreiben, die sie selbst nicht verstehn. :D
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

pütone hat geschrieben:
Leonidas hat geschrieben:So kann man es sich doch auch einfach machen. Wenn man 70% der Lösung vorgibt, haben die Schüler wenig Chancen Programme zu schreiben die man selbst nicht versteht. 8)
Naja, beim durchschnittlichen Niveau der hier zu findenden Schüler-Postings sollte man letzteres wohl ausschließen können. Hoffentlich.
Du hast schon recht und ich will das auch gar nicht in Schutz nehmen, denn ich finde es genauso blödsinnig wie CM aber der Lehrer kann sich ja gedacht haben dass wenn er den Anfang vorgibt, die Schüler sich das Programm nicht aus dem Internet irgendwoher kopieren können.

Natürlich, wenn der Schüler sich schlau anstellt, kopiert er sich das Programm trotzdem und arbeitet es so um, dass es in die vorgegebene Anfangslösung passt. Das wiederrum finde ich gar nicht einmal so schlimm, es zeigt ja dass der Schüler sich mit dem Problem befasst hat und wenn das Programm funktioniert hat der Schüler dabei zweifellos was gelernt. Vielleicht hat er das Lösungsverfahren nicht ausgedacht, aber er hat sich mit dem Problem beschäftigt und eine funktionierende Lösung hinbekommen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten