string.punctuation — это предварительно инициализированная строка в Python, используемая в качестве строковой константы. Чтобы получить набор всех знаков препинания в Python, используйте приведенный ниже код. Перед этим вам нужно импортировать модуль string.
|
1 2 3 4 5 6 7 8 |
# import string library function import string # Storing the sets of punctuation in variable result result = string.punctuation # Printing the punctuation values print(result) |
Вывод:
|
1 |
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ |
Это знаки препинания, используемые в Python String. Но иногда мы хотим удалить эти знаки препинания из строки в соответствии с нашим требованием. Давайте посмотрим, как удалить знаки препинания из строки.
Удаление знаков препинания в строке
Чтобы эффективно удалить знаки препинания из строки в Python, используйте комбинацию функций maketrans() и translate(). String translate() — это встроенный метод Python, который возвращает строку, в которой любые определенные символы заменены символом, определенным в словаре или таблице сопоставления.

Python string maketrans() — это встроенная функция сопоставления, которая сопоставляет символы строки с их заменой или, другими словами, с ее переводом.
|
1 2 3 4 5 6 7 8 9 10 |
# import string library function import string # Define a string with punctuation s = "expecto. patronus. Charm?" # Use the combo of translate() and maketrans() method output = s.translate(str.maketrans('', '', string.punctuation)) print(output) |
Вывод:
|
1 |
expecto patronus Charm |
Вы можете видеть, что знаки препинания были удалены из строки.
Удаление знаков препинания с помощью регулярных выражений
Если вы лучше знаете регулярное выражение, вы можете использовать его и убрать знаки препинания из строки.
Чтобы использовать регулярные выражения в Python, импортируйте модуль re.
|
1 2 3 4 5 6 7 |
import re s = "expecto. patronus. Charm?" op = re.sub(r'[^\w\s]','',s) print(op) |
Вывод:
|
1 |
expecto patronus Charm |
Наше регулярное выражение сообщает Python, что нужно удалить все знаки пунктуации из строки.
Удаление пунктуации с помощью цикла for
Этот подход медленный и не рекомендуется, но давайте посмотрим, как удалить знаки препинания из строки.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import string s = "expecto. patronus. Charm?" print("The original string is : " + s) punc = string.punctuation for d in s: if d in punc: op = s.replace(d, "") print("The striped string is: ", op) |
Вывод:
|
1 2 |
The original string is : expecto. patronus. Charm? The striped string is: expecto. patronus. Charm |
В этом примере мы определяем все знаки пунктуации с помощью string.punctuation. Затем мы перебираем все символы строки, используя цикл for, и заменяем знаки пунктуации пустыми символами.
