Строки и функции для работы с ними (faq)

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

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

Вы можете специально удалить префикс из строки с помощью Метод:

>>> 'Rio de Janeiro'.removeprefix("Rio")
' de Janeiro'

Или удалить суффикс, используя Метод:

>>> 'Rio de Janeiro'.removesuffix("eiro")
'Rio de Jan'

Просто пройдите в качестве аргумента, который будет считать текст как префикс или суффикс, который будет удален, и метод вернет новую строку в результате.

Я рекомендую прочитать PEP 616 В официальной документации, если вам интересно, как эти функции добавляются на язык.

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

Python F-Строки: Детали

На данный момент мы узнали почему f-строки так хороши, так что вам уже может быть интересно их попробовать в работе. Рассмотрим несколько деталей, которые нужно учитывать:

Кавычки

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

Этот код будет работать:

Python

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

1
2

print(f»{‘Eric Idle’}»)

# Вывод: ‘Eric Idle’

И этот тоже:

Python

print(f'{«Eric Idle»}’)
# Вывод: ‘Eric Idle’

1
2

print(f'{«Eric Idle»}’)

# Вывод: ‘Eric Idle’

Вы также можете использовать тройные кавычки:

Python

print(f»»»Eric Idle»»»)
# Вывод: ‘Eric Idle’

1
2

print(f»»»Eric Idle»»»)

# Вывод: ‘Eric Idle’

Python

print(f»’Eric Idle»’)
# Вывод: ‘Eric Idle’

1
2

print(f»’Eric Idle»’)

# Вывод: ‘Eric Idle’

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

Python

print(f»The \»comedian\» is {name}, aged {age}.»)
# Вывод: ‘The «comedian» is Eric Idle, aged 74.’

1
2

print(f»The \»comedian\» is {name}, aged {age}.»)

# Вывод: ‘The «comedian» is Eric Idle, aged 74.’

Словари

Говоря о кавычках, будьте внимательны при работе со . Вы можете вставить значение словаря по его ключу, но сам ключ нужно вставлять в одиночные кавычки внутри f-строки. Сама же f-строка должна иметь двойные кавычки.

Вот так:

Python

comedian = {‘name’: ‘Eric Idle’, ‘age’: 74}

print(f»The comedian is {comedian}, aged {comedian}.»)
# Вывод: The comedian is Eric Idle, aged 74.

1
2
3
4

comedian={‘name»Eric Idle’,’age’74}

print(f»The comedian is {comedian}, aged {comedian}.»)

# Вывод: The comedian is Eric Idle, aged 74.

Обратите внимание на количество возможных проблем, если допустить ошибку в синтаксисе SyntaxError:

Python

>>> comedian = {‘name’: ‘Eric Idle’, ‘age’: 74}
>>> f’The comedian is {comedian}, aged {comedian}.’
File «<stdin>», line 1
f’The comedian is {comedian}, aged {comedian}.’
^
SyntaxError: invalid syntax

1
2
3
4
5
6

>>>comedian={‘name»Eric Idle’,’age’74}

>>>f’The comedian is {comedian}, aged {comedian}.’

File»<stdin>»,line1

f’The comedian is {comedian}, aged {comedian}.’

^

SyntaxErrorinvalid syntax

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

Скобки

Чтобы скобки появились в вашей строке, вам нужно использовать двойные скобки:

Python

print(f»`74`»)

# Вывод: ‘{ 74 }’

1
2
3

print(f»`74`»)

 
# Вывод: ‘{ 74 }’

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

Python

print( f»{`74`}» )

# Вывод: ‘{ 74 }’

1
2
3

print(f»{`74`}»)

 
# Вывод: ‘{ 74 }’

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

Python

print(f»{{`74`}}»)

# Вывод: ‘`74`’

1
2
3

print(f»{{`74`}}»)

 
# Вывод: ‘`74`’

Бэкслеши

Как вы видели ранее, вы можете использовать бэкслеши в части строки f-string. Однако, вы не можете использовать бэкслеши в части выражения f-string:

Python

>>> f»{\»Eric Idle\»}»
File «<stdin>», line 1
f»{\»Eric Idle\»}»
^
SyntaxError: f-string expression part cannot include a backslash

1
2
3
4
5

>>>f»{\»Eric Idle\»}»

File»<stdin>»,line1

f»{\»Eric Idle\»}»

^

SyntaxErrorf-stringexpression part cannot includeabackslash

Вы можете проработать это, оценивая выражение заранее и используя результат в f-строк:

Python

name = «Eric Idle»
print(f»{name}»)

# Вывод: ‘Eric Idle’

1
2
3
4

name=»Eric Idle»

print(f»{name}»)

 
# Вывод: ‘Eric Idle’

Междустрочные комментарии

Выражения не должны включать комментарии с использованием символа #. В противном случае, у вас будет ошибка синтаксиса SyntaxError:

Python

>>> f»Eric is {2 * 37 #Oh my!}.»
File «<stdin>», line 1
f»Eric is {2 * 37 #Oh my!}.»
^
SyntaxError: f-string expression part cannot include ‘#’

1
2
3
4
5

>>>f»Eric is {2 * 37 #Oh my!}.»

File»<stdin>»,line1

f»Eric is {2 * 37 #Oh my!}.»

^

SyntaxErrorf-stringexpression part cannot include’#’

Unicode

Python поддерживает Unicode так как по дефолту в нём используется UTF-8

Это позволяет использовать юникод символы без заморочек

>>> «Pythonia voi käyttää myös vaativassa ja tieteellisessä»

‘Pythonia voi käyttää myös vaativassa ja tieteellisessä’

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

>>> «Pythonia voi k\u00e4ytt\u00e4\u00e4 my\u00f6s vaativassa ja tieteellisess\u00e4»

‘Pythonia voi käyttää myös vaativassa ja tieteellisessä’

Можно получить юникод символы и другими способами

‘\xe4’

‘ä’

Кодировки

Другим любопытным моментом является то, что символы которые мы видим внутри строки на самом деле являются порядковыми номерами в таблице которая ставит в соответсвие этому номеру определенный сивол. Эти таблицы мы называем кодировками. Существует очень много кодировок, но возможно вы слышали названия некоторых из них: ASCII, Latin-1, КОИ-8, utf-8. По умолчанию, в Python используется стандарт «Юникод». И в том что каждому символу соответствует определенный код очень легко убедиться с помощью встроенных функций и :

Но к превеликому сожалению, это не только любопытно, но еще и очень печально. Представим себе, что наша программа должна обмениваться текстом с другой программой. Так как строки хранятся в виде байтов, то в нашу программу должна прилететь строка, которая может выглядеть, например, вот так . Что же с ней делать?:

Чтож, похоже что программа-отправитель использует какуюто другую кодировку. Допустим, мы смогли выяснить, что до того как эта строка стала набором байтов ее напечатали на русском языке. Русский язык поддерживают многие кодировки. Придется пробовать декодировать в каждую из них. Поехали…

Какя-то абракадабра. Пробуем следующую:

Как видите, байтовые строки не несут информации о своей кодировке, хотя в зависимости от происхождения, эта кодировка может быть какой угодно. Рассмотренная проблема встречается очень редко, но все же встречается. Многие научные программы до сих пор используют кодировку ascii по умолчанию, а некоторые операционные системы могут использовать какую-то другую кодировку. Вообще, кодировкой по умолчанию является кодировка операционной системы (можно узнать с помощью функции модуля sys). Так что, если вы создаете интернациональное приложение или сайт, или не знаете с какой операционкой придется работать вашей программе, то наверняка тоже встретитесь с этой проблемой. Повторюсь, проблема редкая, весьма специфичная и Python предоставляет относительно неплохие средства для ее преодоления.

Чтож, вот мы и познакомились со строками. Определение, которое мы дали в начале, могло показаться очень сложным и непонятным (я даже не совсем уверен в его правильности), но тем не менее, на деле, все оказалось довольно простым.

Python string escape sequences

When we work with strings, we can use escape sequences. The escape
sequences are special characters have a specific purpose, when used
within a string.

print("   bbb\raaa") # prints aaabbb

The carriage return is a control character for end of line
return to beginning of line.

strophe.py

#!/usr/bin/env python

# strophe.py

print("Incompatible, it don't matter though\n'cos someone's bound to hear my cry")
print("Speak out if you do\nYou're not easy to find")

The new line is a control character, which begins a new line of text.

$ ./strophe.py 
Incompatible, it don't matter though
'cos someone's bound to hear my cry
Speak out if you do
You're not easy to find

Next we examine the backspace control character.

print("Python\b\b\booo") # prints Pytooo

The backspace control character moves the cursor
one character back. In our case, we use three backspace characters
to delete three letters and replace them with three o characters.

print("Towering\tinferno") # prints Towering        inferno

The horizontal tab puts a space between text.

"Johnie's dog"
'Johnie\'s dog'

Single and double quotes can be nested. Or in case we use only single quotes,
we can use the backslash to escape the default meaning of a single quote.

If we prepend an r to the string, we get a raw string. The escape sequences
are not interpreted.

raw.py

#!/usr/bin/env python

# raw.py

print(r"Another world\n")
$ ./raw.py 
Another world\n

We get the string with the new line character included.

Сохранение строк в качестве значения для переменных

В общем смысле слова, переменные являются последовательностью символов, которую вы можете использовать для хранения данных в программе. Например, их можно представить в качестве неких пустых ящиков, в которое вы помещаете различные объекты. Такими объектами может стать любой тип данных, и строки в этом смысле не исключение. Однажды создав переменную, мы сильно упрощаем себе работу со строкой на протяжении всей программы.

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

my_str = "Sammy likes declaring strings."

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

print(my_str)

И получим следующий вывод:

Sammy likes declaring strings.

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

Python accessing string elements

It is possible to access string elements in Python.

string_elements.py

#!/usr/bin/env python

# string_elements.py

s = "Eagle"

print(s)
print(s)
print(s)
print(s)

print("****************")

print(s)
print(s)
print(s)

An index operation is used to get elements of a string.

print(s)
print(s)

The first line prints the first character. The second line prints
the fifth character. The indexes start from zero.

print(s)
print(s)

When the index is negative, we retrieve elements from the end of
the string. In this case, we print the last and last but one characters.

print(s)

Ranges of characters can be accessed too. This line prints
a range of characters starting from the first and ending with
the fourth character.

print(s)

This line prints all the characters from the string.

$ ./string_elements.py
E
e
e
l
****************
Eagl
ag
Eagle

This is the output.

A for loop can be used to traverse all characters of a string.

traverse.py

#!/usr/bin/env python

# traverse.py

s = "ZetCode"

for i in s:
  print(i, " ", end="")

The script prints all the characters of a given string
to the console.

$ ./traverse.py
Z e t C o d e

This is the output.

Шаблоны и новая методика форматирования строк

Этот метод был добавлен в Python 2.4 в виде шаблонов строк, но в качестве обычного метода string, работающего через метод format в версии 2.6. Так что это не самый свежий метод, просто обновленный. В любом случае, приступим к работе с шаблонами!

Python

print(«%(lang)s is fun!» % {«lang»:»Python»}) # Python is fun!

1 print(«%(lang)s is fun!»%{«lang»»Python»})# Python is fun!

Должно быть это выглядит странно, но на самом деле мы сменили наши % на %(lang), с тем отличием, что данный объект идет в комплекте с переменной. Вторая часть пример вызывает словарь Python, который мы рассмотрим в следующей статье. В основном, это пара key:value, так что когда Python ищет ключ lang в строке и в указанном словаре ключей, он заменяет этот ключ его значением. Давайте взглянем на следующие примеры:

Python

a = «%(value)s %(value)s %(value)s !» % {«value»:»SPAM»}
print(a) # SPAM SPAM SPAM !

b = «%(x)i + %(y)i = %(z)i» % {«x»:1, «y»:2}
print(b)

Traceback (most recent call last):
File «<string>», line 1, in <fragment>
KeyError: ‘z’

c = «%(x)i + %(y)i = %(z)i» % {«x»:1, «y»:2, «z»:3}
print(c) # 1 + 2 = 3

1
2
3
4
5
6
7
8
9
10
11
12

a=»%(value)s %(value)s %(value)s !»%{«value»»SPAM»}

print(a)# SPAM SPAM SPAM !

b=»%(x)i + %(y)i = %(z)i»%{«x»1,»y»2}

print(b)

Traceback(most recent call last)

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

KeyError’z’

c=»%(x)i + %(y)i = %(z)i»%{«x»1,»y»2,»z»3}

print(c)# 1 + 2 = 3

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

Python

a = «Python is as simple as {0}, {1}, {2}».format(«a», «b», «c»)
print(a) # ‘Python is as simple as a, b, c’

b = «Python is as simple as {1}, {0}, {2}».format(«a», «b», «c»)
print(b) # ‘Python is as simple as b, a, c’

xy = {«x»:0, «y»:10}
c = «Graph a point at where x={x} and y={y}».format(**xy)
print(c) # Graph a point at where x=0 and y=10

1
2
3
4
5
6
7
8
9

a=»Python is as simple as {0}, {1}, {2}».format(«a»,»b»,»c»)

print(a)# ‘Python is as simple as a, b, c’

b=»Python is as simple as {1}, {0}, {2}».format(«a»,»b»,»c»)

print(b)# ‘Python is as simple as b, a, c’

xy={«x»,»y»10}

c=»Graph a point at where x={x} and y={y}».format(**xy)

print(c)# Graph a point at where x=0 and y=10

В двух первых примерах вы можете увидеть, что мы можем передать объекты позиционно. Если мы перестроим порядок, мы получим немного другую выдачу. В последнем примере мы использовали словарь также, как мы использовали шаблоны ранее. Однако, нам нужно извлечь словарь при помощи двойной звездочки, чтобы он работал правильно. Существует множество других случаев, в которых используются строки, такие как определение ширины, выравнивание текста, конвертация в разные базы и многое другое. Убедитесь в том, что вы ознакомились с рекомендациями ниже, для дополнительной информации.

  • Документация Python 2.Х о

Строковые функции, методы и операторы

Строки являются последовательностями, а последовательности в языке Python образуют целый класс типов данных, который объединяет наличие общих свойств, а следовательно, общих функций и операторов. Например списки – это последовательности объектов, доступ к которым так же осуществляется по их индексу:

Списки, так же как и строки могут «складываться» (соединяться) и «умножаться» (дублироваться):

Для определения длины строк, списков и прочих последовательностей, можно воспользоваться функцией :

Операторы и позволяют выяснить наличие или отсутствие в последовательности некоторого элемента:

С помощью оператора можно осуществлять перебор всех элементов любой последовательности в цикле :

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

Что бы посмотреть на список всех доступных строкам функций и методов достаточно передать функции какой-нибудь строковый объект:

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

Как создать строку

Строки всегда создаются одним из трех способов. Вы можете использовать одинарные, двойные и тройные скобки. Давайте посмотрим

Python

my_string = «Добро пожаловать в Python!»
another_string = ‘Я новый текст тут…’

a_long_string = »’А это у нас
новая строка
в троичных скобках»’

1
2
3
4
5
6

my_string=»Добро пожаловать в Python!»

another_string=’Я новый текст тут…’

a_long_string=»’А это у нас

новая строка
в троичных скобках»’

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

Python

my_string = «I’m a Python programmer!»
otherString = ‘Слово «Python» обычно подразумевает змею’
tripleString = «»»В такой «строке» мы можем ‘использовать’ все.»»»

1
2
3

my_string=»I’m a Python programmer!»

otherString=’Слово «Python» обычно подразумевает змею’

tripleString=»»»В такой «строке» мы можем ‘использовать’ все.»»»

Данный код демонстрирует то, как вы можете вписать одинарные или двойные скобки в строку. Существует еще один способ создания строки, при помощи метода str. Как это работает:

Python

my_number = 123
my_string = str(my_number)

1
2

my_number=123

my_string=str(my_number)

Если вы впишете данный код в ваш интерпретатор, вы увидите, что вы изменили значение интегратора на строку и присвоили ее переменной my_string. Это называется кастинг, или конвертирование. Вы можете конвертировать некоторые типы данных в другие, например числа в строки. Но вы также заметите, что вы не всегда можете делать обратное, например, конвертировать строку вроде ‘ABC’ в целое число. Если вы сделаете это, то получите ошибку вроде той, что указана в этом примере:

Python

int(‘ABC’)

Traceback (most recent call last):
File «<string>», line 1, in <fragment>
ValueError: invalid literal for int() with base 10: ‘ABC’

1
2
3
4
5

int(‘ABC’)

Traceback(most recent call last)

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

ValueErrorinvalid literal forint()withbase10’ABC’

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

Python

x = int(«123»)

1 x=int(«123»)

То все должно работать

Обратите внимание на то, что строка – это один из неизменных типов Python. Это значит, что вы не можете менять содержимое строки после ее создания

Давайте попробуем сделать это и посмотрим, что получится:

Python

my_string = «abc»
my_string = «d»

Traceback (most recent call last):
File «<string>», line 1, in <fragment>
TypeError: ‘str’ object does not support item assignment

1
2
3
4
5
6

my_string=»abc»

my_string=»d»

Traceback(most recent call last)

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

TypeError’str’objectdoes notsupport item assignment

Здесь мы пытаемся изменить первую букву с «а» на «d«, в итоге это привело к ошибке TypeError, которая не дает нам сделать это. Теперь вы можете подумать, что присвоение новой строке то же значение и есть изменение строки. Давайте взглянем, правда ли это:

Python

my_string = «abc»
a = id(my_string)
print(a) # 19397208

my_string = «def»
b = id(my_string)
print(b) # 25558288

my_string = my_string + «ghi»
c = id(my_string)
print(c) # 31345312

1
2
3
4
5
6
7
8
9
10
11

my_string=»abc»

a=id(my_string)

print(a)# 19397208

my_string=»def»

b=id(my_string)

print(b)# 25558288

my_string=my_string+»ghi»

c=id(my_string)

print(c)# 31345312

Проверив id объекта, мы можем определить, что когда мы присваиваем новое значение переменной, то это меняет тождество

Обратите внимание, что в версии Python, начиная с 2.0, строки могут содержать только символы ASCII. Если вам нужен Unicode, тогда вы должны вписывать u перед вашей строкой

Пример:

Python

# -*- coding: utf-8 -*-
my_unicode_string = u»Это юникод!»

1
2

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

my_unicode_string=u»Это юникод!»

В Python, начиная с версии 3, все строки являются юникодом.

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

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

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 предоставляет нам полезную информацию о том, что же пошло не так и как это исправить. Если вы исправите вложения надлежащим образом, тогда вы сможете запустить этот пример. Давайте перейдем к новому методу форматирования строк.

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

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

Adblock
detector