- Почему этот код .replace не работает, это может быть что-то с функцией def
- 3 ответа
- Метод .replace не работает в Python, даже если он назначен новой переменной
- 1 ответ
- Метод str.replace() в Python, меняет подстроку/символ в строке.
- Производит поиск и замену подстроки (символа) в строке.
- Синтаксис:
- Параметры:
- Возвращаемое значение:
- Описание:
- Общие примеры замены подстроки/символа в строке.
- Замены нескольких значений в строке одной операцией.
- Странная работа метода «.replace»
- Replace Python
- Введение в тему
- Что делает метод
- Синтаксис
- Параметры
- Возвращаемое значение
- Применение replace для замены нескольких значений
- С помощью словаря
Почему этот код .replace не работает, это может быть что-то с функцией def
Итак, я пытаюсь создать секретный создатель кода и использую функцию замены, чтобы изменить буквы. Теперь, когда я делаю одну строку примерно так:
Это работает нормально, но я не хочу печатать несколько строк (я делаю весь алфавит), например:
Как это. Я не хочу иметь несколько строк, я хочу сделать это в одной.
Я пытался использовать функцию def, чтобы понять это, но я запутался и совершенно застрял. Вот что у меня есть:
Я хочу, чтобы он вывел abc как! 1 @, но все, что я получил, это ошибка, вот она
3 ответа
Метод replace не работает на месте. Это означает, что вызов этого не изменит объект. Это то, что вы не можете сделать, потому что string объекты неизменны.
Вам нужно сделать message = message.replace(«a», «!») , а не просто message.replace(«a», «!») .
Кроме того, ваша функция должна return message , и тогда вы можете увидеть это, написав print(replacer(message)) (не print(replacer.message) ).
.replace() не работает без переназначения, потому что, как отмечали другие, строки неизменяемы. Лучше всего думать о .replace() как о функции, которая возвращает измененную строку, которая затем должна быть записана в переменную, вместо метода, доступного для строковых объектов. Например:
Без замены. Чтобы избежать этого, вам нужно переназначить переменную, такую как:
Далее, replacer не имеет атрибута .message , но это аргумент, который ожидает входную переменную , которую он назначит локальной переменной << X2>> (который скрывает вашу глобальную переменную message , что, вероятно, приводит к некоторой путанице. Обычно локальные и глобальные пространства имен должны отличаться!)
Наконец, ваша функция ничего не делает return . Я предлагаю вам ознакомиться с return инструкциями, чтобы узнать об этой функции.
Поэтому функциональный скрипт будет выглядеть так:
Запуск этого обновленного скрипта дает более подходящее:
Вы должны начать присваивать результат переменной, а также, когда вы определяете функцию (с def ), вы должны что-то возвращать. Как это:
Это напечатает ваш желаемый результат !1@ .
Источник
Метод .replace не работает в Python, даже если он назначен новой переменной
Я читал несколько сообщений раньше и пытался исправить это сам, но все они упоминали, что метод .replace в Python фактически не заменяет переменную, а вместо этого создает новую строку с внесенными изменениями. Затем вам нужно назначить эту «новую» строку переменной, чтобы сохранить ее, или, насколько я понимаю, вы можете присвоить результат исходной переменной, чтобы перезаписать ее. Однако даже после этих шагов метод .replace по-прежнему отказывается работать.
Вот код, с которым у меня возникла проблема:
Как видно из кода, пользователя просят вставить ссылки, которые затем преобразуются в список с возможным разделителем каждой ссылки с помощью ‘, / «»‘. Эта и следующая часть предоставлены только для справки по цели, и, похоже, с ними нет никаких проблем. Проблемной частью является функция te format_url ().
Сначала я подумал, что метод replace логически не может использоваться в списках, поэтому я сделал цикл for, который перебирает каждую ссылку в списке ссылок. Насколько я понимаю, это должно привести к тому, что метод .replace будет получать только 1 запись за раз, что должно заставить его работать.
Я также не забыл вызвать методы с помощью:
1 ответ
Думаю, гораздо полезнее опубликовать ответ, чем просто комментарии. Надеюсь, это должно проиллюстрировать проблему:
Как видите, current_string не ведет себя как дескриптор каждой строки в strings . Это просто копия. Изменение или повторное связывание копии не влияет на строки, из которых она была получена.
Вот один из способов применить изменения:
Пока мы это делаем, взгляните на это:
Как упоминалось в моем предыдущем комментарии, такое логическое выражение (сцепленные or s) будет оценивать первую правдивую строку, с которой оно сталкивается из-за короткого замыкания, слева направо. Строка считается «истинной», если она не пуста. Итак, первая непустая строка — это «,» . Следовательно, вы делитесь только на «,» .
Источник
Метод str.replace() в Python, меняет подстроку/символ в строке.
Производит поиск и замену подстроки (символа) в строке.
Синтаксис:
Параметры:
- old — str , подстрока или символ который меняем
- new — str , подстрока или символ на который меняем
- count — int , сколько раз меняем
Возвращаемое значение:
Описание:
Метод str.replace() вернет копию строки, в которой все вхождения подстроки old заменены на подстроку new .
Если указан необязательный аргумент count , заменяются только первые вхождения count .
Примечание. Производить поиск и замену подстроки/символа в строке можно так же при помощи регулярных выражений, используя функцию re.sub() .
Общие примеры замены подстроки/символа в строке.
Замены нескольких значений в строке одной операцией.
Для замены нескольких разных символов/подстрок в одной операции (множественная замена) необходимо определить функцию, которая будет принимать исходную строку и список символов/подстрок, каждая со своим новым значением. Символы/подстроки с новыми значениями можно передавать разными способами, например как список двойных кортежей в виде [(‘old’, ‘new’), . ] или как словарь, где ключ будет старым значением, а значение — новым <'old': 'new', . >. В зависимости от того, в каком виде передаются значения, будет строится логика извлечения этих значений для осуществления замены в исходной строке.
В примере будем передавать символы/подстроки с их новыми значениями в виде кортежа, так как он дает больше гибкости. Гибкость будет состоять в том, что в примере будет возможность добавления количества замены каждого символа/подстроки в строке.
Из примера видим, что новая функция replace() работает как и ожидается, а именно символ ‘а’ заменился 3 раза, символ ‘б’ и подстрока ‘кад’ заменились по количеству совпадений.
Источник
Странная работа метода «.replace»
Всем привет.
У меня возникла проблема с данной задачей: Дана строка. Удалите из нее все символы, чьи индексы делятся на 3.
В первом случае программа удаляет не то. что нужно. Но если в методе replace заменить »(пустое место) на ‘ ‘(пробел), то все начинает работать (второй код). Почему так происходить, можете объяснить, пожалуйста?
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Вариант метода «пузырька», который заканчивает работу, если на очередном шаге внешнего цикла не было перестановок
Напишите программу, вариант метода «пузырька», который заканчивает работу, если на очередном шаге.
Python 3.7.4 Str.replace (str(a[1]),»a»)
Python 3.7.4 Windows 10 Есть изначальные два массива с набором символов. Пример: a = b = .
Работа со словарём. Ошибка «‘int’ object has no attribute ‘append'»
Доброго времени суток. Задача такова: Если ключ key есть в словаре d, то добавьте значение value в.
Работа нейросети из книги Тарика Рашида «Создаем нейронную сеть»
Здравствуйте! Вопрос наверное к тем, кто читал сабжевую книгу и понимает, что там за сетка.
Источник
Replace Python
Введение в тему
В этом уроке мы рассмотрим как заменить подстроку внутри строки, используя метод replace().
Метод replace Python возвращает копию строки, в которой все вхождения искомой подстроки заменяются другой подстрокой.
Что делает метод
Слово replace переводится как «заменять», что название этого метода является отличным описанием того, что он делает. С помощью метода replace можно заменить часть строки, называемую подстрокой или её всю на другую строку. Метод replace позволяет гибко изменять только необходимые части строки str.
Синтаксис
Метод .replace() имеет следующий синтаксис:
Параметры
В качестве аргументов в метод передаются:
str — Строка, к которой применяется метод (тип данных string).
old — Подстрока, которую необходимо найти и заменить (тип данных string).
new — Новая подстрока, которой будет заменена старая (тип данных string).
count— Необязательный аргумент. Количество совпадений старой подстроки, которую необходимо заменить (тип данных int). Если этот параметр не указать, то будут заменены все вхождения подстрок на новые.
Вот несколько примеров применения метода:
Возвращаемое значение
Метод возвращает копию строки, в которой старая подстрока заменяется новой подстрокой. Строка, к которой применяется метод остаётся неизменной. Если искомая подстрока не обнаружена, то возвращается копия исходной строки.
Применение replace для замены нескольких значений
С помощью данного метода возможно выполнить поиск и замену нескольких значений, например элементов коллекции:
С помощью словаря
Предыдущий пример позволяет заменить несколько элементов, однако все они имеют одно и то же значение «i». Если необходимо заменить несколько разных значений, например «i» на «I» и «a» на «A», то необходимо реализовать чуть более сложную программу с использованием словарей:
Здесь replace используется в функции, аргументы которой исходная строка и словарь со значениями для замены.
У этого варианта программы есть один существенный недостаток, программист не может быть уверен в том, какой результат он получит. Дело в том, что словари — это последовательности без определенного порядка, поэтому рассматриваемый пример программы может привести к двум разным результатам в зависимости от того, как интерпретатор расположит элементы словаря:
В Python версии 3.6 и более поздних порядок перебора ключей будет такой же, как и при котором они созданы. В более ранних версиях Python порядок может отличаться.
Для решения этой проблемы можно заменить обычный словарь на упорядоченный словарь OrderedDict, который нужно импортировать следующей командой:
Источник