【发布时间】:2015-11-03 11:24:09
【问题描述】:
我想问用户一个有默认答案的问题,例如:
How many apples do you want? [default 40]: 50
You have requested 50 apples.
如何以简洁、健壮的方式对它进行编码,以便在 Python 2 和 3 中使用?如何使默认值的显示方式看起来像上面显示的那样?
我有以下尝试的开始:
def interrogate_with_default(
prompt = None,
default = None
):
readline.set_startup_hook(lambda: readline.insert_text(default))
#readline.set_startup_hook(lambda: readline.insert_text(
# " [default: {default}]: ".format(
# default = default
# )
#))
try:
return get_input(prompt)
finally:
readline.set_startup_hook()
def get_input(
prompt = None
):
if sys.version_info >= (3, 0):
return input(prompt)
else:
return raw_input(prompt)
number_of_apples = interrogate_with_default(
prompt = "How many apples do you want?",
default = "40"
)
【问题讨论】:
标签: python python-3.x input default python-2.x