我想使用Python 3的input()
函数向用户询问是或否。例如:
affirmative = ["", "y", "yes"]
x = input("Continue? [Y/n] ").lower()
if x in affirmative:
# Do something
else:
print("Canceled")
我是否应该使用某些列表来获得“肯定”答案?我知道Python有预先确定的变量列表,如string.uppercase
和string.lowercase
。是否有一个应该被视为“是”答案的答案列表?
答案 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
。