Числа и строки
Числа (попытка №3, на этот раз успеем ☺)
- Комплексные числа из коробки
import math vs. from math import *
вычисления в рациональных числах с помощью decimal и fractions
decimal.Decimal(1.1) vs. decimal.Decimal("1.1")
fractions.Fraction(1/3) vs. fractions.Fraction(1,3)
(если уж совсем много времени будет, то про random, но нет)
Строки
- Внутреннее unicode-представление
- 4 способа задания строк
- строки как последовательности
- Особенности (повторение):
a[5] === a[5:6] (так ли это? )
- asd" in "qwasdgfh"
Строковые методы
endswith(), startswith(),
find(), index(), count(),
isalnum(), isalpha(), isdecimal(), isdigit(), isidentifier(), islower(), isnumeric(), isprintable(), isspace(), istitle(), isupper(),
center(), rjust(), ljust(),
lower(), upper(), swapcase(), title(), capitalize(), casefold(),
replace(),
strip(), expandtabs(),
zfill(),
rfind(), rindex(), rpartition(), rsplit(), rstrip(), lstrip(),
split() и join()
split(), splitlines(), join()
Форматные строки
(3.6+) f"строка"
- примеры
(3.8+) f"{выражение=}"
Метод .format()
Спецсимволы и необработанные строки
- Специмволы
r"..."
Байтовые строки и «массивы»
- bytes
- .encode()/.decode()
- bytearray
- бНОПНЯ!
Д/З
Прочитать и прощёлкать про строки в учебнике, в документации, а также про форматирование строк в учебнике и в документации.
TODO
Вводится ASCII-art с изображением стакана (возможно, с водой), падающего в ведро (последняя строка — пустая). Толщина стенок стакана — 1. После падения стакан оказывается на боку в левом нижнем углу ведра (даже если он размером с ведро; больше он не бывает), а вода из него выливается, заполняя ровным слоем дно ведра и заслоняя стакан (толщина слоя округляется в большую сторону). Вывести ведро с упавшим стаканом.
.......... .......... .#....#... .#....#... .#****#... .#****#... .#****#... .#****#... .######... .......... .......... ..........
.......... .......... .......... .......... .......... .......... #######... #......... #......... #......... ********** **********
EJudge: ArbitPrec 'Произвольная точность'
Вводится две строки: произвольная функция над x, содержащая операции, применимые к типу decimal.Decimal, имеющая единственный корень на интервале (-1.5, 1.5), непрерывная на нём и принимающая значения разных знаков на концах интервала, и натуральное число D. Вывести корень данной функции с точностью ровно D знаков после запятой (нули тоже выводятся). Воспользоваться десятичным контекстом для задания точности (см. примеры выше на странице документации).
1+x*3 20
-0.33333333333333333333
EJudge: XenLeaders 'Чемпионы дзена'
Ввести построчно список участников некоторого соревнования на скорость неизвестно чего в виде Имя Фамилия Название команды часы:минуты:секунды (последняя строка пустая), и вывести всех, кто занял первые три места (минимальное затраченное неизвестно на что время; одно место может занять несколько человек, если время совпадает), в порядке возрастания времени, а внутри одного времени — лекcикографически: фамилия, имя, команда. Дополнительное условие: таблица чемпионов должна быть аккуратной: поля «Имя», «Фамилия», «Название команды» и «Время» должны начинаться в одной колонке, но при этом быть максимально «упакованными»: столбцы в таблице должны быть разделены ровно одним пробелом.
Модест Камноедов НИИЧАВО 10:0:0 Николай Долгоносиков Телепаты и спириты 5:3:31 Рудольф Хлебовводов ТПРУНЯ 5:43:55 Лавр Вунюков ТПРУНЯ 6:12:12 Эдельвейс Машкин Пенсионеры-изобретатели 5:43:55 Анатолий Скворцов Золотые руки Китежграда 2:14:3 Амвросий Выбегалло НИИЧАВО 6:12:12
Анатолий Скворцов Золотые руки Китежграда 2:14:3 Николай Долгоносиков Телепаты и спириты 5:3:31 Эдельвейс Машкин Пенсионеры-изобретатели 5:43:55 Рудольф Хлебовводов ТПРУНЯ 5:43:55