Seite 1 von 1

Fehler: Variable nicht definiert - meiner Meinung nach aber ja

Verfasst: Donnerstag 1. März 2018, 18:07
von michi-monster
Halli,
ich habe gerade eine Übung gemacht. Es kommt der Fehler:

Code: Alles auswählen

Traceback (most recent call last):
  File "umrechnung-temperatur.py", line 11, in <module>
    celsius = Kelvin - 273.15
NameError: name 'Kelvin' is not defined
Der Code lautet:

Code: Alles auswählen

#/usr/bin/python
print ("Bitte wählen sie die gewünschte Umrechnung\
(1) Umrechnung von Celsius nach Kelvin\
(2) Umrechnung von Celsius nach Fahrenheit\
(3) Umrechnung von Kelvin nach Celsius\
(4) Umrechnung von Kelvin nach Fahrenheit\
(5) Umrechnung von Fahrenheit nach Celsius\
(6) Umrechnung von Fahrenheit nach Kelvin ")
auswahl=input ()
auswahl = int(auswahl)
celsius = Kelvin - 273.15
celsius = int(celsius)

if auswahl==1:
	print ("ok - von Kelvin nach Celsius")
print ("Bitte Grad kelvin eingeben")
kelvin=input()
kelvin=int(celsius)

print (celsius)
Ich verstehe nicht, warum er ne Definitation von kelvin will. - ich hab das input doch festgelegt... Bitte helft mir mal.

Re: Fehler: Variable nicht definiert - meiner Meinung nach aber ja

Verfasst: Donnerstag 1. März 2018, 18:51
von snafu
Python unterscheidet zwischen Groß- und Kleinschreibung: Du hast kelvin definiert, aber nicht Kelvin.

Re: Fehler: Variable nicht definiert - meiner Meinung nach aber ja

Verfasst: Freitag 2. März 2018, 08:11
von Sirius3
@snafu: an der Stelle, wo der Fehler auftritt, ist egal in welcher Schreibweise "Kelvin" nicht definiert.

@michi-monster: ein Programm läuft von oben nach unten ab, und es nimmt genau die Werte und Variablen, die davor definiert wurden. Du benutzt Kelvin um celsius auszurechnen, und celsius um kelvin auszurechnen, da beißt sich die Katze in den Schwanz.

Re: Fehler: Variable nicht definiert - meiner Meinung nach aber ja

Verfasst: Freitag 2. März 2018, 15:16
von ruedi_br
Hallo Michi-Monster,
wie wäre eine Variante, alles Umrechnen in einer if-elif-Mimik zu erledigen und einmal die umzurechnende Temperatur einzugeben:

Code: Alles auswählen

eingabe = Input("umzurechnende Temperatur")
und dann

Code: Alles auswählen

if Auswahl == 1:
    formel1 usw
macht das m.E. etwas übersichtlicher

Re: Fehler: Variable nicht definiert - meiner Meinung nach aber ja

Verfasst: Montag 5. März 2018, 22:57
von WernerSch
versuch das mal

Code: Alles auswählen

#/usr/bin/python
print ("Bitte wählen sie die gewünschte Umrechnung\
(1) Umrechnung von Celsius nach Kelvin\
(2) Umrechnung von Celsius nach Fahrenheit\
(3) Umrechnung von Kelvin nach Celsius\
(4) Umrechnung von Kelvin nach Fahrenheit\
(5) Umrechnung von Fahrenheit nach Celsius\
(6) Umrechnung von Fahrenheit nach Kelvin ")
auswahl=input ()
auswahl = int(auswahl)
kelvin=input()
#celsius = Kelvin - 273.15
celsius = kelvin - 273.15
celsius = int(celsius)

if auswahl==1:
   print ("ok - von Kelvin nach Celsius")
print ("Bitte Grad kelvin eingeben")

kelvin=int(celsius)

print (celsius)

Re: Fehler: Variable nicht definiert - meiner Meinung nach aber ja

Verfasst: Montag 5. März 2018, 23:10
von WernerSch
war nicht ganz richtig , meine vorherige Lösung
Versuch das mal

Code: Alles auswählen

#/usr/bin/python
print ("Bitte wählen sie die gewünschte Umrechnung\
(1) Umrechnung von Celsius nach Kelvin\
(2) Umrechnung von Celsius nach Fahrenheit\
(3) Umrechnung von Kelvin nach Celsius\
(4) Umrechnung von Kelvin nach Fahrenheit\
(5) Umrechnung von Fahrenheit nach Celsius\
(6) Umrechnung von Fahrenheit nach Kelvin ")
auswahl=input ()
auswahl = int(auswahl)
kelvin=input()
kelvin=float(kelvin)
#celsius = Kelvin - 273.15
celsius = (kelvin-273.15)
celsius = int(celsius)

if auswahl==1:
    print ("ok - von Kelvin nach Celsius")
print ("Bitte Grad kelvin eingeben")

kelvin=int(celsius)

print (celsius)

Re: Fehler: Variable nicht definiert - meiner Meinung nach aber ja

Verfasst: Montag 5. März 2018, 23:29
von kbr
Also wenn, dann so:

Code: Alles auswählen

choice = int(input('Umrechnung wählen: '))
if choice == 1:
    celsius = float(input('Grad Celsius eingeben: '))
    kelvin = celsius + 273.16
    print('Kelvin: ', kelvin)
...
Und im übrigen: es heißt zwar Grad Celsius, nicht aber Grad Kelvin, sondern nur Kelvin.

Re: Fehler: Variable nicht definiert - meiner Meinung nach aber ja

Verfasst: Dienstag 6. März 2018, 22:43
von WernerSch
Guten Abend
Vielen Herzlichen Dank an @kbr . Dein Beispiel hilft mir bei meinem aktuellen Projekt sehr viel weiter

Re: Fehler: Variable nicht definiert - meiner Meinung nach aber ja

Verfasst: Mittwoch 7. März 2018, 10:58
von DeaD_EyE
Für Abfragen kann man generische Funktionen konstruieren.

Code: Alles auswählen

def abfrage(frage, datentyp, fehler):
    while True:
        antwort = input(frage)
        try:
            return datentyp(antwort)
        except ValueError:
            print(fehler)

abfrage('Wie viele Kuchen hast du gebacken? ', int, 'Bitte eine ganzzahl eingeben.')
Keine Ahnung wieso ich jetzt auf Kuchen gekommen bin. War gerade in meinem Kopf.