Строковые методы .split() и .join()
Разбор Д/З
Ещё немного про списки
Повторение: индексирование, связывание произвольных объектов, .append()/.pop
1 >>> s = ["QWE", [1,2,3], None, 100500, 23.23] 2 >>> s 3 ['QWE', [1, 2, 3], None, 100500, 23.23] 4 >>> s[0] 5 'QWE' 6 >>> s[-2] 7 100500 8 >>> a = 7 9 >>> s.append(a) 10 >>> s.append(a) 11 >>> s 12 ['QWE', [1, 2, 3], None, 100500, 23.23, 7, 7] 13 >>> s.pop() 14 7 15 >>> s 16 ['QWE', [1, 2, 3], None, 100500, 23.23, 7] 17
- Хранение строк в списке
Циклический конструктор списка: [ выражение for имя in последовательность ]:
Это не оператор цикла, это такой конструктор списка, на него похожий
- В конструктор может входить фильтр значений:
- При этом сначала происходит связывание именем, затрем проверка, а затем, если проверка прошла, вычисление очередного элемента
split()/join()
Работа метода строка.split() — создание списка слов (пробельные символы "\t", "\n" и " " выбрасываются)
Работа метода строка.split(разделитель) — каждая строка-разделитель учитывается отдельно, если разделителей несколько подряд, между ними — пустые строки:
Работа метода разделитель.join(последовательность_строк)` — последовательность строк «склеивается», и между склеенными строками вставляется разделитель
Работа метода "".join(последовательность_строк)` — строки склеиваются:
Примеры:
- Ввести два ФИО, проверить, тёзки ли они
- т. е.
разбить время "чч:мм:сс" на три числа
вывести список строк в виде прямоугольника (с помощью '\n'.join())
заменить каждый пробел точкой (.replace())
заменить все последовательные пробелы одной точкой (split+join)
- Получить из строки (например, в Д/З — ввести) список чисел через пробел(ы), а не через запятую
Другой вариант, при условии, что пробел между числами только один:
Д/З
Повторить темы про списки и строки: десятая и восьмая главы учебника
EJudge: SumMult 'Сумма произведений'
Ввести строку, содержащую арифметическое выражение, в котором есть только цифры, и, возможно, операции сложения и умножения (других символов, в том числе пробелов, нет). Вывести через пробел все слагаемые в выражении. Пользоваться eval() можно.
0+1+2*3+4*5*6
0 1 6 120
EJudge: BaseName 'Имя файла'
Ввести строку, вида протокол://путь/к/файлу/имя.файла.расширение (т. е. напоминающую URL). Расширения (т. е. секции, начинающейся на «.») у файла и секции «протокол:» может не быть, но непустое имя точно есть, и путь точно содержит «/». Вывести только имя, отбросив расширение (если оно есть).
https://uneex.org/Python/PsyPython2018/Homework.BaseName.task
Homework.BaseName
EJudge: DateCmp 'Сравнить даты'
Ввести две даты в формате число-месяц-год, разделённые пробелом. Вывести их в порядке возрастания: сначала более раннюю, затем — более позднюю. Число и месяц могут задаваться одной или двумя цифрами, а год — всегда четырьмя.
1-06-2018 28-2-2018
28-2-2018 1-06-2018