Ist es möglich, zuerst das Programm auszuführen, dann auf die Eingabe des Benutzers in der Befehlszeile zu warten.
Run...
Process...
Input from the user(in command line form)...
Process...
Es ist überhaupt nicht klar, was das OP bedeutete (selbst nach einigem Hin und Her in den Kommentaren), aber hier sind zwei Antworten auf mögliche Interpretationen der Frage:
Verwenden Sie raw_input
in Python 2.x und input
in Python 3. (Diese sind integriert, sodass Sie nichts importieren müssen, um sie zu verwenden; Sie müssen nur das richtige für Ihre Python-Version verwenden.)
Zum Beispiel:
user_input = raw_input("Some input please: ")
Weitere Details finden Sie hier .
So haben Sie beispielsweise ein Skript, das so aussieht
# First, do some work, to show -- as requested -- that
# the user input doesn't need to come first.
from __future__ import print_function
var1 = 'tok'
var2 = 'tik'+var1
print(var1, var2)
# Now ask for input
user_input = raw_input("Some input please: ") # or `input("Some...` in python 3
# Now do something with the above
print(user_input)
Wenn Sie dies in foo.py
gespeichert haben, können Sie das Skript einfach von der Befehlszeile aus aufrufen, es würde tok tiktok
ausdrucken und dann um Eingabe bitten. Sie könnten bar baz
eingeben (gefolgt von der Eingabetaste) und es würde bar baz
drucken. So würde das aussehen:
$ python foo.py
tok tiktok
Some input please: bar baz
bar baz
Hier steht $
für die Befehlszeilen-Eingabeaufforderung (damit geben Sie das nicht wirklich ein), und ich drücke Enter
, nachdem Sie bar baz
eingegeben haben, als es nach einer Eingabe gefragt hat.
Angenommen, Sie haben ein Skript namens foo.py
und möchten es mit den Argumenten bar
und baz
von der Befehlszeile aus aufrufen
$ foo.py bar baz
(Wiederum $
steht für die Eingabeaufforderung der Befehlszeile.) Anschließend können Sie dies in Ihrem Skript folgendermaßen tun:
import sys
arg1 = sys.argv[1]
arg2 = sys.argv[2]
Hier enthält die Variable arg1
die Zeichenfolge 'bar'
und arg2
'baz'
. Das Objekt sys.argv
ist nur eine Liste, die alles aus der Befehlszeile enthält. Beachten Sie, dass sys.argv[0]
der Name des Skripts ist. Wenn Sie beispielsweise nur eine einzige Liste aller Argumente wünschen, verwenden Sie sys.argv[1:]
.
the_input = raw_input("Enter input: ")
Und das ist es.
Wenn Sie eine Liste mit Eingaben erstellen möchten, können Sie Folgendes tun:
a = []
for x in xrange(1,10):
a.append(raw_input("Enter Data: "))
In diesem Fall werden Sie 10 Mal nach Daten gefragt, um 9 Elemente in einer Liste zu speichern.
Ausgabe:
Enter data: 2
Enter data: 3
Enter data: 4
Enter data: 5
Enter data: 7
Enter data: 3
Enter data: 8
Enter data: 22
Enter data: 5
>>> a
['2', '3', '4', '5', '7', '3', '8', '22', '5']
Sie können diese Liste grundsätzlich wie folgt durchsuchen (nachdem Sie diese Liste erstellt haben):
if '2' in a:
print "Found"
sonst: print "Nicht gefunden".
Sie können '2' durch "raw_input ()" wie folgt ersetzen:
if raw_input("Search for: ") in a:
print "Found"
else:
print "Not found"
Wenn Sie die Eingabe aus einer Datei übernehmen möchten, die Sie über die Befehlszeile eingeben (was normalerweise erforderlich ist, wenn Sie Code-Probleme für Wettbewerbe wie Google Code Jam oder das ACM/IBM ICPC ausführen)
example.py
while(True):
line = raw_input()
print "input data: %s" % line
In der Befehlszeilenschnittstelle:
example.py < input.txt
Hoffentlich hilft das.
Wenn Sie Python 3 verwenden, wurde raw_input
in input
geändert.
Python 3-Beispiel:
line = input('Enter a sentence:')
Starten Sie Ihr Skript mit der folgenden Zeile. Das Skript wird zuerst ausgeführt und dann wird der Python-Befehl Prompt angezeigt. An diesem Punkt stehen alle Variablen und Funktionen für die interaktive Verwendung und für Aufrufe zur Verfügung.
#!/usr/bin/env python -i