当前位置:嗨网首页>书籍在线阅读

08-项目_如何让人忙几小时

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

8.2 项目:如何让人忙几小时

让我们利用 PyInputPlus 创建一个执行以下操作的简单程序。

1.询问用户是否想知道如何让人忙几小时。

2.如果用户回答no,退出。

3.如果用户回答yes,转到步骤1。

当然,我们不知道用户是否会输入“yes”或“no”以外的内容,因此我们需要执行输入验证。用户也可以输入“y”或“n”,而不用输入完整的单词。 PyInputPlusinputYesNo() 函数将为我们处理此问题,无论用户输入什么大小写,均返回小写的 'yes''no' 字符串值。

运行该程序时,它应如下所示:

Want to know how to keep a person busy for hours?
sure
'sure' is not a valid yes/no response.
Want to know how to keep a person busy for hours?
yes
Want to know how to keep a person busy for hours?
y
Want to know how to keep a person busy for hours?
Yes
Want to know how to keep a person busy for hours?
YES
Want to know how to keep a person busy for hours?
YES!!!!!!
'YES!!!!!!' is not a valid yes/no response.
Want to know how to keep a person busy for hours?
TELL ME HOW TO KEEP A PERSON BUSY FOR HOURS.
'TELL  ME  HOW  TO  KEEP  A PERSON  BUSY  FOR  HOURS.'  is not a valid yes/no response. 
Want  to know  how  to keep a person busy for hours?
no
Thank you. Have a nice day.

打开一个新的文件编辑器窗口,将它另存为busy.py。然后输入以下代码:

import pyinputplus as pyip

这将导入 PyInputPlus 模块。由于pyinputplus的字母比较多,因此我们将使用简称 pyip

while True:
    prompt = 'Want to know how to keep a person busy for hours?\n'
    response = pyip.inputYesNo(prompt)

接下来, while True: 创建了一个无限循环,该循环继续运行,直到遇到 break 语句。在这个循环中,我们调用 pyip.inputYesNo() ,确保在用户输入有效答案之前该函数调用不会返回:

if response == 'no':
    break

pyip.inputYesNo() 调用保证仅返回字符串 yesno 。如果返回 no ,那么程序会跳出无限循环并执行最后一行,即感谢用户:

print('Thank you.  Have a nice day.')

否则,循环将再次迭代。

你还可以传入 yesValnoVal 关键字参数,从而在非英语语言中使用 inputYesNo() 函数。例如,该程序的西班牙语版本将包含以下两行:

prompt = '¿Quieres saber cómo mantener ocupado a una persona durante horas?\n' 
response  =  pyip.inputYesNo(prompt,  yesVal='sí',  noVal='no')
if response == 'sí':

现在,用户可以输入 s (大写或小写),而不是 yesy 作为肯定的答案。