Logo
Книга для начинающих
ВходРегистрация
/
Программирование
/
Курс Python
/

Обход строк

Python: Обход строк

С помощью циклов обрабатывают числа и работают со строками. Например, можно получить конкретный символ по его индексу, а также формировать строки в циклах.

Ниже пример кода, который печатает буквы каждого слова на отдельной строке:

def print_name_by_symbol(name: str) -> None:
    i = 0
    # Такая проверка будет выполняться до конца строки,
    # включая последний символ. Его индекс `length - 1`.
    while i < len(name):
        # Обращаемся к символу по индексу
        print(name[i])
        i = i + 1

name = 'Arya'
print_name_by_symbol(name)
# => 'A'
# => 'r'
# => 'y'
# => 'a'

Цикл проходит по каждому символу строки по очереди:

'Arya'
 │ │ │ │
 A r y a
 ↓ ↓ ↓ ↓
каждый символ обрабатывается по очереди

В этом коде важно правильно поставить условие в while. Оба варианта i < len(name) и i <= len(name) - 1 приведут к одному результату.

Переворот строки

Вместо печати можно собирать новую строку. Например, напишем функцию, которая переворачивает строку:

def reverse_string(text: str) -> str:
    result = ''
    i = len(text) - 1
    while i >= 0:
        result = result + text[i]
        i = i - 1
    return result

print(reverse_string('Arya'))    # => ayrA
print(reverse_string('hexlet'))  # => telxeh

Переменная result инициализируется пустой строкой как нейтральным элементом для конкатенации. Цикл начинается с последнего индекса (len(text) - 1), двигается к нулю и завершается, когда индекс становится меньше нуля. На каждом шаге к результату добавляется текущий символ. В итоге строка строится в обратном порядке.

Задание

Напишите функцию mask_card_number(), которая скрывает номер банковской карты. Функция должна заменить все символы строки на *, кроме последних четырех.

Пример работы:

mask_card_number("1234567812345678")  # "************5678"
mask_card_number("12345678")          # "****5678"
Коммерческий опыт и Трудоустройство

Полезное

  • Итерация

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
/
Программирование
/
Курс Python
/

Обход строк

Python: Обход строк

С помощью циклов обрабатывают числа и работают со строками. Например, можно получить конкретный символ по его индексу, а также формировать строки в циклах.

Ниже пример кода, который печатает буквы каждого слова на отдельной строке:

def print_name_by_symbol(name: str) -> None:
    i = 0
    # Такая проверка будет выполняться до конца строки,
    # включая последний символ. Его индекс `length - 1`.
    while i < len(name):
        # Обращаемся к символу по индексу
        print(name[i])
        i = i + 1

name = 'Arya'
print_name_by_symbol(name)
# => 'A'
# => 'r'
# => 'y'
# => 'a'

Цикл проходит по каждому символу строки по очереди:

'Arya'
 │ │ │ │
 A r y a
 ↓ ↓ ↓ ↓
каждый символ обрабатывается по очереди

В этом коде важно правильно поставить условие в while. Оба варианта i < len(name) и i <= len(name) - 1 приведут к одному результату.

Переворот строки

Вместо печати можно собирать новую строку. Например, напишем функцию, которая переворачивает строку:

def reverse_string(text: str) -> str:
    result = ''
    i = len(text) - 1
    while i >= 0:
        result = result + text[i]
        i = i - 1
    return result

print(reverse_string('Arya'))    # => ayrA
print(reverse_string('hexlet'))  # => telxeh

Переменная result инициализируется пустой строкой как нейтральным элементом для конкатенации. Цикл начинается с последнего индекса (len(text) - 1), двигается к нулю и завершается, когда индекс становится меньше нуля. На каждом шаге к результату добавляется текущий символ. В итоге строка строится в обратном порядке.

Задание

Напишите функцию mask_card_number(), которая скрывает номер банковской карты. Функция должна заменить все символы строки на *, кроме последних четырех.

Пример работы:

mask_card_number("1234567812345678")  # "************5678"
mask_card_number("12345678")          # "****5678"
Коммерческий опыт и Трудоустройство

Полезное

  • Итерация

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
← ПредыдущийСледующий →
← ПредыдущийСледующий →
← ПредыдущийСледующий →

Ваше упражнение проверяется по этим тестам

import solution


def test():
    assert solution.mask_card_number("1234567812345678") == "************5678"
    assert solution.mask_card_number("12345678") == "****5678"
    assert solution.mask_card_number("0000111122223333") == "************3333"
← ПредыдущийСледующий →

Решение учителя откроется через:

20:00

waiting_clock
← ПредыдущийСледующий →