2016-11-18 2 views
-2

Ich habe viele Antworten gesehen, die sagen, dass ich {} oder str() + verwenden soll, damit die Eingabe() nur 1 Argument erhält.Python "Eingang erwartet höchstens 1 Argumente, 3 erhalten"

Aber welche Teile des Eingangs müssen mit denen gehen? Dies ist mein Code

name.append(input("What is their name")) 
score.append(input("What did", name[x], "score")) 

Ich bin ziemlich sicher, die drei Argumente sind die „was tat“, „name [] x“ und „Score“ Wie würde ich diese ein Argument zu machen, während die gleiche Ordnung zu halten und Bedeutung?

+0

Sie können nur 1 Argument auf eine Liste anhängen .. –

+0

Bin ich nicht nur eine Sache an die Liste anhängen? Was auch immer der Benutzer setzt? –

+0

Versuchen Sie die Formatierung als @Philipp Ploder beantwortet. –

Antwort

3

Sie können die String-Format, so dass Sie nur 1 Argument übergeben:

score.append(input("What did %s score" % name[x])) 

Wenn Sie jedoch mehrere Argumente hinzufügen möchten dies tun:

score.append(input("%s scored %d points!" % (name[x], points))) 
+0

Okay! Das hat den Input behoben. Später, wenn ich versuche, den Mittelwert der 5 Werte zu drucken, heißt es "nicht unterstützte Operandentypen für /: 'str' und 'int'" Es ist eindeutig etwas falsch mit der Art der Dinge, die hinzugefügt werden zusammen (Alle Punkte in der Scoreliste), aber muss ich alle Elemente in dieser Liste in Floats ändern? –

+0

@roseratbest Ich habe meine Antwort angepasst,% s steht für Strings,% d steht für Ganzzahlen und% f steht für Fließkommawerte –

0

Sie sind drei Argumente insgesamt beim Hinzufügen die Funktion erwartet nur eine so nur ein Argument übergeben:

name.append(input("What is their name")) 
score.append(input("What did %s score" % name[x])) 
0

die % Syntax ist die alte Syntax. Probieren Sie die neue Syntax als auch

score.append(input("What did {} score".format(name[x]))) 

Diese Website hat einige gute Ausfälle gemeinsamer Nutzungen zwischen dem alten und dem neuen lernen: https://pyformat.info/

Verwandte Themen