操作员或不工作

时间:2015-06-05 01:25:32

标签: python-3.x

好吧,也许这个话题已经在另一个证券交易所主题中直接或间接得到了解答,但我找不到,所以如果你确实找到了一个你认为有效的答案,请联系我那个帖子也是。

以下是我的代码:

while True:
    example=input('Enter something')
    if example=='Hi' or 'Bye':
        print('Yay!')
    else:
        print('Something else.')

example未导致导致if的{​​{1}}语句时,(True我没有输入“嗨”{{ {1}}'再见if},它无法or example语句,相反,它会print返回问候语我的else声明。为什么是这样?这被称为短路吗?最重要的是,我该如何解决这个问题?我想知道这一点,否则我将不得不另外制作print语句,这需要更多的代码。

请尝试使用基本术语解释您的答案。顺便说一句,我使用的是Python 3.4.3。

2 个答案:

答案 0 :(得分:2)

要添加上述内容,您还可以执行以下操作:

if example in ['Hi', 'Bye']:

如果列表更长,这会更实用。

答案 1 :(得分:1)

使用元组因为它们快速且便宜而可以创建长度而不是列表:

if example in ('Hi', 'Bye'):

如果您打算在很多不同的选项上做一个大的比较(大于下面的例子!),那么使用set作为一个集只能包含唯一的条目和为搜索更好地进行了优化:

if example in {'Hi', 'Bye', 'Hello', 'Goodbye', 'Adios', 'Bonjour'}:

关闭主题通常,文字输入可能包含意外情况。添加.lower()并与小写字符串进行比较将避免...

if example.lower() in ('hi', 'bye'):