arabera Карина Мкртчян 1 year ago
190
Honelako gehiago
by Олег Чудаков
by Pavel Komarov
by firaya g
by Анастасия Матвеева
Символьная строка – это последовательность символов, расположенных в памяти рядом (в соседних ячейках). Для работы с символами во многих языках программирования есть переменные специального типа: символы, символьные массивы и символьные строки (которые, в отличие от массивов, рассматриваются как цельные объекты). Основной тип данных для работы с символьными величинами в языке Python – это символьные строки (тип string).
Строки можно передавать в процедуры и функции как параметры, а также возвращать как результат функций. Построим процедуру, которая заменяет в строке s все вхождения слова-образца wOld на слово-замену wNew (здесь wOld и wNew – это имена переменных, а выражение «слово wOld» означает «слово, записанное в переменную wOld»).
Переменная p – это номер первого символа первого найденного слова-образца wOld, а в пере- менной lenOld записана длина этого слова. Если после поиска слова значение p меньше нуля (образец не найден), происходит выход из цикла:
if p<0: res=res+s; return
Если p > 0, то слева от образца есть какие-то символы, и их нужно «прицепить» к строке res:
if p>0: res=res+s[:p]
Условие p+lenOld >= len(s) означает «образец стоит в самом конце слова», при этом остаток строки s – пустая строка. В конце программы результат записывается на место исходной строки s.
Пример использования этой функции:
s = "12.12.12"
s=replaceAll( s, "12", "A12B" )
print( s )
Так как операция замены одной подстроки на другую используется очень часто, в языке Python есть встроенная функция, которая выполняет эту операцию. Она оформлена как метод для переменных типа «строка» (str) и вызывается с помощью точечной записи:
s = "12.12.12"
s=s.replace( "12", "A12B" )
print( s )
Аналогичный метод rfind (от англ. reverse find – искать в обратную сторону) ищет послед- нее вхождение образца в строке.
Метод find возвращает целое число – номер символа, с которого начинается образец (буква "с") в строке s. Если в строке несколько образцов, функция находит первый из них. Если образец не найден, функция возвращает «–1». В рассмотренном примерев переменную n будет записано число 3.
В первом случае формат «7.2f» обозначает «вывести в 7 позициях с 2 знаками в дробной части», во втором – формат «10.2e» обозначает «вывести научном формате в 10 позициях с 2 знаками в дробной части».
В строке значение переменной N будет записано по формату d (целое число) в 5 позициях, то есть в начале строки будут стоять два пробела:
◦◦123
Эти операции всегда выполняются успешно (ошибка произойти не может).
Строки заносятся в список aS. Сначала этот список пустой, затем в цикле мы вводим очередную строку с клавиатуры и записываем её в переменную s1. Ввод заканчивается, когда введена пустая строка, то есть вместо ввода строки пользователь нажал клавишу Enter. В этом случае сработает условный оператор и выполнится оператор break, прерывающий цикл.
В параметре A передаётся алфавит языка, параметр w – это уже построенная часть слова, а L – нужная длина слова. Когда длина построенного слова станет равна L, то есть будет получено слово требуемой длины, слово выводится на экран и происходит выход из процедуры (окончание рекурсии). Если слово не достроено, в цикле перебираем все символы, входящие в алфавит, по очереди добавляем каждый из них в конец строки и вызываем процедуру рекурсивно.
Полная программа:
print( "Введите имя, отчество и фамилию:" )
s = input()
fio = s.split()
s=fio[2]+" "+fio[0][0]+"."+fio[1][0]+"."
print( s )
Полная программа:
print( "Введите имя, отчество и фамилию:" ) s = input()
n=s.find( " " )
name=s[:n] #вырезать имя
s = s[n+1:]
n=s.find( " " )
name2=s[:n] #вырезать отчество
s=s[n+1:] #осталась фамилия
s=s+" "+ name[0]+"."+name2[0]+"."
print( s )
Так как начальный и конечный индексы элементов строки не указаны, задействована вся строка. Число «–1» означает шаг изменения индекса и говорит о том, что все символы перебираются в обратном порядке.
Переменная s получит значение "012ABC3456789".
Срез s[:3] означает «от начала строки до символа s[3], не включая его», а запись s[9:] – «все символы, начиная с s[9] до конца строки». Таким образом, в переменной s1 остаётся значе- ние "0129".
В строку s1 будет записано значение "34567".
В результате выполнения приведённой программы в строку s будет записано значение "Привет, Вася!".