2016-08-04 6 views
0

Ich bin ziemlich neu bei Python und versuche, ein kleines Spiel zu erstellen, nur um meine Fähigkeiten zu entwickeln, aber ich lief in eine Codezeile, die ich einfach nicht herausfinden kann.Wie kann ich zwei Argumente in eine Zeichenfolge für eine Eingabefunktion in Python setzen?

r = str(input("Player 1 please enter a integer between 1 and 10: ")) 

Ich habe eine andere Linie, die früher geht und fragt den Spieler nach einem Namen.

name = input('Player 1 what is your name? ')

aber ich will es so, dass, anstatt es zu sagen

r = str(input("Player 1 please enter a integer between 1 and 10: "))

, dass es sagt der Name des Spielers ich von dem Eingang stand früher im Code? Wie kann ich das tun?

Antwort

1

können Sie verwenden die formated string:

r = str(input("%s please enter a integer between 1 and 10: " % player_name)) 

input erwartet einen String. Also konstruierst du zuerst eine geeignete Zeichenfolge und übergibst sie dann. Vereinfachtes Beispiel für %

"%s is good" % "he" # transforms to "he is good" 

% Es ist eine Art von Substitutionsoperation mit Typprüfung, zum Beispiel. %s gibt den Zeichenfolgetyp an.

1

Sie können dafür die Formatierung von Zeichenfolgen verwenden.

r = str(input("%s please enter a integer between 1 and 10: " % name)) 
1

empfehle ich, dass Sie (nach PEP-3101) verwenden:

r = str(input('{} please enter a integer between 1 and 10: '.format(name))) 

Statt den Modulo-Operator der Verwendung (%) wie:

r = str(input("%s please enter a integer between 1 and 10: " % name)) 
+0

Das hat funktioniert! Danke – ABeast103

+0

Dann markieren Sie es als gelöst! –

+0

http://meta.stackexchange.com/questions/111630/how-to-mark-a-question-on-so-as-resolved –

1

Sie können dies auch tun, da Sie arbeiten mit Ganzzahlen:

Diese Lösung funktioniert jedoch nur in Python 2

player_name = raw_input("What is your name") 
r = int(input("%s Enter a number:" % player_name)) 
Verwandte Themen