python用户输入提示工具包
askp的Python项目详细描述
askpy是一个模块,它为python收集原始输入 程序更加健壮。它支持创建提示、条件 问题、验证和转换回答。
安装
安装askpy非常简单:
pip install askpy
用法
askpy的核心是建立问题并为 终端应用程序中的用户。
from askpy import Prompt prompt = Prompt() my_question = prompt.make_question('name', 'What is your name?') prompt.add(my_question) prompt.collect() name = prompt.get_response('name')
虽然上面的代码可能隐藏了原始输入,但它不会给你更多的能量 比你在标准库中使用的还要多。Askpy允许您 轻松验证和转换您的回答:
from askpy import Prompt, Validator prompt = Prompt() question = prompt.make_question('age', 'How old are you?') \ .must(Validator.num_gt(20)) \ .transform(int) prompt.add(question) prompt.collect() question = prompt.get_response('question')
上面的例子将确保用户进入20岁以上的年龄 否则就会责备他们。一旦它有一个有效的年龄,它就会把它 一个整数,供以后使用。
还有更多。
有时问题取决于其他人,为了处理这些案件 您通常依赖于条件语句和解析。与Askpy 你可以通过链式提问来做到这一点。
from askpy import Prompt, ValidationError, Validator prompt = Prompt() def validate_even(num): Validator.num(num) if int(num) % 2 != 0: raise ValidationError('Please choose an even number') def validate_odd(num): Validator.num(num) if int(num) % 2 == 0: raise ValidationError('Please choose an odd number') even_or_odd = prompt.make_question('even_or_odd', 'Do you prefer even or odd numbers?') \ .must(Validator.one_of(['even', 'odd'])) even_question = prompt.make_question('even', 'What is your favorite even number?') \ .must(validate_even) \ .transform(int) odd_question = prompt.make_question('odd', 'What is your favorite odd number?') \ .must(validate_odd) \ .transform(int) prompt.add(even_or_odd) \ .then(lambda resp: resp == 'even', even_question, odd_question) prompt.collect()
如您所见,您可以得到明确的提示,并能够保持 代码正常。