Учебник серии Python 36

искусственный интеллект

Друзья, если вам нужно перепечатать, пожалуйста, указывайте источник:blog.CSDN.net/Генерал сказал, о...

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

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

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

.>>> S

'Спам'

.>>> S[0] = 'z' # Неизменяемые объекты не могут быть изменены

…текст ошибки опущен…

TypeError: объект 'str' не поддерживает назначение элемента

.>>> S = 'z' + S[1:] # Но мы можем запускать выражения для создания новых объектов

.>>> S

«зпам»

Каждый объект в Python можно классифицировать как неизменяемый или изменяемый. Среди основных типов неизменяемыми являются числа, строки и кортежи, а не списки и словари (они могут изменяться совершенно свободно). Помимо прочего, эту неизменность можно использовать для того, чтобы объект оставался фиксированным в программе.

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

Например, метод find строки представляет собой базовую операцию поиска подстроки (он возвращает смещение переданной подстроки или -1, если она не найдена), а метод replace строки выполняет глобальный поиск и замену. выполняется.

.>>> S.find('pa') # Находим смещение подстроки

1

.>>> S

'Спам'

.>>> S.replace('pa','XYZ') # Замена одной подстроки на другую

«SXYZm»

.>>> S

'Спам'

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

.>>> строка = 'aaa,bbb,ccccc,dd'

.>>> line.split(',') # Разделить по разделителю на список подстрок

['ааа', 'ббб', 'ccccc', 'дд']

.>>> S = 'спам'

.>>> S.upper() # Преобразование верхнего и нижнего регистра

'СПАМ'

.>>> S.isalpha() # Тесты содержимого: isalpha,isdigit и т.д.

True

.>>> строка = 'aaa,bbb,ccccc,dd\n'

.>>> line = line.rstrip() # Удалить пробельные символы с правой стороны

.>>> line

«ааа, ббб, ссссс, дд»

Строки также поддерживают расширенную операцию замены, называемую форматированием:

.>>> '%s,яйца и %s' % ('spam','SPAM!') # Выражение форматирования (все)

«спам, яйца и СПАМ!»

.>>> '{0},яйца и {1}'.format('spam','SPAM!') # Метод форматирования (2.6,3.0)

«спам, яйца и СПАМ!»

Примечание. Хотя операции с последовательностями являются универсальными, методы — нет (хотя некоторые методы имеют одинаковые имена, строковые методы работают только со строками). Существует аккуратное эмпирическое правило: операции общего назначения, которые работают со многими типами, представлены в форме встроенных функций или выражений [например, len(X), X[0]], но операции, специфичные для типа, находятся в форме встроенных функций или выражений. форма вызова метода [например, aString.upper()].