Python2.7 は raw_input を取得し、デフォルト値を設定します:
これを a.py というファイルに入れます。
import readline
def rlinput(prompt, prefill=''):
readline.set_startup_hook(lambda: readline.insert_text(prefill))
try:
return raw_input(prompt)
finally:
readline.set_startup_hook()
default_value = "an insecticide"
stuff = rlinput("Caffeine is: ", default_value)
print("final answer: " + stuff)
プログラムを実行すると、プログラムが停止し、ユーザーに次のメッセージが表示されます。
el@defiant ~ $ python2.7 a.py
Caffeine is: an insecticide
カーソルは最後にあり、ユーザーは「殺虫剤」がなくなるまでバックスペースを押し、別の何かを入力してから、Enter キーを押します。
el@defiant ~ $ python2.7 a.py
Caffeine is: water soluable
プログラムは次のように終了し、最終的な回答はユーザーが入力したものを取得します。
el@defiant ~ $ python2.7 a.py
Caffeine is: water soluable
final answer: water soluable
上記と同等ですが、Python3 で動作します:
import readline
def rlinput(prompt, prefill=''):
readline.set_startup_hook(lambda: readline.insert_text(prefill))
try:
return input(prompt)
finally:
readline.set_startup_hook()
default_value = "an insecticide"
stuff = rlinput("Caffeine is: ", default_value)
print("final answer: " + stuff)
ここで何が起こっているかについての詳細情報:
https://stackoverflow.com/a/2533142/445131