10 класс Информатика ГДЗ учебник Поляков 2 часть Параграф 66 Символьные строки
Стр.248.
1. В Python символьные строки задаются с использованием кавычек или апострофов. Например, s = "Привет" или s = 'Привет'. Также можно использовать тройные кавычки для многострочных строк: s = """Привет, мир""".
2. В Python строки неизменяемы, то есть нельзя изменить отдельный символ строки напрямую. Для изменения символа нужно создать новую строку, например, с использованием срезов и конкатенации: s = s[:index] + 'новый символ' + s[index+1:].
3. Оператор + используется для конкатенации строк, то есть для объединения двух или более строк в одну. Например, s1 = "Привет, ", s2 = "мир", s = s1 + s2 создаст строку "Привет, мир".
4. Основные операции со строками включают:
- Длина строки:
len(s)возвращает длину строкиs. - Конкатенация:
s1 + s2объединяет строкиs1иs2. - Срезы:
s[start:end]возвращает подстроку сstartдоend(не включаяend). - Поиск:
s.find(sub)возвращает индекс первого вхождения подстрокиsubв строкуsили -1, если подстрока не найдена. - Замена:
s.replace(old, new)заменяет все вхождения подстрокиoldнаnew.
5. Метод find возвращает -1, если подстрока не найдена в строке. Например, s.find("подстрока") вернет -1, если подстрока отсутствует в строке s.
6. Для преобразования строки в число используются функции int и float: int("123") возвращает 123, float("123.45") возвращает 123.45. Для обратного преобразования числа в строку используется функция str: str(123) возвращает "123".
7. Строку нельзя преобразовать в число, если она содержит символы, не являющиеся цифрами. Например, int("123a") вызовет ошибку, так как буква a не может быть преобразована в цифру.
8. Рекурсивный перебор — это метод решения задачи, при котором функция вызывает саму себя для решения подзадач. Например, для перебора всех возможных комбинаций символов строки можно использовать рекурсивную функцию, которая добавляет один символ к текущей комбинации и вызывает саму себя для добавления следующего символа.
9. Рекурсивные методы:
- Преимущества: Простота реализации, удобство для задач, которые естественным образом разбиваются на подзадачи.
- Недостатки: Высокое потребление памяти и времени при глубокой рекурсии, возможность переполнения стека.
Нерекурсивные методы:
- Преимущества: Более эффективное использование памяти, отсутствие риска переполнения стека.
- Недостатки: Более сложная реализация, особенно для задач, которые естественным образом решаются рекурсивно.
Проекты
а) Библиотека функций для обработки имён файлов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import os # Функция для получения расширения файла def get_file_extension(filename): return os.path.splitext(filename)[1] # Функция для замены расширения файла def replace_file_extension(filename, new_extension): return os.path.splitext(filename)[0] + new_extension # Функция для получения имени файла без расширения def get_filename_without_extension(filename): return os.path.splitext(filename)[0] # Примеры использования filename = "example.txt" print("Расширение файла:", get_file_extension(filename)) print("Имя файла без расширения:", get_filename_without_extension(filename)) print("Файл с новым расширением:", replace_file_extension(filename, ".md")) |
б) Интерпретатор языка управления исполнителем
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # Пример простого интерпретатора для языка управления исполнителем def execute_command(command): if command == "вперёд": print("Исполнитель движется вперёд") elif command == "назад": print("Исполнитель движется назад") elif command == "влево": print("Исполнитель поворачивает налево") elif command == "вправо": print("Исполнитель поворачивает направо") else: print("Неизвестная команда:", command) def interpret(commands): for command in commands.split(): execute_command(command) # Пример использования commands = "вперёд вправо вперёд влево назад" interpret(commands) |
| 64 | 65 | 66 | 67 | 68 |