python - While 在带有 input() 的函数中循环

标签 python python-3.x

所以我试图让这个函数仅在等于数组中的字符时才返回我写入的内容。如果不是,我希望它继续循环。

def pick():
    picks = input('Type one letter. ')
    choice = {'q', 'w', 'e', 'r', 't', 'y'}
    for x in choice:
        while x in choice != picks:
            picks = input('Pick again. ')
        else:
            return x
pick()

我对此感到非常困惑。

示例:

Type one letter. z

Pick again. q

然后它将返回q到该函数以在另一个函数中使用。

此外,如果这个函数正确(返回正确的字符),它必须继续执行下一个函数。另一个函数同时将此函数的答案与它自己的答案进行比较。如果不正确,它会阻止其他函数“启动”,而这个函数会继续循环吗?

最佳答案

没有必要每次都循环选择。另外,我不太确定你想用 while 条件做什么,但类似这样的事情应该可以解决问题。主题x in y返回一个 bool 值,指示x是否是y的成员。

def pick():

    picks = input('Type one letter. ')
    choice = {'q', 'w', 'e', 'r', 't', 'y'}

    while picks not in choice:
        picks = input('Pick again. ')

    return picks

pick()

此外,我可能会做一些清理用户输入的工作。

while picks.lower().rstrip() not in choice:

关于python - While 在带有 input() 的函数中循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34845561/

相关文章:

python - 与卷积的中心差异

python - 如何实时读取html并循环插入MySQL?

python - x = b'ABC' 等同于 python3.5 中的 x ='ABC' .encode ("ascii") 吗?

Python - Tweepy,检索created_at

javascript - 如何使用 customjs 在 Bokeh 中动态更新下拉菜单选项

python - 我应该授权什么 url 在防火墙后面使用 pip?

python - 属性错误 : 'map' obejct has no attribute 'index' (python 3)

python - 如何覆盖python cli模块中的默认 "logfile"?

python - 如何使用 PYTHON 将 mySQL 表导出为 CSV 文件

python-3.x - ImportError : libcublas. so.9.0:无法打开共享对象文件