Konvertieren von strings in int-oder float in Python 3?
integer = input("Number: ")
rslt = int(integer)+2
print('2 + ' + integer + ' = ' + rslt)
double = input("Point Number: ")
print('2.5 + ' +double+' = ' +(float(double)+2.5))
Gibt mir
Traceback (most recent call last):
File "C:\...", line 13, in <module>
print('2 + ' + integer + ' = ' + rslt)
TypeError: Can't convert 'int' object to str implicitly
Ich bin ziemlich neu in der Programmierung und mein hintergrund ist meist nur die Grundlagen von C# so weit. Ich wollte versuchen, zu lernen von Python durch das tun alle meine C# Projekte in Schulen, auf Python. Ich bin verwendet, um die einfache syntax von C#, die würde in etwa so Aussehen:
int integer = Convert.ToInt32(Console.ReadLine())
oder
double double = Convert.ToDouble(Console.ReadLine())
Die eine Benutzer-Eingabe-string und wandelt es zu dem, was ich angegeben.
Ich denke, ich lese py2.x hat einen Befehl namens raw_input, die ein wenig besser funktioniert als die input-Befehl von py3.x in diesem Zusammenhang.
War ich versucht, mich selbst zu finden ein ähnliches format wie die, die ich gewohnt bin in C# zu verwenden, in Python, aber es beweist, erstaunlich schwer, nur eine Methode finden, konvertieren Sie die Benutzer-Eingabe-string in ein integer-nach all dem googeln und versuchen, alles, was ich denken konnte (und das ich über google gefunden), habe ich beschlossen, es war Zeit, Sie zu Fragen. Können Sie mir helfen?
Warum sollte ich eher die Verwendung von string-Formatierung als nur ein Komma?
Die wichtigsten Gründe für die Verwendung eines format-Strings über Kommas sind WYSIWYG (Sie können sofort sagen, was deine Ausgabe sieht so aus
'2 + {} = {}'
) und mehr Kontrolle, auch bei einfachen Fällen, Sie haben, um mit zusätzlichen Leerzeichen Sie erhalten von Kommas). Weniger wichtige Gründe (zumindest für Sie), dass die Formatierung einfacher zu verwenden, mit dynamischen Werten, die leichter zu internationalisieren, und mehr tragbar zwischen Python 2.x-und 3.x. (Wenn Sie schreiben print(1,2)
erhalten Sie 1 2
im 3.x, aber (1, 2)
im 2.x.)InformationsquelleAutor Rabcor | 2013-03-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie konvertiert den integer in einen string:
Oder übergeben Sie Sie als argument an
print
- und print-wird es für Sie tun:Ich würde es mit string-Formatierung:
InformationsquelleAutor Blender
Dein problem ist nicht mit der Umwandlung der Eingabe in eine Ganzzahl. Das problem ist, dass, wenn Sie schreiben
' = ' + rslt
Sie versuchen, fügen Sie eine ganze Zahl in eine Zeichenfolge, und Sie können das nicht tun.Haben Sie ein paar Optionen. Sie können konvertieren
integer
undrslt
wieder in strings hinzufügen, um Sie der rest der Zeichenfolge:Oder Sie können einfach drucken Sie mehrere Dinge:
Oder die Verwendung von string-Formatierung:
InformationsquelleAutor BrenBarn
In Python 3.x -
input
ist das äquivalent zu Python 2.xraw_input
...Sollten Sie Hilfe von string-Formatierung für diese - und führen einige Fehler überprüfen:
Weitere option - das wirkt ein wenig verworren ist, damit der Dolmetscher seine beste Schätzung auf den Wert, und erhöhen Sie dann etwas, das nicht
int
oderfloat
:Dies ermöglicht ein bisschen mehr Flexibilität, wenn Sie wollte, komplexe zahlen oder Listen oder Tupel als Eingabe für eine Instanz...
sind Sie sicher? (edit: ja - ich habe nicht fügen Sie die letzten
)
...)InformationsquelleAutor Jon Clements
Wenn Sie möchten, konvertieren Sie einen Wert in eine ganze Zahl, verwenden Sie die
int
eine eingebaute Funktion, und konvertieren Sie einen Wert in eine Gleitkommazahl verwenden Sie diefloat
eine eingebaute Funktion. Dann können Sie diestr
eingebaute Funktion, um diese Werte zu konvertieren zurück zu strings. Die integrierte Funktioninput
gibt Saiten, so verwenden Sie diese Funktionen in code wie diesem:InformationsquelleAutor murgatroid99
InformationsquelleAutor jurgenreza