Как проверить, имеет ли строка определенную длину в Python

PythonPythonBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь проверять, имеет ли строка определенную длину на Python. Это включает в себя понимание длины строки и использование функции len() для определения количества символов в строке, включая пробелы и специальные символы.

Вы начнете с создания Python-скрипта для определения длины заранее определенных строк, а затем измените скрипт, чтобы он принимал пользовательский ввод и вычислял длину введенной строки. Наконец, вы научитесь сравнивать длину строки с желаемой длиной, чтобы проверить, соответствует ли она определенным требованиям.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python/BasicConceptsGroup -.-> python/strings("Strings") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") subgraph Lab Skills python/strings -.-> lab-559572{{"Как проверить, имеет ли строка определенную длину в Python"}} python/conditional_statements -.-> lab-559572{{"Как проверить, имеет ли строка определенную длину в Python"}} python/for_loops -.-> lab-559572{{"Как проверить, имеет ли строка определенную длину в Python"}} python/build_in_functions -.-> lab-559572{{"Как проверить, имеет ли строка определенную длину в Python"}} end

Понимание длины строки

На этом этапе вы научитесь определять длину строки на 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-скриптов из терминала и наблюдение за выводом.