Введение
В этом лабораторном занятии (LabEx) вы научитесь проверять, содержит ли строка специальные символы в Python. Это включает определение того, что считается специальным символом, а затем использование различных методов для обнаружения их наличия в строке.
В лабораторном занятии (LabEx) вас научат определять специальные символы с использованием модуля string и пользовательских определений. Затем вы изучите методы, такие как регулярные выражения и функция str.isalnum(), чтобы определить строки, содержащие эти специальные символы. По завершении этого лабораторного занятия (LabEx) вы получите знания, необходимые для эффективной обработки специальных символов в своих Python-программах.
Определить специальные символы
На этом этапе вы научитесь определять специальные символы в Python. Специальные символы - это символы, которые не являются алфавитно-цифровыми (буквами или цифрами). Они включают в себя такие символы, как знаки пунктуации, пробелы и другие нестандартные символы. Определение и обработка этих символов является важной задачей для таких задач, как очистка данных, валидация и обработка текста.
Сначала создадим Python-скрипт с именем define_special_characters.py в каталоге ~/project с помощью редактора VS Code.
## Content of define_special_characters.py
import string
special_characters = string.punctuation
print("Special characters:", special_characters)
Вот что делает этот код:
import string: Эта строка импортирует модульstring, который предоставляет набор строковых констант, включая предопределенную строку общих знаков пунктуации.special_characters = string.punctuation: Эта строка присваивает строку знаков пунктуации изstring.punctuationпеременнойspecial_characters.print("Special characters:", special_characters): Эта строка выводит значение переменнойspecial_charactersв консоль вместе с описательным меткой.
Теперь запустим скрипт. Откройте терминал и выполните следующую команду:
python define_special_characters.py
Вы должны увидеть следующий вывод:
Special characters: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
Этот вывод показывает строку специальных символов, определенных в константе string.punctuation.
Вы также можете определить собственный набор специальных символов. Например, изменим скрипт, чтобы включить пробелы и некоторые дополнительные символы.
Откройте define_special_characters.py в VS Code и измените его следующим образом:
## Modified content of define_special_characters.py
special_characters = "!@#$%^&*()_+=-`~[]\{}|;':\",./<>?" + " "
print("Special characters:", special_characters)
В этом измененном скрипте мы создали строку, содержащую комбинацию символов и пробел.
Запустите скрипт еще раз:
python define_special_characters.py
Вы должны увидеть следующий вывод:
Special characters: !@#$%^&*()_+=-`~[]{}|;':",./<>?
Этот вывод показывает пользовательский набор специальных символов, который вы определили.
Понимание того, как определять и идентифицировать специальные символы, является фундаментальным навыком в программировании на Python. В следующих шагах вы научитесь использовать регулярные выражения и метод isalnum() для более эффективной работы с специальными символами.
Использование регулярных выражений
На этом этапе вы научитесь использовать регулярные выражения в Python для определения специальных символов. Регулярные выражения - это мощные инструменты для поиска шаблонов в строках.
Сначала создадим Python-скрипт с именем regex_special_characters.py в каталоге ~/project с помощью редактора VS Code.
## Content of regex_special_characters.py
import re
def find_special_characters(text):
special_characters = re.findall(r"[^a-zA-Z0-9\s]", text)
return special_characters
text = "Hello! This is a test string with some special characters like @, #, and $."
special_chars = find_special_characters(text)
print("Special characters found:", special_chars)
Вот что делает этот код:
import re: Эта строка импортирует модульre, который предоставляет операции с регулярными выражениями.def find_special_characters(text):: Здесь определяется функция, которая принимает строку в качестве входных данных и находит все специальные символы в ней.special_characters = re.findall(r"[^a-zA-Z0-9\s]", text): Эта строка использует функциюre.findall()для поиска всех символов во входной строке, которые не являются алфавитно-цифровыми (от a до z, от A до Z, от 0 до 9) или пробелами (\s).[^...]- это отрицательный класс символов, то есть он соответствует любому символу, не входящему в указанный набор.return special_characters: Эта строка возвращает список найденных специальных символов.- Остальные строки определяют пример строки, вызывают функцию для поиска специальных символов в ней и выводят результат.
Теперь запустим скрипт. Откройте терминал и выполните следующую команду:
python regex_special_characters.py
Вы должны увидеть следующий вывод:
Special characters found: ['!', '@', ',', '#', '$', '.']
Этот вывод показывает список специальных символов, найденных во входной строке с использованием регулярного выражения.
Давайте изменим скрипт, чтобы использовать другое регулярное выражение, которое соответствует только знакам пунктуации.
Откройте regex_special_characters.py в VS Code и измените его следующим образом:
## Modified content of regex_special_characters.py
import re
import string
def find_punctuation_characters(text):
punctuation_chars = re.findall(r"[" + string.punctuation + "]", text)
return punctuation_chars
text = "Hello! This is a test string with some punctuation like ., ?, and !."
punctuation = find_punctuation_characters(text)
print("Punctuation characters found:", punctuation)
В этом измененном скрипте мы использовали string.punctuation для определения набора знаков пунктуации, с которыми будем сравнивать.
Запустите скрипт еще раз:
python regex_special_characters.py
Вы должны увидеть следующий вывод:
Punctuation characters found: ['!', '.', '?', '!']
Этот вывод показывает список знаков пунктуации, найденных во входной строке с использованием регулярного выражения и константы string.punctuation.
Использование регулярных выражений предоставляет гибкий и мощный способ определения и извлечения специальных символов из строк в Python.
Проверка с использованием str.isalnum()
На этом этапе вы научитесь использовать метод str.isalnum() в Python для проверки, является ли символ алфавитно-цифровым (то есть буквой или цифрой). Этот метод представляет собой простой и эффективный способ определения специальных символов путем проверки, является ли символ не алфавитно-цифровым.
Сначала создадим Python-скрипт с именем isalnum_check.py в каталоге ~/project с помощью редактора VS Code.
## Content of isalnum_check.py
def check_special_character(char):
if not char.isalnum():
return True
else:
return False
test_characters = ['a', '1', '!', ' ']
for char in test_characters:
if check_special_character(char):
print(f"'{char}' is a special character.")
else:
print(f"'{char}' is an alphanumeric character.")
Вот что делает этот код:
def check_special_character(char):: Здесь определяется функция, которая принимает один символ в качестве входных данных.if not char.isalnum():: Эта строка проверяет, является ли символ не алфавитно-цифровым с использованием методаisalnum(). Методisalnum()возвращаетTrue, если символ является буквой или цифрой, иFalseв противном случае. Ключевое словоnotинвертирует результат, поэтому условие истинно, если символ не является алфавитно-цифровым.- Остальные строки определяют список тестовых символов и проходят по ним в цикле, вызывая функцию для проверки, является ли каждый символ специальным, и выводя результат.
Теперь запустим скрипт. Откройте терминал и выполните следующую команду:
python isalnum_check.py
Вы должны увидеть следующий вывод:
'a' is an alphanumeric character.
'1' is an alphanumeric character.
'!' is a special character.
' ' is a special character.
Этот вывод показывает результат проверки каждого символа в списке с использованием метода isalnum().
Давайте изменим скрипт, чтобы проверить строку на наличие специальных символов.
Откройте isalnum_check.py в VS Code и измените его следующим образом:
## Modified content of isalnum_check.py
def find_special_characters(text):
special_chars = []
for char in text:
if not char.isalnum() and not char.isspace():
special_chars.append(char)
return special_chars
test_string = "Hello! This is a test string with some special characters like @, #, and $."
special_characters = find_special_characters(test_string)
print("Special characters found:", special_characters)
В этом измененном скрипте мы определили функцию, которая проходит по строке и проверяет каждый символ, чтобы определить, является ли он не алфавитно-цифровым и не пробельным символом.
Запустите скрипт еще раз:
python isalnum_check.py
Вы должны увидеть следующий вывод:
Special characters found: ['!', '@', ',', '#', '$', '.']
Этот вывод показывает список специальных символов, найденных во входной строке с использованием метода isalnum().
Использование метода isalnum() предоставляет простой и эффективный способ определения специальных символов в Python.
Резюме
В этом лабораторном занятии вы научились определять специальные символы в Python. Это включало импорт модуля string и использование константы string.punctuation для доступа к предопределенной строке общих знаков пунктуации. Вы также изучили, как определить собственный набор специальных символов, объединив определенные символы и пробелы в строку.
В лабораторной работе показано, как выводить эти определенные наборы специальных символов в консоль для проверки. Этот процесс является важным для таких задач, как очистка данных, валидация и обработка текста, где определение и обработка не алфавитно-цифровых символов являются обязательными.



