Предмет: Информатика, автор: 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
Похожие вопросы
Предмет: Русский язык, автор: totkinmita895
определите стиль текста З январе-феврале 2011 года города Астана и Алматы стали центром спортивной жизни азиатского континента. Впервые в Казахстане прошли VII Зимние Азиатские игры Открытие Азиады прошло в новом крытом стадионе «Астана Арена». В торжественной церемонии приняли участие руководство страны, Президенты Международного Олимпийского комитета и Олимпийского совета Азии, другие почетные гости. В В VII Зимних Азиатских играх приняли участие более тысячи спортсменов из 27 стран мира. Общая программа соревнований была представлена 11 видами спорта: конькобежный спорт, фигурное катание, хоккей с шайбой, хоккей с мячом (бенди), лыжные гонки, биатлон, прыжки на лыжах с трамплина, горные лыжи, фристайл, шорт- трек, зимнее спортивное ориентирование на лыжах. Всего было разыграно 69 комплектов медалей, что стало рекордом Зимних Азиад. Завоевав 32 золотые медали, Казахстан на этих играх установил рекорд зимних Азиад по количеству наград высшей пробы и уверенно занял первое общекомандное место. Всего же в копилке нашей сборной 70 наград, в том числе 21 серебряная и 17 бронзовых медалей. Второе место у Японии с 13 золотыми, 24 серебряными и 17 бронзовыми медалями. Третье место заняла Южная Корея с 13 золотыми, 12 серебряными и 13 бронзовыми медалями. Четвертое место у Китая с 11 золотыми, 10 серебряными и 14 бронзовыми медалями. Звездами Зимней Азиады стали многие прославленные атлеты нашей страны. Завоевав две золотые и одну серебряную медали, биатлонистка Елена Хрусталева стала чемпионкой страны. Юлия Галышева, «добывшая» две золотые медали по фристайлу, Денис Тен, принесший «золото» в мужском одиночном фигурном катании. В соревнованиях по хоккею с шайбой первенствовали наши мужская и женская сборные. Талисманом Азиады стал барсенок Ирби. Слоган VII Зимних Азиатских игр: «Единство целей-единство духа!» - «Мақсаты бірдің - рухы бір!» - «Unity of purpose - unity of spirit!». Данный девиз символизирует общность духа спортивной Азии, единые цели в достижении сплоченности и дружбы народов и стран. Церемония закрытия Игр прошла во Дворце спорта им. Балуана Шолака в г. Алматы. Всего за ходом соревнований, которые освещали 2 тысячи иностранных журналистов, следили более 500 миллионов зрителей на всей планете. В целом VII Азиатские Игры в очередной раз продемонстрировали высокий уровень организации спортивных мероприятий в стране, укрепили имидж Казахстана на международной арене как гостеприимной страны, оплота стабильности, мира и согласия, а также одной из ведущих спортивных держав Азии и мира. текста.​