Введение
В этом практическом занятии (лабораторной работе) вы научитесь проверять, имеет ли строка определенную длину на Python. Это включает в себя понимание длины строки и использование функции len() для определения количества символов в строке, включая пробелы и специальные символы.
Вы начнете с создания Python-скрипта для определения длины заранее определенных строк, а затем измените скрипт, чтобы он принимал пользовательский ввод и вычислял длину введенной строки. Наконец, вы научитесь сравнивать длину строки с желаемой длиной, чтобы проверить, соответствует ли она определенным требованиям.
Понять длину строки
На этом этапе вы научитесь определять длину строки на Python. Понимание длины строки является фундаментальным понятием в программировании, так как оно позволяет эффективно манипулировать и обрабатывать текстовые данные.
В Python функция len() используется для определения длины строки. Длина строки - это количество символов, которые она содержит, включая пробелы и специальные символы.
Начнем с простого примера. Создайте новый файл с именем string_length.py в директории ~/project с помощью редактора VS Code.
## filename: string_length.py
string1 = "Hello, LabEx!"
length1 = len(string1)
print("The length of the string 'Hello, LabEx!' is:", length1)
string2 = "This is a longer string."
length2 = len(string2)
print("The length of the string 'This is a longer string.' is:", length2)
string3 = "" ## Empty string
length3 = len(string3)
print("The length of the empty string is:", length3)
Сохраните файл, а затем запустите скрипт, используя следующую команду в терминале:
python ~/project/string_length.py
Вы должны увидеть следующий вывод:
The length of the string 'Hello, LabEx!' is: 13
The length of the string 'This is a longer string.' is: 24
The length of the empty string is: 0
Как вы можете видеть, функция len() возвращает количество символов в каждой строке. Пустая строка имеет длину 0.
Теперь давайте попробуем другой пример с пользовательским вводом. Измените файл string_length.py следующим образом:
## filename: string_length.py
user_string = input("Enter a string: ")
length = len(user_string)
print("The length of the string you entered is:", length)
Сохраните файл и запустите его снова:
python ~/project/string_length.py
Скрипт попросит вас ввести строку. Введите любую строку и нажмите Enter. Например:
Enter a string: Python is fun!
Вывод будет следующим:
The length of the string you entered is: 14
Это демонстрирует, как можно использовать функцию len() для определения длины строки, введенной пользователем.
Использовать функцию len()
На этом этапе вы углубите свое понимание функции len(), применив ее в различных сценариях. Вы научитесь использовать ее с различными типами данных и изучите ее поведение с специальными символами и пробелами.
Сначала рассмотрим, как функция len() обрабатывает строки с специальными символами и пробелами. Измените файл string_length.py в директории ~/project, добавив следующий код:
## filename: string_length.py
string1 = " Hello, LabEx! " ## String with leading and trailing spaces
length1 = len(string1)
print("The length of the string with spaces is:", length1)
string2 = "你好,LabEx!" ## String with Unicode characters
length2 = len(string2)
print("The length of the string with Unicode characters is:", length2)
string3 = "Line1\nLine2" ## String with a newline character
length3 = len(string3)
print("The length of the string with a newline is:", length3)
Сохраните файл и запустите его:
python ~/project/string_length.py
Вы должны увидеть следующий вывод:
The length of the string with spaces is: 17
The length of the string with Unicode characters is: 9
The length of the string with a newline is: 11
Обратите внимание, что начальные и конечные пробелы в строке string1 учитываются при определении длины. Также каждый Unicode-символ в строке string2 считается за один символ. Символ новой строки \n в строке string3 также считается за один символ.
Теперь давайте рассмотрим, как использовать функцию len() в сочетании с другими методами строк. Например, вы можете использовать ее для проверки, является ли строка пустой после удаления пробелов. Измените файл string_length.py следующим образом:
## filename: string_length.py
user_string = input("Enter a string: ")
stripped_string = user_string.strip() ## Remove leading/trailing whitespace
length = len(stripped_string)
if length == 0:
print("The string is empty after removing whitespace.")
else:
print("The length of the string after removing whitespace is:", length)
Сохраните файл и запустите его:
python ~/project/string_length.py
Введите строку с начальными и конечными пробелами:
Enter a string: Hello
Вывод будет следующим:
The length of the string after removing whitespace is: 5
Если вы введете только пробелы, вывод будет таким:
Enter a string:
The string is empty after removing whitespace.
Этот пример демонстрирует, как можно комбинировать функцию len() с методом strip() для выполнения более сложных операций с строками. Метод strip() удаляет все начальные и конечные пробелы из строки.
Сравнить с желаемой длиной
На этом этапе вы научитесь сравнивать длину строки с желаемой длиной. Это распространенная задача в программировании, особенно при валидации пользовательского ввода или обработке данных, которые должны соответствовать определенным требованиям по длине.
Создадим сценарий, в котором мы хотим убедиться, что имя пользователя, введенное пользователем, имеет длину от 3 до 10 символов. Измените файл string_length.py в директории ~/project, добавив следующий код:
## filename: string_length.py
username = input("Enter a username: ")
length = len(username)
if length < 3:
print("Username must be at least 3 characters long.")
elif length > 10:
print("Username must be no more than 10 characters long.")
else:
print("Username is valid.")
Сохраните файл и запустите его:
python ~/project/string_length.py
Если вы введете имя пользователя, которое слишком короткое:
Enter a username: ab
Вывод будет следующим:
Username must be at least 3 characters long.
Если вы введете имя пользователя, которое слишком длинное:
Enter a username: abcdefghijk
Вывод будет следующим:
Username must be no more than 10 characters long.
Если вы введете допустимое имя пользователя:
Enter a username: abcdef
Вывод будет следующим:
Username is valid.
Этот пример демонстрирует, как можно использовать функцию len() для проверки, соответствует ли строка определенным критериям по длине.
Теперь рассмотрим более сложный сценарий, в котором мы хотим валидировать пароль. Пароль должен иметь длину от 8 до 16 символов и содержать хотя бы одну цифру. Измените файл string_length.py следующим образом:
## filename: string_length.py
password = input("Enter a password: ")
length = len(password)
has_digit = False
for char in password:
if char.isdigit():
has_digit = True
break
if length < 8:
print("Password must be at least 8 characters long.")
elif length > 16:
print("Password must be no more than 16 characters long.")
elif not has_digit:
print("Password must contain at least one digit.")
else:
print("Password is valid.")
Сохраните файл и запустите его:
python ~/project/string_length.py
Если вы введете пароль, который слишком короткий:
Enter a password: abcdefg
Вывод будет следующим:
Password must be at least 8 characters long.
Если вы введете пароль, который слишком длинный:
Enter a password: abcdefghijklmnopq
Вывод будет следующим:
Password must be no more than 16 characters long.
Если вы введете пароль, который не содержит цифры:
Enter a password: abcdefgh
Вывод будет следующим:
Password must contain at least one digit.
Если вы введете допустимый пароль:
Enter a password: abcdefg1
Вывод будет следующим:
Password is valid.
Этот пример демонстрирует, как можно комбинировать функцию len() с другими методами, например, проходом по строке для проверки наличия определенных символов, для выполнения более сложной валидации.
Резюме
В этом практическом занятии вы научились определять длину строки в Python с помощью функции len(). В рамках занятия показано, как вычислять длину заранее определенных строк, в том числе пустых строк, а также как получить ввод строки от пользователя и затем вычислить ее длину.
Предоставленные примеры показали, что функция len() возвращает количество символов в строке, включая пробелы и специальные символы, и что пустая строка имеет длину 0. Вы также отработали запуск Python-скриптов из терминала и наблюдение за выводом.



