поменять местами буквы в строке в python
Я пытаюсь переключить первый символ в строке и переместить его в конец строки. Ему нужно повторить поворот несколько раз. Например, rotateLeft(hello,2)=llohe .
Я пробовал делать
Правильно ли это, и как бы вы это сделали, если удалить последний символ и перенести его в начало строки?
3 ответа
Вы можете сократить его до
и просто используйте отрицательные индексы для поворота «вправо»:
Если вы хотите продолжать вращаться даже после превышения длины строки, используйте
чтобы вы получили
Я знаю, что это старый, но вы можете использовать collections.deque :
Единственная проблема с кодом, который вы опубликовали, заключается в том, что вы пытаетесь использовать «str» в качестве имени для строки. Это имя встроенной функции в Python и почему вы получаете ошибки. Подробнее: http://docs.python.org/library/functions.html#str Вы не можете использовать это как имя для чего-то.
Изменение имени строки, которую вы передаете rotateLeft, решит вашу проблему.
Python — поменять порядок букв в строке
Программа должна менять порядок букв в строке, но вместо этого она переделывает сам буквенный состав строки. Вот код:
Проблема в том, что в mass2 вы просто набиваете случайные символы из mass1 без учёта повторов (не проверяете, что символы уже были использованы)
В модуле random есть функция shuffle как раз для перемешивания:
Также, там же есть функция sample :
если делать примерно как автор, то так
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.3.13.43310
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как поменять местами буквы при вводе в python?
Затем поменять местами первую цифру с третьей и поменять местами вторую цифру с четвертой.
Да, это для класса программирования. Я пишу проект, и он занимает меня навсегда. — Pr0cl1v1ty
что ты пробовал? Почему это не сработало? Есть ли что-то конкретное, на чем вы застряли? — Doug T.
3 ответы
Здесь другой подход. Вы должны вручную указать, какие позиции вы хотите поменять местами. Итак, здесь вы можете изменить значение swap_seq который представляет собой просто последовательность строковых индексов.
Например, s[0]+s[1]+s[2]+s[3]+s[4] «Привет» и s[2]+s[3]+s[0]+s[1]+s[4] это «llHeo».
Редактировать: swapped теперь пишется с большой буквы, только если s пишется с большой буквы
ответ дан 25 апр.
Хорошо, тогда как бы я вычел или изменил значение каждого введенного числа? — Pr0cl1v1ty
Это еще одно требование? Объясни подробнее, что ты имеешь в виду. — лекодспортиф
Да, поэтому мы пытаемся зашифровать данные здесь. Я хочу знать, как изменить значения. — Pr0cl1v1ty
Вы можете просто изменить значения s и swap_seq . Для чего-то более автоматического реальный вопрос заключается в том, как вы хотите определить последовательность обмена. — лекодспортиф
Это нетривиально. Это можно сделать с помощью индексации и нарезки строк. Но вам также придется учитывать капитализацию и сохранять ее.
Поменяйте местами первое с третьим и поменяйте корпус
Поменять местами вторую с четвертой
Превратите его обратно в строку
Это не будет работать для всех случаев, но в этом конкретном случае это то, о чем вы просили.
Редактировать: Сделав шаг вперед с помощью функции:
ответ дан 25 апр.
Что ты имеешь в виду? Вы должны быть более конкретными! — джатанизм
кажется, что это список только для одного слова, что, если бы кто-то ввел другое слово. — Pr0cl1v1ty
Как я уже сказал, это работает только для примера, который вы предоставили. Это иллюстрирует, что вы можете сделать, чтобы поменять местами буквы и изменить их регистр. Я обновил ответ примером. — джатанизм
Мы можем поменять местами две буквы в слове с помощью индексации и нарезки. Например, чтобы поменять местами первую и последнюю букву слова «Код», проверьте следующий код.
О / р: — «Eodc»
И этот код можно применить универсально к любому слову, независимо от длины этого слова. Также, изменив номер индекса. вы можете изменить буквы, которые хотите поменять местами, следующим образом:
Урок 4
Работа со строками
Последовательности в Python
Последовательность(Sequence Type) — итерируемый контейнер, к элементам которого есть эффективный доступ с использованием целочисленных индексов.
Последовательности могут быть как изменяемыми, так и неизменяемыми. Размерность и состав созданной однажды неизменяемой последовательности не может меняться, вместо этого обычно создаётся новая последовательность.
-
— изменяемая — неизменяемая — неизменяемая
- Строка (str, unicode) — неизменяемая
2. С помощью тройных кавычек.
Главное достоинство строк в тройных кавычках в том, что их можно использовать для записи многострочных блоков текста. Внутри такой строки возможно присутствие кавычек и апострофов, главное, чтобы не было трех кавычек подряд. Пример:
Экранированные последовательности — это служебные наборы символов, которые позволяют вставить нестандартные символы, которые сложно ввести с клавиатуры.
В таблице перечислены самые часто используемые экранированные последовательности:
«Сырые строки»
Если перед открывающей кавычкой стоит символ ‘r’ (в любом регистре), то механизм экранирования отключается.
Это может быть нужно, например, в такой ситуации:
str = r’C:\new_file.txt’
Итак, строки в Python поддерживают две группы методов:
-
( list ) ( tuple ) ( range ).
- Обработки двоичных данных( binary data ) и
- Текстовых строк( str ).
Далее будем рассматривать базовые операции, которые можно выполнять со строками. Начнем со сложения и умножения строк. Они, как мы уже выяснили выше, относятся к группе общих операций над последовательностями. Итак:
1. Оператор сложения строк +
+ — оператор конкатенации строк. Он возвращает строку, состоящую из совокупности других строк.
Например:
Срезы так же относятся к группе общих операций — они используются для всех последовательностей, а значит и для строковых переменных. Рассмотрим подробнее, что это такое и с чем его едят.
Срез (slice) — извлечение из данной строки одного символа или некоторого фрагмента подстроки или подпоследовательности.
Индекс — номер символа в строке (а также в других структурах данных: списках, кортежах). Обратите внимание, что нумерация начинается с 0 . Если указать отрицательное значение индекса, то номер будет отсчитываться с конца, начиная с номера -1 .
Есть три формы срезов:
1. Самая простая форма среза — взятие одного символа строки — S[i] , где S — строка, i — индекс. Пример:
Задачи по темам
Функции поиска
Как вы уже могли заметить, в Python существует две похожих функции для поиска подстроки — find() (относится к группе строковых методов) и index() (общий метод для SequenceType данных) . Разница в том, что find() вернет -1 , если не найдет искомое, а index() выкинет исключение ValueError .
Кроме того, необходимо помнить, что если нужно только удостовериться, что подстрока присутствует внутри строки — можно просто воспользоваться методом in :
>>> ‘Py’ in ‘Python’
True
В Python версии 3.6 был представлен новый способ форматирования строк. Эта функция официально названа литералом отформатированной строки, но обычно упоминается как f-string . Способов форматирования в Python довольно много, но работу с f-строками мы считаем самым удобным и перспективным способом, поэтому рассмотрим именно его.
Одной простой особенностью f-строк, которую вы можете начать использовать сразу, является интерполяция переменной. Вы можете указать имя переменной непосредственно в f-строковом литерале ( f’string’ ), и Python заменит имя соответствующим значением.
Например, предположим, что вы хотите отобразить результат арифметического вычисления. Это можно сделать с помощью простого print() и оператора , , разделяющего числовые значения и строковые: