Предмет: Информатика, автор: ivanus585

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

При создании пароля исходите из следующих требований:
- в пароле должно быть от 7 до 10 символов,
- каждое из используемых слов должно быть длиной хотя бы в три буквы,
- сделайте первые буквы обоих слов заглавными, а остальные - строчными, чтобы легко можно было понять, где заканчивается одно и начинается другое.
Подсказка. При решении этой задачи, возможно, понадобится функция random.shuffle из модуля random, которая перемешивает список с паролями случайным образом.
Пример:
Если были из файла были случайно выбраны слова ‘bird‘ и ‘cat‘ (без кавычек), то пароль должен быть ‘BirdCat‘ (тоже без кавычек).

Ответы

Автор ответа: sereganesgiva
1

Ответ:

Для решения данной задачи необходимо выполнить следующие шаги:

Открыть файл "password.txt" с помощью функции open().

Прочитать содержимое файла в список с помощью метода readlines().

Использовать функцию random.sample() для выбора двух случайных слов из списка.

Объединить выбранные слова в одну строку с помощью метода join().

Сделать первые буквы обоих слов заглавными, а остальные - строчными с помощью методов capitalize() и lower() соответственно.

Вернуть полученный пароль.

Вот код функции concate_password():

import random

def concate_password():

   with open("password.txt") as f:

       words = [word.strip() for word in f.readlines()]

   # Выбираем два случайных слова из списка

   selected_words = random.sample(words, k=2)

   # Объединяем слова в одну строку и делаем первые буквы заглавными

   password = "".join(selected_words).capitalize()

   # Делаем остальные буквы строчными

   password = password[0] + password[1:].lower()

   # Возвращаем полученный пароль

   return password

Функция strip() удаляет пробельные символы в начале и конце каждой строки файла "password.txt". Функция random.sample() выбирает из списка words два случайных элемента и возвращает их в виде списка. Функция capitalize() делает первую букву строки заглавной, а функция lower() приводит все остальные буквы строки к нижнему регистру.

Объяснение:


ivanus585: ошибка:
ivanus585: Traceback (most recent call last):
File "run_tests.py", line 6, in
psw = concate_password()
File "/temp/executing/participantSolution.py", line 6, in concate_password
selected_words = random.sample(words, k=2)
File "/usr/lib/python3.2/random.py", line 302, in sample
raise ValueError("Sample larger than population")
ValueError: Sample larger than population
make: *** [run] Error 1
Похожие вопросы