Логические выражения, условные операторы и цикл
Алгебра логики
Операции сравнения, тип bool, True и False
Алгебра логики над bool
or
and
A
B
A or B
A
B
A and B
False
False
False
False
False
False
False
True
True
False
True
False
True
False
True
True
False
False
True
True
True
True
True
True
Python3: and, or, not; низкий приоритет
- Пустые и непустые объекты Python3
- Алгебра логики над произвольными объектами Python3
- OR: если A истинно, результат истинен, вычислять B не надо
- ⇒ Python: если A истинно, результат равен A, иначе B
- AND: если A ложно, результат ложен, вычислять B не надо
- ⇒ Python: если A ложно, результат равен A, иначе B
⇒ частичное вычисление выражений A и B (например, 3+3 or 100/0)
or
and
A
B
A or B
A
B
A and B
Пусто
Пусто
B
Пусто
Пусто
A
Пусто
Непусто
B
Пусто
Непусто
A
Непусто
Пусто
A
Непусто
Пусто
B
Непусто
Непусто
A
Непусто
Непусто
B
- OR: если A истинно, результат истинен, вычислять B не надо
Сравнения
Простые: == , <, !=, >= и т. п.
is , in
- Многоместные
- Таким образом,
wait шhат?
Условные действия
Конструкция a and b or c как замена тернарной операции a ? b : c в Си
Не работает, как ожидается, если b пусто
Условная операция выражение-True if выражение-условие else выражение-false
Условный оператор: if, if / else, if [/ elif [/ elif ... [else]...]]
Цикл while
- Каноническая схема цикла:
- наприпмер
breal, continue
Клауза else — не выполняется, если выход из цикла был по break:
Д/З
Прочитать и прощёлкать учебник (до функций)
EJudge: IntPalindrome 'Число-палиндром'
Ввести целое положительное число и проверить, является ли оно палиндромом, т. е. совпадает ли первая цифра с последней, вторая — с предпоследней и т. д. Представлять число в виде последовательности (строки, списка и т. п.) нельзя. Вывести YES или NO соответственно. Лидирующие нули не учитывать (числа, заканчивающиеся на 0 — автоматически не палиндромы).
1234321
YES
EJudge: AnyPower 'Какая-нибудь степень'
Ввести небольшое натуральное число 2⩽N⩽1000000 и проверить, является ли оно степенью натурального числа (>1). Вывести YES или NO соответственно.
1024
YES
EJudge: BiSection 'Половинное деление'
Вводится строка — формула некоторой функции от x. В следующей строке вводятся через запятую два числа, A и B, такие что f(x) на [A,B] непрерывна, дифференцируема и имеет ровно один корень, будучи разных знаков на концах отрезка (проверять не надо). Найти и вывести этот корень с точностью 0.000001 (представление может быть любым). При вычислении f(x) (с помощью eval) предполагается, что в текущем пространстве имён присутствуют математические функции.
sin(x+0.00007) -1,2
-7.033348083496094e-05
( если перейти по ссылке «Вращающееся число», вы увидите некоторые подсказки)
EJudge: SwapFive 'Вращающееся число'
(Жак Арсак. Программирование игр и головоломок.) Для заданной цифры k найти такое минимальное целое неотрицательное число, оканчивающееся на k, что, умножая его на k, мы получим новое число, полученное из предыдущего вычеркиванием цифры k на конце и приписыванием ее в начале. Строки/кортежи и иные последовательности не использовать.
4
102564