3

我想使用 Python 3 的input()函数来询问用户是或否的问题。例如:

affirmative = ["", "y", "yes"]
x = input("Continue? [Y/n] ").lower()
if x in affirmative:
    # Do something
else:
    print("Canceled")

我应该使用某个列表来获得“肯定”的答案吗?我知道 Python 有类似string.uppercasestring.lowercase用于预先确定的变量列表的东西。是否有应视为“是”答案的答案列表?

4

3 回答 3

6

Python 的 distutilsstrtobool可能对你有用。文档链接

distutils.util.strtobool(val)

将真值的字符串表示形式转换为真 (1) 或假 (0)。

  • 真值为:yyesttrueon1
  • 错误值为:nnoffalseoff0
  • 否则引发 ValueError 。

但这并不完全符合您当前希望的风格。

于 2013-10-13T04:23:42.887 回答
1

我有一个更好的主意:接受以“yYnN”开头的任何内容,如果必须的话,可以接受一个空字符串。抱怨其他任何事情并再次询问。用户很快就会习惯。

“应该有一种——最好只有一种——明显的方式来做到这一点”:-)

于 2013-10-13T04:31:20.953 回答
0

考虑任何肯定或否定的答案(也可能是多个)完全取决于您。您可以创建一组潜在的用户答案(如您已经展示的那样),或者您可以简单地告诉用户输入错误并通过“请回答是或否”之类的消息发出警报。

也最常用的肯定信息是yes, y, true, t, 1.

于 2013-10-13T04:26:47.670 回答