Ответы пользователя по тегу Программирование
  • Какие кодотрюки вы знаете?

    JustAMan
    @JustAMan
    Сюда же интересная реализация or/and в Python:
    def func(a, b):
        print a or b
    
    func(None, 'q')
    func(123, 10)
    func([1,2,3],'')
    func('', {1: 5})

    выдаёт:
    q
    123
    [1, 2, 3]
    {1: 5}
    

    т.е. результат казалось бы булевых выражений на самом деле совсем не булевый, а равен последнему вхождению, по которому прекратилась обработка условия. Так, «1 and 5» будет «5».

    Ну а если нужны именно булевые операции (или побитовые) — есть стандартные для Си &, | и ^.
    Ответ написан
    Комментировать