rjust python что делает
Основные методы строк
Как мы уже неоднократно говорили, в Python строки являются объектами и у этих объектов есть методы, то есть, функции, выполняющие определенные действия:
Для примера, предположим, у нас имеется такая, уже классическая строка:
и мы собираемся для нее вызвать метод
который возвращает строку со всеми заглавными буквами. Для этого, пишется сама строка, ставится точка и записывается имя метода. В конце обязательно ставим круглые скобки:
Вот по такому синтаксису вызываются различные методы строк. Причем, сама переменная string продолжает ссылается на ту же самую неизмененную строку «Hello World!». Как мы с вами говорили на предыдущем занятии, строки – это неизменяемые объекты, поэтому метод upper возвращает новую строку с заглавными буквами, не меняя прежней.
Если бы нам потребовалось изменить строку, на которую ссылается переменная string, то это можно сделать так:
В этом случае переменная станет ссылаться на новый строковый объект с заглавными буквами, а прежний будет автоматически удален сборщиком мусора (так как на него не будет никаких внешних ссылок).
Также этот метод мы можем вызвать непосредственно у строкового литерала:
Так тоже можно делать.
Ну и раз уж мы затронули метод upper, который переводит буквы в верхний регистр, то отметим противоположный ему метод:
который, наоборот, преобразует все буквы в строчные. Например:
возвращает строку «hello world!». Соответственно, сама строка здесь остается прежней, измененным является новый строковый объект, который и возвращает метод lower. По такому принципу работают все методы при изменении строк. Следующий метод
String.count(sub[, start[, end]])
В самом простом случае, мы можем для строки
определить число повторений сочетаний «ra»:
получим значение 2 – именно столько данная подстрока встречается в нашей строке.
Теперь предположим, что мы хотим начинать поиск с буквы k, имеющей индекс 4.
Тогда метод следует записать со значением start=4:
и мы получим значение 1. Далее, укажем третий аргумент – индекс, до которого будет осуществляться поиск. Предположим, что мы хотим дойти до 10-го индекса и записываем:
и получаем значение 0. Почему? Ведь на индексах 9 и 10 как раз идет подстрока «ra»? Но здесь, также как и в срезах, последний индекс исключается из рассмотрения. То есть, мы говорим, что нужно дойти до 10-го, не включая его. А вот если запишем 11:
то последнее включение найдется.
String.find(sub[, start[, end]])
возвращает индекс первого найденного вхождения подстроки sub в строке String. А аргументы start и end работают также как и в методе count. Например:
вернет 1, т.к. первое вхождение «br» как раз начинается с индекса 1. Поставим теперь значение start=2:
и поиск начнется уже со второго индекса. Получим значение 8 – индекс следующего вхождения подстроки «br». Если мы укажем подстроку, которой нет в нашей строке:
Метод find ищет первое вхождение слева-направо. Если требуется делать поиск в обратном направлении: справа-налево, то для этого используется метод
String.rfind(sub[, start[, end]])
который во всем остальном работает аналогично find. Например:
возвратит 8 – первое вхождение справа.
Наконец, третий метод, аналогичный find – это:
String.index(sub[, start[, end]])
Он работает абсолютно также как find, но с одним отличием: если указанная подстрока sub не находится в строке String, то метод приводит к ошибке:
String.replace(old, new, count=-1)
Выполняет замену подстрок old на строку new и возвращает измененную строку. Например, в нашей строке, мы можем заменить все буквы a на o:
на выходе получим строку «obrokodobro». Или, так:
Используя этот метод, можно выполнять удаление заданных фрагментов, например, так:
Третий необязательный аргумент задает максимальное количество замен. Например:
Следующие методы позволяют определить: из каких символов состоит наша строка. Например, метод
возвращает True, если строка целиком состоит из букв и False в противном случае. Посмотрим как он работает:
вернет True, т.к. наша строка содержит только буквенные символы. А вот для такой строки:
мы получим False, т.к. имеется символ пробела.
возвращает True, если строка целиком состоит из цифр и False в противном случае. Например:
т.к. имеется символ точки, а вот так:
получим значение True. Такая проверка полезна, например, перед преобразованием строки в целое число:
возвращает новую строку с заданным числом символов width и при необходимости слева добавляет символы fillchar:
Получаем строку « abc» с двумя добавленными слева пробелами. А сама исходная строка как бы прижимается к правому краю. Или, можно сделать так:
Получим строку «—abc». Причем вторым аргументом можно писать только один символ. Если записать несколько, то возникнет ошибка:
Если ширина width будет меньше длины строки:
то ничего не изменится. Аналогично работает метод
который возвращает новую строку с заданным числом символов width, но добавляет символы fillchar уже справа:
возвращает коллекцию строк, на которые разбивается исходная строка String. Разбивка осуществляется по указанному сепаратору sep. Например:
Мы здесь разбиваем строку по пробелам. Получаем коллекцию из ФИО. Тот же результат будет и при вызове метода без аргументов, то есть, по умолчанию он разбивает строку по пробелам:
А теперь предположим, перед нами такая задача: получить список цифр, которые записаны через запятую. Причем, после запятой может быть пробел, а может и не быть. Программу можно реализовать так:
мы сначала убираем все пробелы и для полученной строки вызываем split, получаем список цифр.
возвращает строку из объединенных элементов списка, между которыми будет разделитель String. Например:
получаем строку «1, 2, 3, 4, 5, 6». Или так, изначально была строка:
и мы хотим здесь вместо пробелов поставить запятые:
Теперь fio2 ссылается на строку с запятыми «Иванов,Иван,Иванович».
удаляет пробелы и переносы строк в начале и конце строки. Например:
возвращает строку «hello world». Аналогичные методы:
String.rtrip() и String.ltrip()
удаляют пробелы и переносы строк только справа и только слева.
Вот такие методы строк существуют в Python. Для наглядности ниже они представлены в таблице:
Задания для самоподготовки
1. Написать программу корректности ввода телефонного номера по шаблону:
где x – любая цифра от 0 до 9. Данные представлены в виде строки.
2. Написать программу изменения строки
на строку, в которой все «+» заменены на «-» и удалены все пробелы
в котором все строки выровнены по правому краю (подсказка: воспользуйтесь методом rjust).
4. В строке «abrakadabra» найдите все индексы подстроки «ra» и выведите их (индексы) в консоль.
Видео по теме
#1. Первое знакомство с Python Установка на компьютер
#2. Варианты исполнения команд. Переходим в PyCharm
#3. Переменные, оператор присваивания, функции type и id
#4. Числовые типы, арифметические операции
#5. Математические функции и работа с модулем math
#6. Функции print() и input(). Преобразование строк в числа int() и float()
#7. Логический тип bool. Операторы сравнения и операторы and, or, not
#8. Введение в строки. Базовые операции над строками
#9. Знакомство с индексами и срезами строк
#10. Основные методы строк
#11. Спецсимволы, экранирование символов, row-строки
#12. Форматирование строк: метод format и F-строки
#14. Срезы списков и сравнение списков
#15. Основные методы списков
#16. Вложенные списки, многомерные списки
#17. Условный оператор if. Конструкция if-else
#18. Вложенные условия и множественный выбор. Конструкция if-elif-else
#19. Тернарный условный оператор. Вложенное тернарное условие
#20. Оператор цикла while
#21. Операторы циклов break, continue и else
#22. Оператор цикла for. Функция range()
#23. Примеры работы оператора цикла for. Функция enumerate()
#24. Итератор и итерируемые объекты. Функции iter() и next()
#25. Вложенные циклы. Примеры задач с вложенными циклами
#26. Треугольник Паскаля как пример работы вложенных циклов
#27. Генераторы списков (List comprehensions)
#28. Вложенные генераторы списков
#29. Введение в словари (dict). Базовые операции над словарями
#30. Методы словаря, перебор элементов словаря в цикле
#31. Кортежи (tuple) и их методы
#32. Множества (set) и их методы
#33. Операции над множествами, сравнение множеств
#34. Генераторы множеств и генераторы словарей
#35. Функции: первое знакомство, определение def и их вызов
#36. Оператор return в функциях. Функциональное программирование
#37. Алгоритм Евклида для нахождения НОД
#38. Именованные аргументы. Фактические и формальные параметры
#39. Функции с произвольным числом параметров *args и **kwargs
#40. Операторы * и ** для упаковки и распаковки коллекций
#41. Рекурсивные функции
#42. Анонимные (lambda) функции
#43. Области видимости переменных. Ключевые слова global и nonlocal
#44. Замыкания в Python
#45. Введение в декораторы функций
#46. Декораторы с параметрами. Сохранение свойств декорируемых функций
#47. Импорт стандартных модулей. Команды import и from
#48. Импорт собственных модулей
#49. Установка сторонних модулей (pip install). Пакетная установка
#50. Пакеты (package) в Python. Вложенные пакеты
#51. Функция open. Чтение данных из файла
#52. Исключение FileNotFoundError и менеджер контекста (with) для файлов
#53. Запись данных в файл в текстовом и бинарном режимах
#54. Выражения генераторы
#55. Функция-генератор. Оператор yield
#56. Функция map. Примеры ее использования
#57. Функция filter для отбора значений итерируемых объектов
#58. Функция zip. Примеры использования
#59. Сортировка с помощью метода sort и функции sorted
#60. Аргумент key для сортировки коллекций по ключу
#61. Функции isinstance и type для проверки типов данных
#62. Функции all и any. Примеры их использования
#63. Расширенное представление чисел. Системы счисления
#64. Битовые операции И, ИЛИ, НЕ, XOR. Сдвиговые операторы
#65. Модуль random стандартной библиотеки
© 2021 Частичное или полное копирование информации с данного сайта для распространения на других ресурсах, в том числе и бумажных, строго запрещено. Все тексты и изображения являются собственностью сайта
Python String rjust() Method
Example
Return a 20 characters long, right justified version of the word «banana»:
print(x, «is my favorite fruit.»)
Note: In the result, there are actually 14 whitespaces to the left of the word banana.
Definition and Usage
The rjust() method will right align the string, using a specified character (space is default) as the fill character.
Syntax
Parameter Values
Parameter | Description |
---|---|
length | Required. The length of the returned string |
character | Optional. A character to fill the missing space (to the left of the string). Default is » » (space). |
More Examples
Example
Using the letter «O» as the padding character:
We just launched
W3Schools videos
COLOR PICKER
LIKE US
Get certified
by completing
a course today!
CODE GAME
Report Error
If you want to report an error, or if you want to make a suggestion, do not hesitate to send us an e-mail:
Thank You For Helping Us!
Your message has been sent to W3Schools.
Top Tutorials
Top References
Top Examples
Web Courses
W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.
HOW-TO: Программа на Python, Часть 3
Содержание
Автор — Грэг Валтерс (Greg Walters)
В прошлый раз мы изучали списки, подстановку переменных, комментарии, сравнение и присвоение, операторы if и while. Я обещал, что в этой части мы изучим модули и функции. Давайте начнём.
Модули
Модули предлагают способ расширить программирование на Python. Вы можете создать свои модули, использовать те, которые поставляются с Python или которые написали другие. В самом Python есть сотни модулей, которые облегчают написание программ. Список модулей, поставляемых с Python, находится по адресу: http://docs.python.org/modindex.html. Некоторые модули предназначены для определённых операционных систем, но большинство из них кроссплатформенные и работают одинаково на Linux, Mac и Microsoft Windows. Для использования внешнего модуля необходимо импортировать его в программу. Один из модулей, поставляемых с Python, называется «random». Он даёт возможность генерировать псевдослучайные числа. Мы используем этот модуль в нашем первом примере.
Давайте разберём код по строкам. Первые четыре строки — это комментарии, о которых мы говорили в прошлый раз. Пятая строка говорит Python, что нужно использовать модуль «random». Мы должны явно указать Python на это.
В седьмой строке находится цикл «for», который является счетчиком и последовательно проходит числа от 1 до 14. В строке восемь вызывается функция randint(), которая отображает случайное целое число в диапазоне от 1 до 10. Обратите внимание, что мы должны указать из какого модуля эта функция. В этом случае мы вызываем её random.randint. Зачем вообще создавать модули? Если бы все возможные функции включались непосредственно в Python, Python был бы очень большим и медленным, к тому же отладка стала бы кошмаром. Используя модули, мы можем разбить код на группы, специфичные для определённых потребностей. Если, например, вам не нужно использовать функциональность баз данных, то вам и не нужно знать, что здесь есть модуль для SQLite. Однако, когда он вам понадобится, вы его легко найдёте. Мы ещё будем использовать модули баз данных в последующих статьях.
Начав работать с Python, возможно, вы создадите свои собственные модули, чтобы использовать уже написанный код снова и снова, без необходимости повторного набора. Если вам нужно поменять что-то в этом коде, вы сможете сделать это с минимальным риском для кода в основной программе. Правда, на это есть ограничения, и мы разберёмся с этим позже. Когда мы использовали команду «import random», мы получили доступ ко всем функциям в модуле random. Если же нам нужна только функция randint(), можно привести оператор импорта к такому виду:
Теперь при вызове функции не надо указывать идентификатор «random.», и наш код меняется на:
Функции
Когда мы импортировали модуль random, мы использовали функцию randint(). Функция — это блок кода, который создан для того, чтобы вызывать его в программе, обычно, более одного раза. Это упрощает работу над программой и предотвращает набор одного и того же кода снова и снова. Грубо говоря, если вам нужно написать некоторый код больше, чем 1-2 раза, стоит сделать его функцией. Хотя следующие два примера очень простые, это хорошие примеры функций. Теперь мы хотим, скажем, взять два числа, сложить их, перемножить, вычесть одно из другого, затем вывести на экран эти числа и результаты одновременно. Допустим, нам нужно сделать это три раза для трёх наборов чисел. Тогда наш пример будет выглядеть как код ниже.
Здесь нужно не только набрать много текста, но и непременно возникнут ошибки как при написании, так и при внесении изменений. Вместо этого мы создадим функцию, которую назовём «DoTwo». Она будет каждый раз брать два числа, проводить математические операции и выводить результат. Начнём с ключевого слова «def», которое сигнализирует о том, что мы собираемся определить функцию. После слова «def» добавим название функции и список параметров, если таковые имеются, в круглых скобках. Эту строку необходимо завершить двоеточием. Код функции набирается с отступом. Наш улучшенный простой пример (№2) показан ниже.
Как видите, здесь написано меньше кода — 8 строк вместо 12. Если нам нужно будет что-либо поменять в функции, мы сможем сделать это, не создавая проблем для нашей программы. Чтобы вызвать функцию, нужно написать её имя и параметры.
Теперь другой пример функции. Рассмотрите следующие условия.
Мы хотим создать программу, которая будет выводить список покупок в красивом формате. Это должно выгля-деть примерно как текст ниже.
Стоимость каждой покупки и сумма должны быть в долларах и центах. Ширина вывода должна быть изменяемой, значения слева и справа — тоже. Чтобы всё сделать, нам понадобятся три функции. Первая будет выводить верхнюю и нижнюю линии, вторая будет выводить строки покупок, включая строку суммы, а третья — разделительную линию. К счастью, в Python можно это сделать очень просто. Если вы помните, мы вывели строку, умноженную на 4, и она вернула четыре копии одной и той же строки. Мы можем использовать это в своё преимущество. Чтобы распечатать наши верхнюю или нижнюю линии, мы можем взять нужную ширину в виде числа, отнять от этого числа 2 (для двоих плюсов по бокам), и использовать символы ‘=’ между плюсами. То есть в результате если мы возьмем длину линии, например, 10, Python отнимет 2 от этого числа для плюсов по бокам, а остальные 8 использует для плюсов, и получиться вот так:
Чтобы сделать еще проще, мы будем использовать переменные замены, чтобы поставить все эти элементы в одной строку. Таким образом, наша строка в виде кода Python будет выглядеть как ‘return ‘%s%s%s’ % (‘+’,(‘=’ * width-2 )),’+’). Теперь мы могли бы вывести это на экран, но мы будем использовать возвращённое ключевое слово, чтобы отправить генерируемый строку обратно в нашу вызванную линию. Назовём нашу функцию ‘TopOrBottom’ и код этой функции будет выглядеть вот так:
Мы могли бы оставить за скобками комментарий, но приятно, чтобы иметь возможность сразу же установить, что за параметр является ‘width’. Чтобы вызвать эту функцию, мы должны ввести ‘print TopOrBottom(40)’ или какую-либо другую длину линии. Теперь мы имеем функцию, которая позаботится о двух строках. Мы можем написать новую функцию для создания разделительной черты, используя тот же тип кода … или мы можем модифицировать только что сделанную включить выбор символов для использования плюсов в середине. Давайте сделаем это. Мы можем все еще вызвать это с помощью TopOrBottom.
Теперь вы можете видеть, где комментарии пригодятся. Помните, мы возвращаем сгенерированные строки, поэтому мы должны иметь что-то для получения обратно, когда мы делаем к ней вызов. Вместо назначения его на другую строку, мы просто выводим его на экран. Вот строка вызова.
Так что теперь, мы не только позаботились о тех трёх линиях, мы сократили количество процедур, что нам нужно от 3 до 2. Таким образом, нам нужно распечатать только центральную часть.
Давайте вызовем новую функцию ‘Fmt’. Передадим ей 4 значения параметра: val1– имя покупки для вывода налево leftbit – длина левого «столбца» val2 – цена покупки для вывода вправо (который должен быть «плавающим» значением) rightbit – длина правого «столбца».
Первая задача заключается в форматировании информация для правой стороны. Поскольку мы хотим, чтобы отображалось долларах и центах, мы можем использовать специальную функцию замены переменной, которая гласит: печать значения как число с плавающей точкой с n-ным числом знаков после десятичной точки. Команда будет ‘%2.f’. Мы назначим это к переменной, названной ‘part2’. Таким образом наша строка кода будет ‘part2 = ‘%.2f’ % val2′. Мы также можем использовать набор функций, встроенных в строки Python, называющиеся ljust и rjust. Ljust будет отправлять строки влево, делая отступы справа с любого символа, которого Вы хотите. Rjust делает то же самое, кроме того, что отступает на левую сторону. Теперь давайте немного уберём мусор. Используя замены мы бросаем вместе большые строки и возвращаем его в код вызова. Вот наша следующая строка.
Хотя это выглядит довольно сложно на первый взгляд, давайте проанализируем код:
Вот и всё. Теперь стоит заняться поиском ошибок. Вы можете сделать это в качестве самостоятельного упражнения. Итак… наша функция «Fmt» состоит всего из двух строчек кода, не включая определение функции и комментарии. Можно вызвать её так.
И снова, мы можем назначить возвращённое значение другой строке, но можем и просто вывести его на печать. Напоминаю, что мы указываем ширину слева — 30, а справа — 10. Сумма равна 40. Это число мы и передали в функцию «TopOrBottom» раньше. Теперь запустите ваш редактор и введите код, который расположен ниже.
Сохраните код в файл «pprint1.py» и запустите его. Должно получиться что-то похожее на текст справа ниже.
Хоть этот пример и простой, он должен дать вам понять, как и зачем использовать функции. Теперь давайте немного углубимся и узнаем побольше о списках. Помните во второй статье цикла я впервые упомянул списки? Я лишь забыл вам сказать, что списки могут включать всё, даже другие списки. Давайте создадим список в нашей программе и заполним его так:
Если нам нужно обратиться к этой пере-менной, как к обычному списку, то следует напи-сать print items[0]. Однако, в этом случае мы получим [‘Soda’,1.45]. Это не то, чего мы добиваемся при обычных обстоятельствах. Мы хотим обратиться к каждому элементу в этом первом списке. Тогда нужно использовать «print itms[0][0]», чтобы получить «Soda» и [0][1], чтобы получить стоимость — 1.45. Теперь у нас есть 4 покупки, и мы хотим использовать информацию о них в нашем красивом шаблоне. Всё, что нам нужно поменять, это информацию в конце программы. Сохраните последнюю версию кода как «pprint2.py», закомментируйте два определения пунктов и введите список, который вы видите сверху. Это должно выглядеть так.
Удалите все строки, в которых вызывается Fmt(). Затем добавьте следующие (с #NEW LINE в конце) так, чтобы код стал похож на этот текст:
Я создал переменную-счётчик для цикла, которая обходит весь список для каждого элемента. Заметьте, что я также добавил переменную «total». Делаем её равной нулю прежде, чем мы зайдём в цикл «for». Теперь, выводя на печать каждую покупку, мы прибавляем её стоимость к «total». В конце мы выводим саму «total» после разделительной линии. Сохраните вашу программу и запустите её. Вы увидите что-то, похожее на текст снизу.
Если вы хотите, вы можете добавить в список ещё больше наименований и посмотреть, как будет работать программа.
На этот раз хватит. На следующем занятии мы подробно изучим классы. Не скучайте!