Python :: Aufgabe #1 :: Lösung #10
33 Lösungen

#1
Multiplikation ohne zu multiplizieren
Anfänger - Python
von Gustl
- 11.11.2012 um 17:24 Uhr
Erstellen Sie ein Konsolenprogramm welches dem Benutzer auffordert 2 Zahlen einzugeben, diese sollen dann multipliziert werden, jedoch ist nur die Grundrechenart Addition erlaubt.
Wenn einer der 2 Zahlen keine Zahl ist, soll eine Fehlermeldung ausgegeben werden und der Benutzer noch einmal aufgefordert werden eine Zahl einzugeben.
Wenn einer der 2 Zahlen keine Zahl ist, soll eine Fehlermeldung ausgegeben werden und der Benutzer noch einmal aufgefordert werden eine Zahl einzugeben.
#10

von AnnaIhrs (460 Punkte)
- 02.06.2016 um 17:26 Uhr

# -*- coding: cp1252 -*- # program to multiply 2 numbers whithout realy multypling in german language # programm zur berechnung von 2 zahlen ohne wirklich 'nur' zu multiplizieren # introduce program to user # dem benutzer das programm vorstellen print("Hallo!!!") print("Ich bin ein Programm zum multiplizieren zweier Zahlen.") print("Ich kann zwei ganze Zahlen(ohne Komma), oder auch eine Zahl ") print("mit Komma und eine Zahl ohne Komma miteinander multiplizieren.") print("Zwei Zahlen zu multiplizieren die jeweils ein Komma haben ist mir") print("leider nicht möglich.... :( ^^") # install posibility for runing program more then once if its users wish # ermöglichung das programm öfter als einmal laufen zu lassen falls das gewünscht wird j = "1" while j == "1" or j == "nein": # ask user for the first figure to multiply accept onely integer number # no programfailure possible # benutzer nach der ersten zahl fragen, nur ganzzahlen möglich # programm abbruch durch falsche eingabe nicht möglich while(1): try: a = int(input("Bitte die erste zu berechnende Zahl eingeben (ohne Komma!!!). : ")) break except: print("Eingabe war leider keine Zahl ohne Komma....") print("Also nochmal!!!") # ask user for the second figure to multiply no programfailure possible # allow to use ',' like its normal for type 2,345 for numbers # benutzer nach der ersten zahl fragen, programm abbruch durch falsche eingabe # nicht möglich, erlaubt die zahlen auch mit ',' einzugeben so wie es normale # ist zahlen zu schreiben 2,3445 while(1): print("Bitte die zweite zu berechnende Zahl eingeben,") b = input("gerne auch mit einem Komma. ;) : ") if "," in b: b = b.replace(",", ".") try: b = float(b) break except: print("Eingabe war leider keine Zahl....") print("Also nochmal!!!") elif "." in b: try: b = float(b) break except: print("Eingabe war leider keine Zahl....") print("Also nochmal!!!") else: try: b = int(b) break except: print("Eingabe war leider keine Zahl....") print("Also nochmal!!!") # enable c for containing addition and result # erstelle c um in ihr mittels addition das ergebnis zu erzielen c = 0 # loop to supplant multiplication # schleife um multiplikation zu ersetzen for i in range(a): c = c + b # because of some minimal trouble, like 10 * 0.4 = 3.9999999999999996 # or 90 * 0.01 = 0.9000000000000006 i made up my mind for following fix # aufgrund minimaler ungenauigkeitn wie z.b. 10 * 0.4 = 3.9999999999999996 # oder 90 * 0.01 = 0.9000000000000006 habe ich mir folgende lösung ausgedacht typefloat = 1.234 if type(b) == type(typefloat): b1 = str(b) bteile = b1.split(".") r = len(bteile[1]) c = round(c, r + 1) # output result # ausgabe des ergebnis print("Das Ergebnis von", a,"mal", b,"ist:" ,c) # ask user for new round of program, no programfailure possible by false user input # benutzer befragen ob eine weitere berechnung vorgenommen werden soll # programmabruch durch falsche eingabe nicht möglich z = -1 print("Möchtest du noch weitere Zahlen multiplizieren???") while(1): z += 1 if z == 0: j1 = input("Dann bitte 'ja' oder '1' eingeben, falls nicht 'nein', oder '0': ") else: j1 = input("Bitte 'ja' oder '1' eingeben, falls nicht 'nein', oder '0': ") if j1 == "ja" or j1 == "Ja" or j1 == "JA" or j1 == "jA" or j1 == "1": break elif j1 == "nein" or j1 == "Nein" or j1 == "NEIN" or j1 == "NEin" or j1 == "neiN" or j1 == "0": j = "0" break else: print("Leider konnte ich deine Eingabe nicht zuordnen, bitte noch mal!")
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1