Числа и строки

Числа

Больше математики!

Псевдослучайные числа

random

Строки

Строковые методы

Базовая статья

split() и join()

Форматные строки

Базовая статья

Спецсимволы и необработанные строки

Зачем нужны спецсимволы

Шаблоны

T-строки — это вообще не строки, это шаблоны

А потом сам форматируй!

Примерно так:

   1 from string.templatelib import Template, Interpolation, convert
   2 
   3 def render(template: Template) -> str:
   4     parts = []
   5     for part in template:
   6         if isinstance(part, Interpolation):
   7             value = convert(part.value, part.conversion)
   8             formatted_value = format(value, part.format_spec)
   9             parts.append(formatted_value)
  10         else:
  11             parts.append(part)
  12     return "".join(parts)

Д/З

<!> Во всех домашних заданиях нашего курса используются только стандартные модули Python.

  1. Прочитать и прощёлкать про строки в учебнике, в документации, а также про форматирование строк в учебнике и в документации.

  2. EJudge: AlmostRandom 'Почти случайное'

    Написать функцию divrandom(a, b, s, p), принимающую четыре целых ненулевых параметра. Функция должна возвращать случайно выбранное целое число, не кратное p, из диапазона от a до b (включительно; таким образом диапазоны a…b и b…a одинаковы и допустимы) с шагом s. Если такое число выбрать невозможно, функция возвращает 0.

    Input:

       1 print(divrandom(10, 21, 5, 2))
    
    Output:

    15
  3. EJudge: ArbitPrec 'Произвольная точность'

    Вводится две строки: произвольная функция над x, содержащая операции, применимые к типу decimal.Decimal, имеющая единственный корень на интервале (-1.5, 1.5), непрерывная на нём и принимающая значения разных знаков на концах интервала, и натуральное число D. Вывести корень данной функции с точностью ровно D знаков после запятой (нули тоже выводятся). Воспользоваться десятичным контекстом для задания точности (см. примеры выше на странице документации).

    Input:

    1+x*3
    20
    Output:

    -0.33333333333333333333
  4. EJudge: ConvexPolygon 'Выпуклый мнгогоугольник'

    Ввести построчно 300 ⩾ N > 2 пар целых чисел, разделённых запятой (ввод оканчивается пустой строкой). Считая пары координатами точек, проверить, могут ли эти точки в определённом порядке быть вершинами выпуклого N-угольника. Вывести True, если могут, или False, если нет.

    Input:

    71, -93
    19, -77
    113, 0
    -87, -10
    -65, -28
    132, -110
    -8, -63
    -27, 47
    87, 15
    170, -34
    34, 30
    Output:

    True
  5. EJudge: DrawSquare 'Рисуем квадраты'

    Написать функцию squares(w,h,(X,Y,s,c),...) со следующими параметрами: w и h — ширина и высота «экрана», за которыми следуют 0 или больше 4-элементных последовательностей вида (X,Y,s,c), где X и Y — координаты левого верхнего угла квадрата, s — длина его стороны (не меньше 1), а c — символ которым он заполняется на экране. Функция должна выводить прямоугольник из h×w точек, на котором соответствующими символами «нарисованы» квадраты соответствующих размеров в соответствующих местах. Координаты левого верхнего угла поля — 0,0; координаты растут вправо вниз. Проверять, что квадраты не выходят за границы поля, не надо.

    Input:

    squares(20,23,(1,1,5,'@'), (2,3,1,'!'), (4,5,11,'#'), (8,11,9,'/'))
    Output:

    ....................
    .@@@@@..............
    .@@@@@..............
    .@!@@@..............
    .@@@@@..............
    .@@@###########.....
    ....###########.....
    ....###########.....
    ....###########.....
    ....###########.....
    ....###########.....
    ....####/////////...
    ....####/////////...
    ....####/////////...
    ....####/////////...
    ....####/////////...
    ......../////////...
    ......../////////...
    ......../////////...
    ......../////////...
    ....................
    ....................
    ....................

LecturesCMC/PythonIntro2026/05_StringsNumbers (последним исправлял пользователь FrBrGeorge 2026-10-15 10:58:03)