确定字符串是否为"肯定"?

时间:2013-10-13 04:16:28

标签: python

我想使用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。是否有一个应该被视为“是”答案的答案列表?

3 个答案:

答案 0 :(得分:5)

Python的distutils有strtobool可能适合你。 Documentation Link

  

<强> distutils.util.strtobool(VAL)

     

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

     
      
  • 真值为: y t true 1
  •   
  • 错误值为: n f false 关闭 0
  •   
  • 否则会引发ValueError。
  •   

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

答案 1 :(得分:1)

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

“应该有一种 - 最好只有一种 - 明显的方法”: - )

答案 2 :(得分:0)

考虑任何答案(也可能是多个)肯定或否定都取决于你。您可以创建一个潜在用户答案的​​数组(如您已经显示的那样),或者您可以简单地告诉用户输入错误并通过“请回答是或否”等消息提醒。

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