Логические и побитовые операции
(к теме ?операторы цикла?) Оператор цикла с последовательностью for: простейшее использование с xrange()
- Основы булевой алгебры: операции ?И?, ?ИЛИ?, ?НЕ?
- Таблицы истинности
- Другие операции
- Двоичное представление чисел. Побитовые булевы операции.
Функции hex(), oct() и bin()
- Решение задачи ?a,b=b,a? с помощью ?исключающего ИЛИ?
Особенности операций and и or в Python
Домашнее задание
Прочитать о логических операциях и о побитовых операциях в Википедии
Сколько всего может быть различных двухместных логических операций?
- Решить задачу о неравенстве треугольника (вести три числа (A, B, C) и вывести, являются ли они сторонами треугольника)
- в три-пять строк
в две строки. Обратите внимание на использование and и or в качестве условного оператора
в одну строку. Основная проблема: надо несколько раз воспользоваться результатами ввода. Можно определить lambda-функцию:
1 (lambda l: max(l)<sum(l)-max(l) and "Да" or "Нет")(input("Введите три числа через запятую: "))
- (Брудно, Каплан) Вывести все четырехзначные натуральные числа, в десятичной записи которых нет одинаковых цифр
- Проверить, является ли введенное число палиндромом (т. е. в десятичной записи первая цифра совпадает с последней, вторая -- с предпоследней и т. д.)
Сделать это без использования последовательностей (списков, строк и т. п.)
Решить-таки олимпиадную задачу из предыдущего Д/З:
Сумма кубов (Брудно А. Л., Каплан Л. И.). Сколькими способами заданное натуральное число N можно представить в виде суммы двух кубов натуральных чисел: N = i3 + j3. Перестановка слагаемых нового способа не дает. Операцией возведения в степень 1/3 пользоваться можно только для первоначального приближенного вычисления N1/3, т. к. надеяться на равенство a1/3 == b1/3 нельзя.
- Для начала решить задачу любым способом
- Решить задачу при N приблизительно равном 1000000000001
Условные обозначения
? тема по Linux
?? необязательная тема
? теоретическое задание
? тема для самостоятельного изучения