Stunden zu Sekunden umrechnen

Code-Stücke können hier veröffentlicht werden.
Antworten
Andre589
User
Beiträge: 2
Registriert: Dienstag 23. Oktober 2018, 14:31

Dienstag 23. Oktober 2018, 14:37

Hallo zusammen ich habe angefangen mit Python zu arbeiten und bin gerade dabei Übungsaufgaben aus einem Script zu bearbeiten. Allerdings habe ich ein Problem bei einer Umrechnung. Ich möchte vom Nutzer eine Eingabe erhalten und diese ist dann in Stunden. Die möchte ich dann in Sekunden umrechnen und als Sekunden ausgeben. Des weiteren soll man auch noch Minuten sowie Sekunden eingeben und am Ende eine Gesamtsumme als Sekunden haben.

print("Zeit in Stunden eingeben")
a = input()
print ("Zeit in Minuten eingeben")
b = input()
print("Zeit in Sekunden eingeben")
c = input()
#Umrechnung von Stunde zu Minute zu Sekunde
a = a*60*60
#Umrechnung von Minute zu Sekunde
b = b*60

sekunden = a+b+c

print(sekunden)

Soweit habe ich das geschrieben, aber das Ergebnis ist halt nie richtig. Kann mir jemand erklären was ich falsch mache?
Benutzeravatar
__blackjack__
User
Beiträge: 1401
Registriert: Samstag 2. Juni 2018, 10:21

Dienstag 23. Oktober 2018, 15:35

@Andre589: Du multiplizierst Zeichenketten mit Zahlen und addierst Zeichenketten. Das ist halt etwas anderes als Zahlen mit Zahlen zu multiplizieren.

Code: Alles auswählen

In [3]: '42' * 5
Out[3]: '4242424242'

In [4]: '47' + '11'
Out[4]: '4711'

In [5]: 42 * 5
Out[5]: 210

In [6]: 47 + 11
Out[6]: 58

Code: Alles auswählen

    **** COMMODORE 64 BASIC V2 ****
 64K RAM SYSTEM  38911 BASIC BYTES FREE
   CYBERPUNX RETRO REPLAY 64KB - 3.8P
READY.
█
Andre589
User
Beiträge: 2
Registriert: Dienstag 23. Oktober 2018, 14:31

Dienstag 23. Oktober 2018, 15:47

Achso, ich hatte die Eingabe nicht als Zahl gecastet.

Code: Alles auswählen

a = int (input())
Das wäre ja eine möglichkeit, die Sache dann zu lösen
Benutzeravatar
__blackjack__
User
Beiträge: 1401
Registriert: Samstag 2. Juni 2018, 10:21

Dienstag 23. Oktober 2018, 16:45

@Andre589: An Stelle von `a`, `b`, und `c`, sollte man auch bessere Namen verwenden. So ein Name soll dem Leser vermitteln was der Wert bedeutet. Möglichst auch ohne den Code nachvollziehen zu müssen, denn genau dabei sollen Namen ja helfen. :-)

Die Aufforderung zur Eingabe kann man auch `input()` als Argument übergeben. Dann spart man sich die `print()`-Aufrufe.

Code: Alles auswählen

    **** COMMODORE 64 BASIC V2 ****
 64K RAM SYSTEM  38911 BASIC BYTES FREE
   CYBERPUNX RETRO REPLAY 64KB - 3.8P
READY.
█
Antworten