Решаем задачи Python. Джеймс Девис. Читать онлайн. Newlib. NEWLIB.NET

Автор: Джеймс Девис
Издательство: Автор
Серия:
Жанр произведения:
Год издания: 2024
isbn:
Скачать книгу
+= string.ascii_lowercase

      if digits:

      chars += string.digits

      if special_chars:

      chars += string.punctuation

      # Генерируем пароль из символов заданной длины

      password = ''.join(random.choice(chars) for _ in range(length))

      return password

      # Пример использования

      length = 12

      password = generate_password(length)

      print("Сгенерированный пароль:", password)

      ```

      Этот код генерирует случайный пароль с заданной длиной `length` и заданными требованиями к сложности. Функция `generate_password` принимает следующие аргументы:

      – `length`: длина пароля;

      – `uppercase`, `lowercase`, `digits`, `special_chars`: булевы значения, указывающие, нужно ли включать в пароль буквы верхнего и нижнего регистра, цифры и специальные символы соответственно.

      Внутри функции используется модуль `random` для выбора случайных символов из символьных наборов, сформированных на основе требований к паролю. Функция `string.ascii_uppercase` возвращает все буквы верхнего регистра, `string.ascii_lowercase` – все буквы нижнего регистра, `string.digits` – все цифры, а `string.punctuation` – все специальные символы.

      Затем символы выбираются случайным образом из объединенного набора символов и объединяются в строку, формируя пароль.

16. Задача с шахматной доской: Определить, можно ли покрыть шахматную доску доминошками размером 2x1.

      Для решения этой задачи давайте рассмотрим особенности шахматной доски и доминошек.

      Шахматная доска имеет размер 8x8 и состоит из 64 клеток. Каждая клетка имеет размер 1x1.

      Доминошки имеют размер 2x1. Это означает, что каждая доминошка занимает две смежные клетки доски вдоль одной из сторон.

      Теперь, чтобы определить, можно ли покрыть всю шахматную доску доминошками, давайте рассмотрим количество клеток доски. Если это четное число, то покрытие возможно, так как каждая доминошка занимает две клетки. Если количество клеток нечетное, то покрытие невозможно, так как при расстановке доминошек останется одна незанятая клетка.

      Таким образом, для определения возможности покрытия шахматной доски доминошками, достаточно проверить, является ли количество клеток доски четным или нет.

      Пример кода на Python:

      ```python

      def can_cover_chessboard():

      rows = 8

      cols = 8

      total_cells = rows * cols

      return total_cells % 2 == 0

      # Проверяем возможность покрытия шахматной доски доминошками

      if can_cover_chessboard():

      print("Шахматную доску можно покрыть доминошками.")

      else:

      print("Шахматную доску нельзя покрыть доминошками.")

      ```

      Этот код определит, можно ли покрыть шахматную доску доминошками размером 2x1 или нет, и выведет соответствующее сообщение.

17. Задача о работе с текстом: подсчет количества слов в тексте и вывод наиболее часто встречающихся слов.

      Идея решения будет следующей:

      1. Разделить текст на отдельные слова (токенизация).

      2. Привести слова к нижнему регистру для учета слов с разным регистром как одинаковых.

      3. Удалить стоп-слова (если требуется).

      4. Подсчитать количество упоминаний каждого слова.

      5. Вывести наиболее часто встречающиеся слова.

      Пример кода на Python, реализующий это:

      ```python

      from collections import Counter

      import