Python __str__() and __repr__() functions

Python String Functions

The list of String Functions in Python Programming language

Python String Functions Description
capitalize() This string function converts the first character to Capitalize and following characters to Lowercase.
casefold() It returns the given string in Lowercase.
center() This method is to Justify the string to Center and fill the remaining width with default white spaces
count() This python string function Counts, How many times the string occurs.
encode() Returns the encoded version of a string object
endswith() Returns TRUE if the string ends with the specified substring
expandtabs() It returns a copy of the given string, where all the tab characters replaced with one or more spaces.
find() It returns the index position of the first occurrence of a specified string. It return -1 if the specified string not found
format() Useful to format the string
format_map() Format the string
index() It returns the index position of the first occurrence of a specified string. It raises ValueError if the specified string not found.
isalnum() This python string function returns TRUE if the string contains letters and numbers
isalpha() Returns TRUE if the string has at least one letter, and all the letters are Alphabetic
isdecimal() This method returns TRUE if the string has at least one letter, and all the letters are Decimal
isdigit() This python string function returns TRUE if the string has at least one letter, and all the letters are Digits
isidentifier() Returns TRUE if the string is a valid identifier
islower() Returns TRUE if the string has at least one letter, and all the letters are in Lowercase
isnumeric() It returns TRUE if the string has at least one letter, and all the letters are Numeric
isprintable() This python string function returns TRUE if all the letters are Printable
isspace() It returns TRUE if the string contains only white spaces
istitle() Returns TRUE if the string has at least one letter, and it is a Title.
isupper() This python string function returns TRUE if the string has at least one letter, and all the letters are in Uppercase
join() Join (Concatenate) a list of strings
ljust() Justify the string to the Left-hand side and fill the remaining width with default white spaces
lower() It converts the given String into Lowercase letters and returns a new string.
lstrip() This python string function removes the white spaces from the Left-hand side of a string
maketrans() It returns the transaction table. We can further use this transaction in translate() method.
partition() It partitions the given string at the first occurrence of the specified separator and returns a tuple with three arguments.
replace() This python string function searches for a specified string and replaces it with a new string value.
rfind() It returns the index position of the Last occurrence of a specified string. It returns -1 if the specified string not found
rindex() It returns the index position of the Last occurrence of a specified string. It raises ValueError if the specified Python string not found
rjust() Justify the string to the Right-hand side and fill the remaining width with default white spaces
rpartition() This python string function partitions the given string using the specified separator and returns a tuple with three arguments.
rsplit() Split the string into a list of strings based on the specified delimiter. It happens from right to left
rstrip() It removes the white spaces from the Right-hand side of a string
split() This python string function is very useful to Split the string into a list of strings based on the specified delimiter
splitlines() It returns a list of lines in the given string by breaking the given string at line boundaries.
startswith() Returns TRUE if the string Starts with the specified substring
strip() It removes the white spaces from both ends. Performs both lstrip() and rstrip()
swapcase() Converts the Lowercase letters into Uppercase. And Uppercase letters into Lowercase
title() This python string function converts the first character in each word to Uppercase and following characters to Lowercase
translate() Returns a Copy of the given string in which each character mapped with the transaction table.
upper() Converts the given string into Uppercase letters and returns a new string.
zfill() Returns a copy of the string filled with ASCII ‘0’ digits on the left-hand side of the string to make a string length to the specified width.

Python Tutorial

Python HOMEPython IntroPython Get StartedPython SyntaxPython CommentsPython Variables
Python Variables
Variable Names
Assign Multiple Values
Output Variables
Global Variables
Variable Exercises

Python Data TypesPython NumbersPython CastingPython Strings
Python Strings
Slicing Strings
Modify Strings
Concatenate Strings
Format Strings
Escape Characters
String Methods
String Exercises

Python BooleansPython OperatorsPython Lists
Python Lists
Access List Items
Change List Items
Add List Items
Remove List Items
Loop Lists
List Comprehension
Sort Lists
Copy Lists
Join Lists
List Methods
List Exercises

Python Tuples
Python Tuples
Access Tuples
Update Tuples
Unpack Tuples
Loop Tuples
Join Tuples
Tuple Methods
Tuple Exercises

Python Sets
Python Sets

Access Set Items
Add Set Items
Remove Set Items
Loop Sets
Join Sets
Set Methods
Set Exercises

Python Dictionaries
Python Dictionaries

Access Items
Change Items
Add Items
Remove Items
Loop Dictionaries
Copy Dictionaries
Nested Dictionaries
Dictionary Methods
Dictionary Exercise

Python If…ElsePython While LoopsPython For LoopsPython FunctionsPython LambdaPython ArraysPython Classes/ObjectsPython InheritancePython IteratorsPython ScopePython ModulesPython DatesPython MathPython JSONPython RegExPython PIPPython Try…ExceptPython User InputPython String Formatting

Using quotes in Python

Strings in Python are delimited by single or double quote characters.
What if we wanted to display quotes, for example in a direct speech?
There are two basic ways to do this.

quotes.py

#!/usr/bin/env python

# quotes.py

print("There are many stars.")
print("He said, \"Which one is your favourite?\"")

print('There are many stars.')
print('He said, "Which one is your favourite?"')

We use the character to escape additional quotes. Normally the double
quote character is used to delimit a string literal. However, when escaped, the
original meaning is suppressed. It appears as a normal character and can be
used within a string literal. The second way to use quotes within quotes is
to mix single and double quotes.

$ ./quotes.py
There are many stars.
He said, "Which one is your favourite?"
There are many stars.
He said, "Which one is your favourite?"

This is the output.

Пример: разделение строки по классу

Классы регулярных выражений – это классы, охватывающие группу символов. Мы будем использовать один из таких классов, \d, который соответствует любой десятичной цифре.

В этом примере мы также будем использовать +, который соответствует одному или нескольким предыдущим символам.

Регулярное выражение ‘\d +’ соответствует одной или нескольким десятичным цифрам. В этом примере мы будем использовать это регулярное выражение для разделения строки на фрагменты, разделенные одной или несколькими десятичными цифрами.

import re

#a string
str = 'foo635bar4125mango2apple21orange'
#split with regular expression
chunks = re.split('\d+',str)
print(chunks)

Вывод:

Мы узнали, как повторно упаковать строку для разделения с помощью регулярных выражений.
Вы можете разделить строку пробелом в качестве разделителя в Python с помощью метода String.split().

В этом руководстве мы узнаем, как разделить строку пробелом в Python с помощью методов String.split() и re.split().

В этом примере мы возьмем строку, содержащую слова, элементы или фрагменты, разделенные пробелом. Затем мы разделим строку по пробелу с помощью метода String.split(), который возвращает список.

str = '63 41 92 81 69 70'

#split string by single space
chunks = str.split(' ')

print(chunks)

Вывод:

Как извлечь подпоследовательность из строки?

Подпоследовательность строки — это последовательность символов, которые извлекаются из строки, не нарушая порядок, в котором символы присутствуют в строке.

Символы в подпоследовательности могут быть или не быть непрерывными символами входной строки Python.

Чтобы извлечь подпоследовательность, я использую оператор квадратной скобки . Синтаксис для захвата подпоследовательности из строки — string_name».

Difference обозначает число, которое должно быть добавлено к start_index, чтобы получить индекс следующего символа, который будет включен в подпоследовательность, а difference-1 — это символы, которые пропускаются после того, как символ включен в подпоследовательность.

Рассмотрим пример:

Вывод программы:

Задания для самоподготовки

1. Написать
программу корректности ввода телефонного номера по шаблону:

x(xxx)xxxxxx

где x – любая цифра от
0 до 9. Данные представлены в виде строки.

2. Написать
программу изменения строки

«2+3+6.7 +
82 + 5.7 +1»

на строку, в
которой все «+» заменены на «-» и удалены все пробелы

3. Написать
программу вывода чисел 0; -100; 5.6; -3 в виде столбца:

	0
	-100
	5.6
	-3

в котором все
строки выровнены по правому краю (подсказка: воспользуйтесь методом rjust).

4. В строке «abrakadabra» найдите все
индексы подстроки «ra» и выведите их (индексы) в консоль.

Видео по теме

Python 3 #1: установка и запуск интерпретатора языка

Python 3 #2: переменные, оператор присваивания, типы данных

Python 3 #3: функции input и print ввода/вывода

Python 3 #4: арифметические операторы: сложение, вычитание, умножение, деление, степень

Python 3 #5: условный оператор if, составные условия с and, or, not

Python 3 #6: операторы циклов while и for, операторы break и continue

Python 3 #7: строки — сравнения, срезы строк, базовые функции str, len, ord, in

Python 3 #8: методы строк — upper, split, join, find, strip, isalpha, isdigit и другие

Python 3 #9: списки list и функции len, min, max, sum, sorted

Python 3 #10: списки — срезы и методы: append, insert, pop, sort, index, count, reverse, clear

Python 3 #11: списки — инструмент list comprehensions, сортировка методом выбора

Python 3 #12: словарь, методы словарей: len, clear, get, setdefault, pop

Python 3 #13: кортежи (tuple) и операции с ними: len, del, count, index

Python 3 #14: функции (def) — объявление и вызов

Python 3 #15: делаем «Сапер», проектирование программ «сверху-вниз»

Python 3 #16: рекурсивные и лямбда-функции, функции с произвольным числом аргументов

Python 3 #17: алгоритм Евклида, принцип тестирования программ

Python 3 #18: области видимости переменных — global, nonlocal

Python 3 #19: множества (set) и операции над ними: вычитание, пересечение, объединение, сравнение

Python 3 #20: итераторы, выражения-генераторы, функции-генераторы, оператор yield

Python 3 #21: функции map, filter, zip

Python 3 #22: сортировка sort() и sorted(), сортировка по ключам

Python 3 #23: обработка исключений: try, except, finally, else

Python 3 #24: файлы — чтение и запись: open, read, write, seek, readline, dump, load, pickle

Python 3 #25: форматирование строк: метод format и F-строки

Python 3 #26: создание и импорт модулей — import, from, as, dir, reload

Python 3 #27: пакеты (package) — создание, импорт, установка (менеджер pip)

Python 3 #28: декораторы функций и замыкания

Python 3 #29: установка и порядок работы в PyCharm

Python 3 #30: функция enumerate, примеры использования

Python basic string operations

In the next example, we will do string multiplication and concatenation.

add_multiply.py

#!/usr/bin/env python

# add_multiply.py

print("eagle " * 5)

print("eagle " "falcon")

print("eagle " + "and " + "falcon")

The operator repeates the string n times. In our
case five times. Two string literals next to each other are automatically
concatenated. We can also use the operator to explicitly
concatenate the strings.

$ ./add_multiply.py 
eagle eagle eagle eagle eagle 
eagle falcon
eagle and falcon

This is the output of script.

We can use the function to calculate the length
of the string in characters.

eagle.py

#!/usr/bin/python

# eagle.py

var = 'eagle'

print(var, "has", len(var), "characters")

In the example, we compute the number of characters in a string variable.

$ ./eagle.py 
eagle has 5 characters

Some programming languages enable implicit addition of strings and numbers.
In Python language, this is not possible. We must explicitly convert values.

string_number.py

#!/usr/bin/python

# string_number.py

print(int("12") + 12)
print("There are " + str(22) + " oranges.")
print(float('22.33') + 22.55)

We use a built-in function to convert a string
to integer. And there is also a built-in function
to convert a number to a string. And we use the
function to convert a string to a floating point number.

Строки нарезки в Python – примеры

Струны нарезки Python могут быть сделаны по-разному.

Обычно мы получаем доступ к строковым элементам (символам) с помощью простой индексации, которая начинается с до N-1 (n – длина строки). Следовательно, для доступа к 1-й Элемент строки Мы можем просто использовать код ниже.

s1 = String1

Опять же, есть еще один способ получить доступ к этим персонажам, то есть используя Отрицательная индексация Отказ Отрицательная индексация начинается с -1 к -n (n – длина для данной строки). Примечание, отрицательная индексация выполняется с другого конца строки. Следовательно, для доступа к первому символу на этот раз нам нужно следовать указанному ниже коду.

s1 = String1

Теперь давайте рассмотрим некоторые способы, следующие, которые мы можем нарезать строку, используя вышеуказанную концепцию.

1. Строки нарезки в Python с началом и концом

Мы можем легко нарезать данную строку, упомянувая начальные и окончательные индексы для желаемой подковы, которую мы ищем. Посмотрите на приведенный ниже пример, он объясняет нарезку строк, используя начальные и окончательные индексы для обычной, так и для негативного метода индексации.

#string slicing with two parameters
s = "Hello World!"

res1 = s
res2 = s #using negative indexing

print("Result1 = ",res1)
print("Result2 = ",res2)

Выход :

Result1 =  llo Wo
Result2 =  rld

Здесь,

  • Мы инициализируем строку, как “Привет мир!” ,
  • Сначала мы нарезаем данную строку с начальным индексом 2 и окончание индекса как 8 Отказ Это означает, что результирующая подконта будет содержать символы из S к S ,
  • Аналогично, для следующего, результирующая подкора должна содержать символы из S к S Отказ

Следовательно, наш выход оправдан.

2. Струки срез, используя только начало или конец

Как упоминалось ранее, все три параметра для нарезки строки являются необязательными. Следовательно, мы можем легко выполнить наши задачи с использованием одного параметра. Посмотрите на код ниже, чтобы получить четкое понимание.

#string slicing with one parameter
s1= "Charlie"
s2="Jordan"

res1 = s1 #default value of ending position is set to the length of string
res2 = s2 #default value of starting position is set to 0

print("Result1 = ",res1)
print("Result2 = ",res2)

Выход :

Result1 =  arlie
Result2 =  Jord

Здесь,

Сначала инициализируем две строки, S1 и S2 , Для нарезки их обоих мы просто упомяну о start_pos Для S1 и End_Pos только для S2, Следовательно, для RES1 , он содержит подконтную строку S1 из индекса 2 (как упоминалось) до последнего (по умолчанию он устанавливается на N-1)

Принимая во внимание, что для RES2 диапазон индексов лежит от 0 до 4 (упомянутых).

3. Строки нарезки в Python со ступенчатым параметром

Значение решает прыжок операции нарезки займет из одного индекса к другому. Посмотрите на пример ниже.

#string slicing with step parameter
s= "Python"
s1="Kotlin"

res = s
res1 = s1 #using negative parameters

print("Resultant sliced string = ",res)
print("Resultant sliced string(negative parameters) = ",res1)

Выход :

Resultant sliced string =  Pto
Resultant sliced string(negative parameters) =  nl

В коде выше,

  • Мы инициализируем две строки S и S1 и попытайтесь нарезать их за данные начальные и окончательные индексы, как мы сделали для нашего первого примера,
  • Но на этот раз мы упомянули шаг значение, которое было установлено на 1 по умолчанию для предыдущих примеров,
  • Для RES, имеющих размер шага 2 означает, что, в то время как прохождение для получения подстроки от индекса от 0 до 4, каждый раз, когда индекс будет увеличен по значению 2. То есть первый символ S («P») следующие символы в подпологе будут S и S до тех пор, пока индекс не будет меньше 5.
  • Для следующего я. RES1 Упомянутый шаг (-2). Следовательно, похоже на предыдущий случай, персонажи в подстроке будут S1 Тогда S1 или S1 до тех пор, пока индекс не будет меньше (-4).

4. Реверсируя строку с помощью нарезки в Python

С использованием отрицательной индексной строки нарезки в Python мы также можем поменять строку и хранить ее в другой переменной. Для этого нам просто нужно упомянуть Размер (-1) Отказ

Давайте посмотрим, как это работает в приведенном ниже примере.

#reversing string using string slicing
s= "AskPython"
rev_s = s #reverse string stored into rev_s

print(rev_s)

Выход :

nohtyPksA

Как мы видим, строка S обращается и хранится в Отказ Примечание : Для этого тоже исходная строка остается неповрежденной и нетронутой.

Вводная информация о строках

Как и во многих других языках программирования, в Python есть большая коллекция функций, операторов и методов, позволяющих работать со строковым типом.

Литералы строк

Литерал – способ создания объектов, в случае строк Питон предлагает несколько основных вариантов:

Если внутри строки необходимо расположить двойные кавычки, и сама строка была создана с помощью двойных кавычек, можно сделать следующее:

Разницы между строками с одинарными и двойными кавычками нет – это одно и то же

Какие кавычки использовать – решать вам, соглашение PEP 8 не дает рекомендаций по использованию кавычек. Просто выберите один тип кавычек и придерживайтесь его. Однако если в стоке используются те же кавычки, что и в литерале строки, используйте разные типы кавычек – обратная косая черта в строке ухудшает читаемость кода.

Кодировка строк

В третьей версии языка программирования Python все строки представляют собой последовательность Unicode-символов.

В Python 3 кодировка по умолчанию исходного кода – UTF-8. Во второй версии по умолчанию использовалась ASCII. Если необходимо использовать другую кодировку, можно разместить специальное объявление на первой строке файла, к примеру:

Максимальная длина строки в Python

Максимальная длина строки зависит от платформы. Обычно это:

  • 2**31 — 1 – для 32-битной платформы;
  • 2**63 — 1 – для 64-битной платформы;

Константа , определенная в модуле

Конкатенация строк

Одна из самых распространенных операций со строками – их объединение (конкатенация). Для этого используется знак , в результате к концу первой строки будет дописана вторая:

При необходимости объединения строки с числом его предварительно нужно привести тоже к строке, используя функцию

Сравнение строк

При сравнении нескольких строк рассматриваются отдельные символы и их регистр:

  • цифра условно меньше, чем любая буква из алфавита;
  • алфавитная буква в верхнем регистре меньше, чем буква в нижнем регистре;
  • чем раньше буква в алфавите, тем она меньше;

При этом сравниваются по очереди первые символы, затем – 2-е и так далее.

Далеко не всегда желательной является зависимость от регистра, в таком случае можно привести обе строки к одному и тому же регистру. Для этого используются функции – для приведения к нижнему и – к верхнему:

Как удалить строку в Python

Строки, как и некоторые другие типы данных в языке Python, являются неизменяемыми объектами. При задании нового значения строке просто создается новая, с заданным значением. Для удаления строки можно воспользоваться методом , заменив ее на пустую строку:

Или перезаписать переменную пустой строкой:

Обращение по индексу

Для выбора определенного символа из строки можно воспользоваться обращением по индексу, записав его в квадратных скобках:

Индекс начинается с 0

В Python предусмотрена возможность получить доступ и по отрицательному индексу. В таком случае отсчет будет вестись от конца строки:

Escape Characters

Following table is a list of escape or non-printable characters that can be represented with backslash notation.

An escape character gets interpreted; in a single quoted as well as double quoted strings.

Backslash notation Hexadecimal character Description
\a 0x07 Bell or alert
\b 0x08 Backspace
\cx   Control-x
\C-x   Control-x
\e 0x1b Escape
\f 0x0c Formfeed
\M-\C-x   Meta-Control-x
\n 0x0a Newline
\nnn   Octal notation, where n is in the range 0.7
\r 0x0d Carriage return
\s 0x20 Space
\t 0x09 Tab
\v 0x0b Vertical tab
\x   Character x
\xnn   Hexadecimal notation, where n is in the range 0.9, a.f, or A.F

Основные строковые функции

capitalize() Преобразует первый символ строки в верхний регистр str_name.capitalize()
casefold() Он преобразует любую строку в нижний регистр независимо от ее регистра str_name.casefold()
center() Используется для выравнивания строки по центру str_name.center (длина, символ)
count() Для подсчета количества раз, когда определенное значение появляется в строке. str_name.count (значение, начало, конец)
endswith() Проверяет, заканчивается ли строка указанным значением, затем возвращает True str_name.endswith (значение, начало, конец)
find() Используется для определения наличия указанного значения в строке str_name.find (значение, начало, конец)
index() Он используется для поиска первого вхождения указанного значения в строке str_name.index (значение, начало, конец)
isalnum() Проверяет, все ли символы являются буквенно-цифровыми, затем возвращает True str_name.isalnum()
isalpha() Проверяет, все ли символы являются алфавитными (az), затем возвращает True str_name.isalpha()
isdecimal() Проверяет, все ли символы являются десятичными (0-9), затем возвращает True str_name.isdecimal()
isdigit() Проверяет, все ли символы являются цифрами, затем возвращает True str_name.isdigit()
islower() Проверяет, все ли символы в нижнем регистре, затем возвращает True str_name.islower()
isnumeric() Проверяет, все ли символы являются числовыми (0-9), затем возвращает True str_name.isnumeric()
isspace() Проверяет, все ли символы являются пробелами, затем возвращает True str_name.isspace()
isupper() Проверяет, все ли символы в верхнем регистре, затем возвращает True str_name.isupper()
lower() Используется для преобразования всех символов в нижний регистр str_name.lower()
partition() Используется для разделения строки на кортеж из трех элементов. str_name.partition (значение)
replace() Используется для замены указанного слова или фразы другим словом или фразой в строке. str_name.replace (старое значение, новое значение, количество)
split() Используется для разделения строки на список str_name.split (разделитель, maxsplit)
splitlines() Используется для разделения строки и составления ее списка. Разбивается на разрыв строки. str_name.splitlines (keeplinebreaks)
startswith() Проверяет, начинается ли строка с указанного значения, затем возвращает True str_name.startswith (значение, начало, конец)
strip() Используется для удаления символов, указанных в аргументе, с обоих концов str_name.strip (символы)
swapcase() Используется для замены строки верхнего регистра на нижний регистр или наоборот. str_name.swapcase()
title() Преобразует начальную букву каждого слова в верхний регистр str_name.title()
upper() Он используется для преобразования всех символов в строке в верхний регистр str_name.upper()

Форматирование строк

Форматирование строк (также известно как замещение) – это замещение значений в базовой строке. Большую часть времени вы будете вставлять строки внутри строк, однако, вам также понадобиться вставлять целые числа и числа с запятыми в строки весьма часто. Существует два способа достичь этой цели. Начнем с старого способа, после чего перейдем к новому:

Python

# -*- coding: utf-8 -*-

my_string = «Я люблю %s» % «Python»
print(my_string) # Я люблю Python

var = «яблоки»
newString = «Я ем %s» % var
print(newString) # Я ем яблоки

another_string = «Я люблю %s и %s» % («Python», var)
print(another_string) # Я люблю Python и яблоки

1
2
3
4
5
6
7
8
9
10
11

# -*- coding: utf-8 -*-
 

my_string=»Я люблю %s»%»Python»

print(my_string)# Я люблю Python

var=»яблоки»

newString=»Я ем %s»%var

print(newString)# Я ем яблоки

another_string=»Я люблю %s и %s»%(«Python»,var)

print(another_string)# Я люблю Python и яблоки

Как вы могли догадаться, % — это очень важная часть вышеописанного кода. Этот символ указывает Python, что вы скоро вставите текст на его место. Если вы будете следовать за строкой со знаком процента и другой строкой или переменной, тогда Python попытается вставить ее в строку. Вы можете вставить несколько строк, добавив несколько знаков процента в свою строку. Это видно в последнем примере

Обратите внимание на то, что когда вы добавляете больше одной строки, вам нужно закрыть эти строки в круглые скобки. Теперь взглянем на то, что случится, если мы вставим недостаточное количество строк:

Python

another_string = «Я люблю %s и %s» % «Python»

Traceback (most recent call last):
File «<string>», line 1, in <fragment>
TypeError: not enough arguments for format string

1
2
3
4
5

another_string=»Я люблю %s и %s»%»Python»

Traceback(most recent call last)

File»<string>»,line1,in<fragment>

TypeErrornotenough arguments forformatstring

О-па. Мы не передали необходимое количество аргументов для форматирования строки. Если вы внимательно взгляните на пример, вы увидите, что у нас есть два экземпляра %, но для того, чтобы вставить строки, вам нужно передать столько же %, сколько у нас строк. Теперь вы готовы к тому, чтобы узнать больше о вставке целых чисел, и чисел с запятыми. Давайте взглянем.

Python

my_string = «%i + %i = %i» % (1,2,3)
print(my_string) # ‘1 + 2 = 3’

float_string = «%f» % (1.23)
print(float_string) # ‘1.230000’

float_string2 = «%.2f» % (1.23)
print(float_string2) # ‘1.23’

float_string3 = «%.2f» % (1.237)
print(float_string3) # ‘1.24’

1
2
3
4
5
6
7
8
9
10
11

my_string=»%i + %i = %i»%(1,2,3)

print(my_string)# ‘1 + 2 = 3’

float_string=»%f»%(1.23)

print(float_string)# ‘1.230000’

float_string2=»%.2f»%(1.23)

print(float_string2)# ‘1.23’

float_string3=»%.2f»%(1.237)

print(float_string3)# ‘1.24’

Первый пример достаточно простой. Мы создали строку, которая принимает три аргумента, и мы передаем их. В случае, если вы еще не поняли, Python не делает никаких дополнений в первом примере. Во втором примере, мы передаем число с запятой

Обратите внимание на то, что результат включает множество дополнительных нулей (1.230000). Нам это не нужно, так что мы указываем Python ограничить выдачу до двух десятичных значений в третьем примере (“%.2f”)

Последний пример показывает, что Python округлит числа для вас, если вы передадите ему дробь, что лучше, чем два десятичных значения. Давайте взглянем на то, что произойдет, если мы передадим неправильные данные:

Python

int_float_err = «%i + %f» % («1», «2.00»)
Traceback (most recent call last):
File «<string>», line 1, in <fragment>
TypeError: %d format: a number is required, not str

1
2
3
4

int_float_err=»%i + %f»%(«1″,»2.00»)

Traceback(most recent call last)

File»<string>»,line1,in<fragment>

TypeError%dformatanumber isrequired,notstr

В данном примере мы передали две строки вместо целого числа и дроби. Это привело к ошибке TypeError, что говорит нам о том, что Python ждал от нас чисел. Это указывает на отсутствие передачи целого числа, так что мы исправим это, по крайней мере, попытаемся:

Python

int_float_err = «%i + %f» % (1, «2.00»)

Traceback (most recent call last):
File «<string>», line 1, in <fragment>
TypeError: float argument required, not str

1
2
3
4
5

int_float_err=»%i + %f»%(1,»2.00″)

Traceback(most recent call last)

File»<string>»,line1,in<fragment>

TypeErrorfloatargument required,notstr

Мы получили ту же ошибку, но под другим предлогом, в котором написано, что мы должны передать дробь. Как мы видим, Python предоставляет нам полезную информацию о том, что же пошло не так и как это исправить. Если вы исправите вложения надлежащим образом, тогда вы сможете запустить этот пример. Давайте перейдем к новому методу форматирования строк.

Произвольные выражения

Так как f-строки оцениваются по мере выражения, вы можете внести любую или все доступные выражения Python в них. Это позволит вам делать интересные вещи, например следующее:

Python

print(f»{2 * 37}»)
# Вывод: ’74’

1
2

print(f»{2 * 37}»)

# Вывод: ’74’

Также вы можете вызывать функции. Пример:

Python

def to_lowercase(input):
return input.lower()

name = «Eric Idle»

print(f»{to_lowercase(name)} is funny.»)
# Вывод: ‘eric idle is funny.’

1
2
3
4
5
6
7

defto_lowercase(input)

returninput.lower()

name=»Eric Idle»

print(f»{to_lowercase(name)} is funny.»)

# Вывод: ‘eric idle is funny.’

Также вы можете вызывать метод напрямую:

Python

print(f»{name.lower()} is funny.»)
# Вывод: ‘eric idle is funny.’

1
2

print(f»{name.lower()} is funny.»)

# Вывод: ‘eric idle is funny.’

Вы даже можете использовать объекты, созданные из классов при помощи f-строки. Представим, что у вас есть следующий класс:

Python

class Comedian:
def __init__(self, first_name, last_name, age):
self.first_name = first_name
self.last_name = last_name
self.age = age

def __str__(self):
return f»{self.first_name} {self.last_name} is {self.age}.»

def __repr__(self):
return f»{self.first_name} {self.last_name} is {self.age}. Surprise!»

1
2
3
4
5
6
7
8
9
10
11

classComedian

def__init__(self,first_name,last_name,age)

self.first_name=first_name

self.last_name=last_name

self.age=age

def__str__(self)

returnf»{self.first_name} {self.last_name} is {self.age}.»

def__repr__(self)

returnf»{self.first_name} {self.last_name} is {self.age}. Surprise!»

Вы могли бы сделать следующее:

Python

new_comedian = Comedian(«Eric», «Idle», «74»)

print(f»{new_comedian}»)
# Вывод: ‘Eric Idle is 74.’

1
2
3
4

new_comedian=Comedian(«Eric»,»Idle»,»74″)

print(f»{new_comedian}»)

# Вывод: ‘Eric Idle is 74.’

Методы __str__() и __repr__() работают с тем, как объекты отображаются в качестве строк, так что вам нужно убедиться в том, что вы используете один из этих методов в вашем определении класса. Если вы хотите выбрать один, попробуйте __repr__(), так как его можно использовать вместо __str__().

Строка, которая возвращается __str__() является неформальным строковым представлением объекта и должна быть читаемой. Строка, которую вернул __str__() — это официальное выражение и должно быть однозначным. При вызове str() и repr(), предпочтительнее использовать __str__() и __repr__() напрямую.

По умолчанию, f-строки будут использовать __str__(), но вы должны убедиться в том, что они используют __repr__(), если вы включаете флаг преобразования !r:

Python

print(f»{new_comedian}»)
# Вывод: ‘Eric Idle is 74.’

print(f»{new_comedian!r}»)
# Вывод: ‘Eric Idle is 74. Surprise!’

1
2
3
4
5

print(f»{new_comedian}»)

# Вывод: ‘Eric Idle is 74.’
 

print(f»{new_comedian!r}»)

# Вывод: ‘Eric Idle is 74. Surprise!’

Если вы хотите прочитать часть обсуждения, в результате которого f-strings поддерживают полные выражения Python, вы можете сделать это здесь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector