我正在写一个战舰游戏来练习。在开始游戏时,我想问一个与游戏难度相关的问题,如下:
让我们开始新游戏。你想马上玩吗?战舰的数量将随机化,以及它们的大小(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"):
(...)
这确实是丑陋的,我想知道是否有一种有效的方法来做到这一点。
答案 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"