更好的编码:简单的方式来涵盖所有的写作可能性

时间:2015-09-22 09:23:55

标签: python python-2.7

我正在写一个战舰游戏来练习。在开始游戏时,我想问一个与游戏难度相关的问题,如下:

  

让我们开始新游戏。你想马上玩吗?战舰的数量将随机化,以及它们的大小(y / n)

在编写答案时我想确定所有写作可能性的是/否问题(是,是,是,是等等),但我的代码如下:

easy_mode = raw_input("Let's start a new game. Do you want to play right away? The number of battleships will be randomized, as well as their size (y/n)");
if easy_mode == ("yes" or "Yes" or "YES" or "yEs" or "yeS" or "yES" or "YEs" or "YeS"):
(...)

这确实是丑陋的,我想知道是否有一种有效的方法来做到这一点。

4 个答案:

答案 0 :(得分:4)

既然你允许你的玩家也有单个字符的答案,那么也要把检查放在你的代码中:

if easy_mode.lower() in {'yes','y'}:
    (...)

答案 1 :(得分:2)

尝试将其转换为小写,然后进行检查。

from six import with_metaclass
# or
from future.utils import with_metaclass

class Form(with_metaclass(MyMetaClass, object)):
    pass

答案 2 :(得分:0)

您可以将easy_mode字符串转换为小写字母,之后您只需要将其与字符串的全小写版本进行比较,如下所示:

if easy_mode.lower() == 'yes':
    pass

答案 3 :(得分:0)

是的,你有。您可以在转换为小写或大写的输入之后进行比较。

if easy_mode.lower() == "yes"

或者,

if easy_mode.upper() == "YES"