In Python einen Wert abfragen und diesen in Zentimetermaß ausgeben?
Ich sitze jetzt eine Weile an der Aufgabe von meinem Dozenten. Ich komme nicht auf die richtige Lösung. Alle Werte unter 100 oder 100 in cm auszugeben ist kein Problem, jedoch weiß ich nicht wie ich Angaben über 100 einmal in Meter UND Zentimeter ausgeben kann.
Die Aufgabe lautet:
"""
Schreiben Sie ein Programm, dass eine eingegebene Zahl als Zentimetermaß auffasst und geeignet formatiert wieder ausgibt.
Beispiel: 98 = 98 cm, 102 = 1 m 2 cm
"""
Ich wäre sehr dankbar wenn mir jemand erklären/zeigen könnte wie ich diese Aufgabe am Ende mit Elif/Else richtig bearbeiten kann, dass wie oben schon gesagt der Wert am Ende in Meter UND Zentimeter ausgegeben wird
5 Antworten
102 cm:
102/100 = 1,02 interpretiert als Integer -> 1 -> 1 m
102 - 1*100 = 2 -> 2 cm
Noch eine Möglichkeit:
eingabe = float(input('Zahl eingeben:'));
m = int(eingabe / 100);
cm = eingabe % 100;
print('Das sind %sm und %scm' % (m, cm));
Die Meter berechnest du, indem du die eingegebene Zahl durch 100 teilst und das Ergebnis in ein Integer castest (Nachkommastellen abschneiden).
Die Centimeter sind der Divisionsrest (Modulo) von der Eingegebenen Zahl und 100.
Ich verstehe aber nicht so ganz, wo du hier elif oder else verwenden willst ... ich verstehe nicht einmal, für was man überhaupt eine IF-Abfrage braucht. Klärst du mich auf, wenn du die Musterlösung hast?
Die IF-Abfragen (Verzweigungen) waren das generelle Thema der Aufgabe (hätte ich vlt. sagen sollen 🤔...)
Das hier ist meine Lösung:
a = input ("Geben Sie hier einen Wert in Zentimetermaß an: ")
b = 100
c = int(a)//100
d = int(a)%100
if int(a) <= b:
print (str(a) + " cm")
else:
print (str(c) + "m und " + str(d) + "cm")
Hm, ich würde das so machen
cm = input("Geben Sie hier den Wert in CM ein: ")
m = int(cm/100)
cm-= m*100
print("Das sind " + m + " Meter und " + cm + " Zentimeter.")
cm = 1234
m, cm = divmod(cm, 100)
print('Meter:', m) # 12
print('Zentimeter:', cm) # 34
Hm, ich würde das so machen
cm = input("Geben Sie hier den Wert in CM ein: ")
m = int(cm/100)
cm-= m*100
print("Das sind " + m + " Meter und " + cm + " Zentimeter.")
Wenn größer 100
ZahlInCM / 100 = y
y = Meter
ZahlInCM - y = restliche CM
Ist keine Musterlösung.