Geschwindigkeitenumrechner

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
Johanna
User
Beiträge: 3
Registriert: Dienstag 29. Januar 2019, 20:41

Hallo,
ich komm bei meinem Geschwindigkeitenumrechner leider nicht weiter.
Ich bin mir sicher, dass ich einige Syntax-Fehler gemacht habe und bei dem Abschluss bin ich mir auch unsicher wie ich den gestalten kann.

Danke schonmal für eure Tipps!

Code: Alles auswählen

>>> def main():
	inp=input("Geben Sie die umzurechnende Zahl ein (Format: Zahl<Leerzeichen>Input-Einheit<Leerzeichen>Output-Einheit:   ")
	Menge = float(inp.split()[0])
	input_einheit = inp.split()[1]
	output_einheit = inp.split()[2]

	input_einheit = was_ist_es_einheit(Input_Einheit)
	output_einheit = was_ist_es_einheit(Out_Einheit)
	print(converter(Menge,input_einheit,output_einheit),output_einheit)

		  
>>> def was_ist_es_einheit(EINHEIT):
	Kn=['knoten','KNOTEN','Knoten','kn','Kn','KT','Kt','kt']
	mps = ['Meter/Sekunde','meter/sekunde','m/s']
	kmph = ['Km/h','km/h','KM/H']
	mph = ['mph','MPH','mile/hour','MILE/Hour','Mile/Hour']


                if EINHEIT in Kn:
                        return "Knoten"
                elif EINHEIT in mps:
                        return "m/s"
                elif EINHEIT in kmph:
                        return 'km/h'
                elif EINHEIT in mph:
                        return 'mph'
                else:
                        print(' {} es handelt sich um keine definierte Einheit nur: Kn, mps,kmph oder mph'.format(EINHEIT))
                        sys.exit()

>>> def converter(Menge,input_einheit,output_einheit):
                  
        def convert_to_kn(Menge,input_einheit):
                if input_einheit == 'mph':
                    return Menge*1.150779448
                elif input_einheit == 'kmph':
                    return Menge*1.852
                elif input_einheit == 'mps':
                    return Menge*0.514444444

                else:
                    print('Rechnung leider nicht möglich, überprüfen Sie die Eingaben!')
                    sys.exit()


         def convert_to_mph(Menge,input_einheit):
                if input_einheit == 'kn':
                    return Menge*0.868976242
                elif input_einheit == 'kmph':
                    return Menge*1.609344
                elif input_einheit == 'mps':
                    return Menge*0.44704

                 else:
                    print('Rechnung leider nicht möglich, überprüfen Sie die Eingaben!')
                    sys.exit()

        def convert_to_kmph(Menge,input_einheit):
                if input_einheit == 'mph':
                    return Menge*0.621371192
                elif input_einheit == 'kn':
                    return Menge*0.539956803
                elif input_einheit == 'mps':
                    return Menge*0.277777778

                 else:
                    print('Rechnung leider nicht möglich, überprüfen Sie die Eingaben!')
                    sys.exit()
      
        def convert_to_mps(Menge,input_einheit):
                if input_einheit == 'kmph':
                    return Menge*3.6
                elif input_einheit == 'mph':
                    return Menge*2.236936292
                elif input_einheit == 'kn':
                    return Menge*1.943844492

                 else:
                    print('Rechnung leider nicht möglich, überprüfen Sie die Eingaben!')
                    sys.exit()[code][code][code][/
Sirius3
User
Beiträge: 18269
Registriert: Sonntag 21. Oktober 2012, 17:20

Es gibt einen Kollegen von Dir, der gerade am gleichen Problem arbeitet. Einfach mal im Forum suchen.
Wenn Du Syntaxfehler erhältst, dann wäre es gut, wenn Du sie hier auch nennen würdest. Einrückung in Python ist wichtig, also ein Block wird durch einheitliche Einrückung festgelegt. Da der Code fast identisch ist, woher kommt der?
Johanna
User
Beiträge: 3
Registriert: Dienstag 29. Januar 2019, 20:41

@sirius3 Ja die hab ich nun auch gefunden, wir haben wohl eine gleiche Vorlage genutzt.

Ich habe jetzt leider erst ein grundlegendes Problem verstanden, mit der run Funktion. Und habe die Syntax Fehler beseitigt.


Ich bin leider noch auf keine Idee gekommen wie ich das Programm zum laufen bringen kann.
print ("Umrechner von Johanna Grote")
import sys
def main():
inp=input("Geben Sie die umzurechnende Zahl ein (Format: Zahl<Leerzeichen>Input-Einheit<Leerzeichen>Output-Einheit: ")
Menge=float(inp.split()[0])
input_einheit = inp.split()[1]
output_einheit = inp.split()[2]

input_einheit = was_ist_es_einheit(Input_Einheit)
output_einheit = was_ist_es_einheit(Out_Einheit)

print(converter(Menge,input_einheit,output_einheit),output_einheit)


def was_ist_es_einheit(EINHEIT):
Kn=['knoten','KNOTEN','Knoten','kn','Kn','KT','Kt','kt']
mps = ['Meter/Sekunde','meter/sekunde','m/s']
kmph = ['Km/h','km/h','KM/H']
mph = ['mph','MPH','mile/hour','MILE/Hour','Mile/Hour']



if EINHEIT in Kn:
return "Knoten"
elif EINHEIT in mps:
return "m/s"
elif EINHEIT in kmph:
return 'km/h'
elif EINHEIT in mph:
return 'mph'

else:print(' {} es handelt sich um keine definierte Einheit nur: Kn, mps,kmph oder mph'.format(EINHEIT))
sys.exit()

def converter(Menge,input_einheit,output_einheit):

def convert_to_kn(Menge,input_einheit):
if input_einheit == 'mph':
return Menge*1.150779448
elif input_einheit == 'kmph':
return Menge*1.852
elif input_einheit == 'mps':
return Menge*0.514444444

else:print('Rechnung leider nicht möglich, überprüfen Sie die Eingaben!')
sys.exit()


def convert_to_mph(Menge,input_einheit):
if input_einheit == 'kn':
return Menge*0.868976242
elif input_einheit == 'kmph':
return Menge*1.609344
elif input_einheit == 'mps':
return Menge*0.44704

else:print('Rechnung leider nicht möglich, überprüfen Sie die Eingaben!')
sys.exit()

def convert_to_kmph(Menge,input_einheit):
if input_einheit == 'mph':
return Menge*0.621371192
elif input_einheit == 'kn':
return Menge*0.539956803
elif input_einheit == 'mps':
return Menge*0.277777778

else:print('Rechnung leider nicht möglich, überprüfen Sie die Eingaben!')
sys.exit()

def convert_to_mps(Menge,input_einheit):
if input_einheit == 'kmph':
return Menge*3.6
elif input_einheit == 'mph':
return Menge*2.236936292
elif input_einheit == 'kn':
return Menge*1.943844492

else:print('Rechnung leider nicht möglich, überprüfen Sie die Eingaben!')
sys.exit()
Benutzeravatar
__blackjack__
User
Beiträge: 14040
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Johanna: „Wohl eine gleiche Vorlage benutzt“ ist die nette Umschreibung für „komplett geklaut“? :twisted:

Zu dem Code wurde im Thema von Deinem Kollegen ja schon einiges gesagt. Also ich würde *das* gar nicht zum laufen bringen wollen.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Benutzeravatar
ThomasL
User
Beiträge: 1378
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

__blackjack__ hat geschrieben: Donnerstag 31. Januar 2019, 12:36 .....Also ich würde *das* gar nicht zum laufen bringen wollen.
@Johanna und __blackjack__ bringt eigentlich alles zum Laufen, das sollte dir zu denken geben :shock:
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Antworten