int() vs float() Eingaben in Python 3 und Ihr nutzen?
Das bezieht sich nicht auf einen bestimmten code von mir, so dass ich hoffe, dies wird nicht trotzen community-standards, Fragen zu stellen. Ich bin immer noch lernen, also bitte lassen Sie mich wissen, wenn diese Art der Frage ungeeignet ist, für zukünftige Referenz!
Ich versuche zu gewinnen ein gründliches Verständnis der Nützlichkeit von bestimmten Befehlen, wie ich begeben Sie sich auf das lernen mit Python 3. Ich habe noch nie codiert vor, so dass ich nicht haben hintergrund in einer anderen Sprache. Ich hatte gehofft, jemand könnte mir helfen zu verstehen diese gründlich.
Grundsätzlich, ich verstehe, dass, wenn eine Aufforderung zur Eingabe eines Benutzers mit einem numerischen Wert, es ist manchmal richtig schreiben float(input())
, und manchmal richtig zu schreiben int(input())
. Ich weiß, in der Mathematik, dass ein integer ist eine ganze Zahl, und eine floating-point-Zahl ist jede Zahl definiert, die mit einem gesamten Teil, ein radix, und eine Mantisse (wie 4.32). Ich verstehe nicht den nutzen der Umwandlung einer Benutzereingabe auf eine oder die andere.
Zum Beispiel, wenn ich Schreibe int(input("Input a decimal. "))
und die Eingaben des Benutzers 4.3, wird das Programm einen Wert zurückgeben Fehler. Was ist der nutzen in diesem? Also:
- Was ist das Werkzeug, bei der Umwandlung einer
input()
zufloat()
oderint()
? - Ich verstehen, wenn ich wollen würde, dass ein integer-Wert (e.g; wenn ich will, dass die Benutzer zur Eingabe, wie viele Male zu multiplizieren, bei einer bestimmten Anzahl von selbst), aber warum würde ich wollen, eine floating-point-input?
- Im Allgemeinen, Wann brauche ich zur Umsetzung, und wie kann ich erkennen, das man ein Programm braucht?
- Abgesehen von Benutzereingaben, was in anderen Allgemeinen Fällen würde ich umsetzen wollen, entweder auf Befehl?
- Wenn jemand irgendwelche zusätzliche Lektüre, wie und Wann zu konvertieren, bestimmte definierte Variablen oder Eingaben, bitte senden Sie meinen Weg!
EDIT:
Hier ist ein Beispiel mit einem code, den ich geschrieben habe, dass ich denke, die highlights meiner Verwirrung darüber, ob und Wann int()
und float()
:
price=input("How much did the item cost?: $")
if float(price)<0:
print("The price cannot be negative.")
else:
price=int(float(price)*100)
paid=input("How much did the customer pay?: $")
paid=int(float(paid)*100)
Habe ich alles richtig mache? Die größere Programm, von dem diese ein Teil funktioniert gut, aber ich bin mir nicht sicher, ob ich Hinzugefügt unnötigen Befehl oder implementiert die Befehle korrekt.
Danke Ihnen so sehr für Ihre Hilfe!
Naomi
- Ich denke, das ist etwas, das würde wahrscheinlich besser sein, diskutiert im chat, sicher ein breites Thema, aber ich habe nicht die Stimme zu nah als zu weit gefasst.
- Sind Sie vertraut mit, wie Gleitkommazahlen und Ganzzahlen dargestellt werden, in einem computer auf der Ebene von bits und bytes? Ich fühle mich, als ob das Informationen sind hilfreich bei der Gewinnung von Verständnis, einige der Feinheiten, die Speicherung der Integer vs. floating point-zahlen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Er hat nichts über Dienstprogramm, mit dem zu tun hat was sind die möglichen Werte, die Sie Programmieren soll/muss, zu akzeptieren.
Wenn es muss akzeptieren, dass beide ganze zahlen und Gleitkommazahlen als Eingabe, dann sollten Sie zu konvertieren
float
da schwimmt, kann für den ganzen zahlen.Wenn Sie aber das Programm erfordert, dass die Eingabe sein, die spezifisch eine ganze Zahl, dann sollten Sie das casting auf
int
.EDIT:
In deinem Beispiel, sollten Sie immer mit
float
, da Geld einen decimal-Wert.Wenn Sie wurden gefragt, "Wie viele Bananen hast du gekauft?" Sie wollen, um zu konvertieren, um
int
da diese Werte werden0, 1, 2, 3, 4, ...
. Und wenn Sie dann Fragen: "Wie viel hast du bezahlt für diese Bananen?" Sie wollen, um zu konvertieren, umfloat
da diese Eingänge können im Bereich von3.15, .77, 1, 1.00, ...
etc.float()
ist fast wie eine Obermenge vonint()
? Wann nutze ichfloat()
dann, wenn ich Sie benötige der Nutzer zur Eingabe eines numerischen Wertes? Auch ich bearbeitet meine Frage, um eine batch-code, in dem ich denke, ich kann dazu missbraucht hat, die diese Befehle aber ich bin mir nicht sicher. Ich danke Ihnen so sehr für Ihre Hilfe!float
seit Geld können einen decimal-Wert.float
, schnappen Sie sich die Nummer. Sie sind dann die Umwandlung in die kleinste Einheit der Währung und damit einint
, das ist der richtige Weg zu gehen.price=float(str(price)*100)
undpaid=float(str(paid)*100)
?float
s, Sie schuldig nicht genau 10 Cent.int
undfloat
richtig und Sie erzählte Ihnen, etwas zu tun, das führt zu seltsamen Problemen.float
- und sonst nichts. Wenn diese Antwort ist nicht falsch, es ist zu unklar und irreführend, zumindest.0.3 - 0.2 == 0.1
in Ihrem Python-interpreter, und betrachten Sie das Ergebnis. Dann versuchen30 - 20 == 10
.float()
lassen Sie konvertieren die Eingabe des Benutzers in eine Anzahl für die weitere Verarbeitung, wie Sie tun, aber die Währung Berechnungen werden am besten mit ganzen zahlen, wie Sie auch tun.'floating point errors'
und Lesen. Wenn die Berechnungen mit Geld inpython
die gängige Praxis ist die Verwendung derdecimal
- Bibliothek, die Sie Lesen können, bis auf hier docs.python.org/2/library/decimal.html'3'
durch'2'
in Python.float
.Implementieren Sie die Fehlerprüfung mit der Funktion versuchen. Der einzige Grund für die Verwendung einer int vs. float wäre, wenn Sie versuchen, um Speicherplatz zu sparen, im Falle von embedded ROM, wo Sie sind extrem begrenzt.