2017-02-25 10 views
0

Ich bin ein Programmierer Anfänger versuchen, Python zu lernen. Ich versuche, die folgende Übung:Python, wie man Ergebnisse von Eingabezeichenfolgen multipliziert

Write a program to prompt the user for hours and rate per hour to compute gross pay.

Hier ist, was ich kam mit:

hours = input("Enter number of hours worked\n") 
rate = input("Enter pay rate per hour\n") 
print(hours * rate) 

Natürlich erhalte ich die Fehlermeldung:

TypeError: can't multiply sequence by non-int of type 'str' 

Wie kann ich sagen, Python, dass die Ergebnisse der Eingabe als Ganzzahlen und nicht als Strings betrachtet werden sollten?

Antwort

0

Jede Eingabe von der Eingabefunktion als String gespeichert ist, müssen Sie sie beide auf ganze Zahlen konvertieren, bevor wie folgt multipliziert:

hours = input("Enter number of hours worked\n") 
hours = int(hours) 
rate = input("Enter pay rate per hour\n") 
rate = int(rate) 
print(hours * rate) 
2

Natürlich können Sie vor der Multiplikation zu entsprechenden Typ umwandeln müssen, da die Eingabe ("") gibt die Zeichenfolge der Benutzereingabe zurück.

Die Umwandlung ist wie folgt:

rate -> float 
hours -> int 

Dies ist sicher zu stellen, dass Sie nicht verlieren Dezimalpunkten tun, wo Benutzer-Rate eingeben mit Dezimalzahlen zB 2,2

So aus dem Code können Sie fügen Sie das folgende

hours = int(input("Enter number of hours worked\n")) 
rate = float(input("Enter pay rate per hour\n")) 
print(hours * rate) # int * float gives float 
0

Problem gelöst:

hours = int(input("Enter number of hours worked\n")) 
rate = int(input("Enter pay rate per hour\n")) 

Ich dachte, die Int-Funktion musste irgendwo dort platziert werden.

+0

Whoa! Ich wurde nicht benachrichtigt, dass ich einige Antworten erhalten habe. Jetzt sehe ich, dass es verschiedene Möglichkeiten gibt, dies zu tun. Vielen Dank an alle. –

Verwandte Themen