Минуты mod 60 будут давать часы с оставшимися минутами.
Это более конкретно выражение тернарный оператор , чем выражение if-then, вот синтаксис Python
value_when_true if condition else value_when_false
Лучший пример: (спасибо Мистер Бернс )
'Да' if fruit == 'Apple' else 'Нет
Теперь с присваиванием и контрастом с синтаксисом if
fruit = 'Apple'
isApple = True if fruit == 'Apple' else False
vs
fruit = 'Apple'
isApple = False
if fruit == 'Apple' : isApple = True
count = 0 if count == N else N+1
- троичный оператор. Хотя я бы сказал, что ваше решение более читабельно, чем это.
Общий троичный синтаксис:
value_true if <test> else value_false
Другой способ может быть:
[value_false, value_true][<test>]
например:
count = [0,N+1][count==N]
Это оценивает обе ветви перед выбором одной. Чтобы оценить только выбранную ветвь:
[lambda: value_false, lambda: value_true][<test>]()
например:
count = [lambda:0, lambda:N+1][count==N]()
<execute-test-successful-condition> if <test> else <execute-test-fail-condition>
с вашим фрагментом кода он будет выглядеть следующим образом:
count = 0 if count == N else N + 1