最初にプログラムを実行してから、コマンドラインでユーザーの入力を待つことは可能ですか?例えば.
Run...
Process...
Input from the user(in command line form)...
Process...
OPが何を意味したのかはまったく明確ではありません(コメントの前後を何度か行った後でも)が、質問の考えられる解釈に対する2つの答えがあります。
Python 2.xのraw_input
およびPython 3.のinput
を使用します(これらは組み込まれているため、何もインポートする必要はありませんそれらを使用してください;あなたのPythonのバージョンに適切なものを使用するだけです。)
例えば:
user_input = raw_input("Some input please: ")
詳細は こちら をご覧ください。
したがって、たとえば、次のようなスクリプトがあるとします
# 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)
これをfoo.py
に保存した場合は、コマンドラインからスクリプトを呼び出すだけで、tok tiktok
が出力され、入力を求められます。 bar baz
(Enterキーが後に続く)を入力すると、bar baz
が出力されます。これは次のようになります。
$ python foo.py
tok tiktok
Some input please: bar baz
bar baz
ここで、$
はコマンドラインプロンプトを表し(実際には入力しない)、入力を求められたときにbar baz
と入力した後、Enter
を押します。
foo.py
という名前のスクリプトがあり、次のようなコマンドラインから引数bar
およびbaz
を指定して呼び出すとします。
$ foo.py bar baz
(繰り返しますが、$
はコマンドラインプロンプトを表します。)それから、スクリプトで次のように実行できます。
import sys
arg1 = sys.argv[1]
arg2 = sys.argv[2]
ここでは、変数arg1
には文字列'bar'
が含まれ、arg2
には'baz'
が含まれます。オブジェクトsys.argv
は、コマンドラインからのすべてを含む単なるリストです。 sys.argv[0]
はスクリプトの名前であることに注意してください。また、たとえば、すべての引数の単一のリストが必要な場合は、sys.argv[1:]
を使用します。
the_input = raw_input("Enter input: ")
以上です。
さらに、入力のリストを作成する場合は、次のようなことができます。
a = []
for x in xrange(1,10):
a.append(raw_input("Enter Data: "))
その場合、9つのアイテムをリストに保存するためにデータを10回要求されます。
出力:
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']
そのリストを基本的な方法で検索できます(リストを作成した後)。
if '2' in a:
print "Found"
それ以外の場合:「見つかりません」と出力します。
次のように、「2」を「raw_input()」に置き換えることができます。
if raw_input("Search for: ") in a:
print "Found"
else:
print "Not found"
コマンドラインから入力するファイルから入力を取得する場合(通常、Google Code JamやACM/IBM ICPCなどの競技会でコードの問題を行うときに必要なものです):
example.py
while(True):
line = raw_input()
print "input data: %s" % line
コマンドラインインターフェースで:
example.py < input.txt
お役に立てば幸いです。
Python 3を使用している場合、raw_input
はinput
に変更されました
Python 3の例:
line = input('Enter a sentence:')
次の行でスクリプトを開始します。スクリプトが最初に実行され、pythonコマンドプロンプトが表示されます。この時点で、すべての変数と関数は、インタラクティブな使用と呼び出しに使用できます。
#!/ usr/bin/env python -i