Verketten von string und int in python 3.4
Ich bin neu in Python, also habe ich das laufen durch mein eigenes set von übungen, um starten Sie einfach merken-basic-Funktionen und syntax. Ich bin mit Pycharm IDE und Python 3.4. Ich habe ein Problem beim ausführen durch einige grundlegenden str/int Verkettung übungen. Jede Instanz unten wirft ein unsupported operand type. Es gibt mehrere threads auf Stackoverflow, die eindeutig die richtige Verkettung der syntax, aber die oben genannten Fehlermeldung weiterhin plagen mich.
print ("Type string: ") + str(123)
print ("Concatenate strings and ints "), 10
InformationsquelleAutor apt-get | 2014-09-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bitte denkt daran (oder, wenn Sie es noch nicht wissen, Lesen Sie zu dem Thema), dass
print
ist eine Funktion in Python 3. In Python 2, die erste Zeile würde verketten "Typ " string": "und "123" und dann drucken. In Python 3, Sie sind dem Aufruf derprint
Funktion mit einem argument, das gibtNone
, und fügen Sie "123", um es. Das macht keinen Sinn.In der zweiten Zeile nicht, erzeugen einen Fehler in Python 2 oder 3 (ich habe es getestet mit 2.7.7 und 3.2.3). In Python 2, Sie bekommen
während in Python 3, sollte das Skript nur drucken,
Dies ist, weil wieder print ist eine Funktion, daher nennt man es mit dem argument "Verketten von strings und ints". Die
, 10
macht Ihre Zeile ein Tupel in der Rückgabewert vonprint
, dieNone
, und10
. Da Sie nicht verwenden, dass die Tupel für nichts, es gibt keine sichtbaren Auswirkungen.Ja, es gibt einige Unterschiede zwischen Python 2 und 3, was auch der Grund ist, dass Python 2 wird heute noch genutzt. Das Python-wiki eine Seite zum Thema. Für Lernzwecke ist es eigentlich egal. Nur kleben Sie auf eine version. Wenn Sie brauchen, Python 2 für ein bestimmtes Projekt sofort, die Verwendung von Python 2 learning material, ansonsten, stick auf Python 3. Nachdem Sie - die Sprache, können Sie ganz einfach lernen, die Unterschiede zwischen den beiden Versionen, wenn nötig.
InformationsquelleAutor Carsten
In Python 3+,
print
ist eine Funktion, so muss es genannt werden, mit den Argumenten in Runden Klammern. So zum Beispiel, was du meinst mit deinem Beispiel:wäre eigentlich das gleiche wie:
Seit
print
gibt nichts (in Python, das bedeutetNone
), ist dies gleichbedeutend mit:welche offenbar wird eine Fehlermeldung zu geben.
Dass gesagt wird über das, was Sie versucht zu tun, was Sie wollen tun, ist sehr einfach: übergeben Sie die
print
Funktion, was du meinst zu drucken, kann auf verschiedene Weise getan werden:InformationsquelleAutor Rafael Lerm
Versuchen
format()
:Diese syntax ist auch in 2.7. Alte Weg, es zu tun ist
print("Hello %s" % "world")
Dies ist in der Regel die bessere alternative zu verketten oder mehrere
print
Argumente, zum Teil, weil es vermeidet die Möglichkeit der Fragesteller das problem zu kommen... aber ohne eine Erklärung, wie warum es ist besser, es ist nicht viel von einer Antwort hier.InformationsquelleAutor gitaarik
Was ist daran falsch?
print
ist nur eine Funktion, wie alles andere auch. Und Sie fordern, dass die Funktion mit einem argument"Type string: "
, und dann versuchen, um das Ergebnis (dieNone
), um die Zeichenfolge'123'
. Das ist nicht zur Arbeit gehen. Wenn Sie wollte, die beiden strings zusammen, Sie haben, um Sie in der gleichen Ausdruck innerhalb der Klammern:Ähnlich:
Diese Anrufe
print
mit einem argument, und macht dann ein Tupel in derNone
zurückgegebenprint
und die Zahl 10. Wenn Sie übergeben möchten10
zu denprint
rufen, Sie gehen um im inneren des parens:Als rednaw Antwort Punkte heraus, mit
str.format
ist flexibler, und vermeidet die Möglichkeit, Probleme wie diese. Es gibt auch code, der funktioniert genau die gleiche Weise in beiden Python-2.6-2.7 und Python 3.x, die ist ziemlich nett, auch wenn Sie nicht versuchen, zu schreiben, dual-Plattform-/single-codebase code, denn es wird verständlich sein, auch für Menschen, die wissen nur das eine oder das andere.InformationsquelleAutor abarnert
Kannst du es so machen:
Ergebnis:
InformationsquelleAutor SnowBG
ich denke, das ist ziemlich cool Weg zum Verketten von string und int in python
InformationsquelleAutor sayalok