2016-05-05 3 views
-3
def get(count=None): 
    if count >= 1: 
     a = count - 1 
    else: 
     a = 0 
    return a 

Все в названии .. Только для спорта.Как использовать тернарный оператор, чтобы написать это, если заявление

Спасибо

+2

что 'replies'? –

+0

Этот код иногда терпит неудачу в Python 3.x. –

+0

@ignacio это вопрос 2.7, но почему это в python 3? –

ответ

2

Вы имеете в виду, используя ternary operator?

a = count - 1 if count >= 1 else 0 

Ваш код не сработает, если count является None, потому что вы не можете сравнить nonetypes с целыми числами. Но мой ответ заключается в том, как вы могли бы написать это условное утверждение «лучше».


Таким образом, - я хотел бы написать функцию, как это (спасибо @poke для max идеи.):

def get(count=None): 
    return max(count-1, 0) if isinstance(count, int) else 0 
+0

Ровно, спасибо! Я пробовал раньше, но мог возвращать только логическое значение. –