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

Числа

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

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

randomsecrets, а также os.getrandom)

Строки

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

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

split() и join()

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

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

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

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

Д/З

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

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

  2. EJudge: TriangleSquare 'Площадь треугольника'

    Ввести через запятую шесть чисел: x1, y1, x2, y2, x3, y3 и вывести точное значение площади треугольника (x1, y1), (x2, y2), (x3, y3). Обратите внимание на то, что числа могут быть как целые, так и с фиксированной точкой, а количество пробелов-разделителей между числами не определено.

    Input:

    1.1, 1,  6,4 , 8, 2
    Output:

    7.9
  3. EJudge: TrimImage 'Обрезать картинку'

    Вводятся строки, содержащие четыре целых числа и символ, разделённые пробелами. Код символа 33 ⩽ c ⩽ 127. Это абсцисса, ордината (ось ординат направлена вниз) некоторых точек, а также длина и ширина построенных на них прямоугольников, «нарисованных» с помощью указанных символов. Последняя строка пустая. Вывести наименьшую область, содержащую все раскрашенные точки, нарисованные в порядке ввода прямоугольников. Область также прямоугольна и изначально заполнена символами '.'. Координаты и размеры могут быть отрицательны или равны нулю. В случае отрицательного размера прямоугольник откладывается от исходной точки в противоположную сторону, а сама точка в него не попадает.

    Input:

    1 2 10 10 *
    -2 -1 10 10 #
    3 4 -10 10 @
    5 6 10 -10 %
    Output:

    ............%%%%%%%%%%
    ............%%%%%%%%%%
    ............%%%%%%%%%%
    .....#######%%%%%%%%%%
    .....#######%%%%%%%%%%
    .....#######%%%%%%%%%%
    .....#######%%%%%%%%%%
    .....#######%%%%%%%%%%
    @@@@@@@@@@##%%%%%%%%%%
    @@@@@@@@@@##%%%%%%%%%%
    @@@@@@@@@@#####***....
    @@@@@@@@@@#####***....
    @@@@@@@@@@#####***....
    @@@@@@@@@@********....
    @@@@@@@@@@********....
    @@@@@@@@@@********....
    @@@@@@@@@@............
    @@@@@@@@@@............
  4. EJudge: RandBitsm 'Случайное с битами'

    Написать функцию randbits(a, b, n), параметры которой — натуральные числа, причём a меньше b. Функция должна возвращать случайное натуральное число из диапазона от a до b включительно, в двоичном представлении которого присутствует ровно n единиц. Если таких чисел нет, возвращается 0.

    • Тесты будут проверять статистическую корректность и быстродействие, пример ниже в них не входит; он приведён только для понятности.
    Input:

       1 print(*[randbits(2, 66, i) for i in range(1, 10)])
    
    Output:

    4 40 25 15 55 63 0 0 0
  5. EJudge: PascalTriangle 'Треугольник Паскаля'

    Написать функцию pastri(n, filler), которая возвращает строку, содержащую Треугольник Паскаля из n уровней, используя строку filler из одного символа в качестве разделителя. Строки треугольника должны быть выравнены по центру, а если это невозможно, в начале строки должно быть на один разделитель меньше. Лишних разделителей в конце строки быть не должно.

    Input:

       1 print(pastri(6, '_'))
       2 print(pastri(7, '_'))
    
    Output:

    _______1________
    ______1_1_______
    _____1_2_1______
    ____1_3_3_1_____
    ___1_4_6_4_1____
    _1_5_10_10_5_1__
    1_6_15_20_15_6_1
    _________1_________
    ________1_1________
    _______1_2_1_______
    ______1_3_3_1______
    _____1_4_6_4_1_____
    ___1_5_10_10_5_1___
    _1_6_15_20_15_6_1__
    1_7_21_35_35_21_7_1

LecturesCMC/PythonIntro2025/05_StringsNumbers (последним исправлял пользователь FrBrGeorge 2025-10-06 16:29:38)