Первые вещи вначале, репо со всеми упражнениями этой лекции прямо здесь:
https://github.com/hugoestradas/Python_Basics
Давай начнем!
1) Найти главные факторы.
Для очень оснований начнем с чего-то необычного: шифрование открытого ключа. Эта техника зависит от определенных действительно больших чисел, которые являются вычислительными для фактора, чтобы сохранить безопасность данных. В этом первом упражнении я буду фачать некоторые числа, с которыми легко иметь дело; Цель состоит в том, чтобы создать функцию Python, чтобы найти все основные факторы, я сделаю это, принимая целочисленное значение в качестве ввода, а возвращение или вывод станет списком главных факторов.
В этом решении я решил искать факторы, разделив данные последовательно большие значения (начиная с 2), чтобы увидеть, какой из них равномерно в него делятся, не оставляя остаток позади:
Как вы можете видеть, я называю функцию с номером 500, поэтому начнется с 2 в качестве оригинального дивизора, то он будет продолжать разделиться до тех пор, пока остаток больше не будет четным числом, в этом случае, приводящем к Результат 2, 2, 5 и, наконец, 5:
2) Определение палиндромов.
Это очень обычное программирование и программное упражнение, возможно, вы уже сделали это на коллеге, школе или просмотрев другой учебник, это очень крутая головоломка для решения, потому что включает распознавание структуры, логику и, конечно, кодирование.
В случае, если вы впервые занимаетесь палиндроменами, палиндром – это слово или текст, который точно так же, вперед, либо назад.
Опять же, я напишу функцию для обнаружения палиндромов, где мой вход будет строкой, я проверяю, и результат или выход будет логическим значением (false/true):
Линейка по линии, сначала я импортирую библиотеку «Re», которая содержит регулярные выражения для извлечения букв от входной строки, то я определяю функцию «палиндрома», которая получает параметр «String». Затем я использую нижний оператор в входной строке для преобразования всех букв в нижний регистр, то я передаю результат к функции регулярного выражения «Findall» с рисунком, который будет искать комбинации одного или нескольких букв. Tat предоставит список со всеми сопоставленными подтяжками, которые я объединился в одну строку, используя функцию «Присоединиться».
Затем я нарезаю всю строку, с шагом, установленным на отрицательный, что означает, что я получу копию исходной строки в обратном порядке.
Наконец, я сравниваю оба строки, и верну его:
3) Сортировать строку.
Другая общая задача в программировании – сортировка вещей.
Цель состоит в том, чтобы создать функцию Python, которая сортирует слова в данной строке.
Вход будет список слов, разделенных пробелами, и результат или выход будет та же строка слов сортированы в алфавитном порядке:
Моя «сортированная» функция начинается с метода «разделения», который разбивает входную строку на каждом из пробелов и дает мне список отдельных слов.
Затем, чтобы игнорировать капитализацию (если есть какие-либо) в цикле я преобразую каждое слово в список в нижний регистр, чтобы позже сортировать весь список:
4) Игра ожидания.
Для этого упражнения я напишу функцию Python, которая, когда вызывается, она будет напечатана сообщение для ожидания случайного количества времени.
Пользователь нажимает входит, затем запускается таймер. Цель пользователя состоит в том, чтобы дождаться указанного количества секунд в сообщении, а затем нажмите Enter еще раз.
Для этого упражнения я использовал модули, «время» модуль для измерения количества времени, а также «случайного» модуля для генерации случайного количества секунд.
Функция ввода подсказывает пользователю нажать Enter, чтобы начать, а затем блокирует выполнение, пока пользователь не попадает в систему.
5) Создайте новый пароль.
Для этого окончательного примера я реализую функцию на основе метода «Diceware», который представляет собой способ создания паролей и паролей, используя количество обычных кубиков в качестве генератора случайного номера оборудования. Это включает в себя список более 7000 разных слов.
Вместо прокатки физических костей я напишу функцию Python, которая имитирует это поведение.
Вход будет несколько слов в парольном фразе, а выход или результат будет строка случайных слов, разделенных пробелами.
Для этого я мог бы использовать «случайный» модуль, но вместо этого я пошел на «секретный» модуль, поскольку случайный модуль не рекомендуется при работе с криптографическими процедурами:
Моя функция начинается с получения количества слов, затем открывая файл «Diceware.Wordlist.asc» с контекстно-менеджером, а затем использует функцию «readlens», чтобы получить список с каждой из строк в файле.
Вершина файла Diceware, которую у меня использовал, имеет две дополнительные строки до начала начала слова слов, а внизу также есть несколько дополнительных линий для подписи PGP:
Поэтому я проинтексировал линии 7k (7776) с середины файла, о котором я действительно забочусь. Помните, что каждая из этих строк содержит как из пятизначного числа, так и соответствующее слово, я использовал метод разделения, чтобы разбить их отдельно, а затем построить список, содержащий только слова.
Затем я использовал функцию «Secrets.Choice» в течение другого списка, чтобы построить список с желаемым количеством случайных слов.
И, наконец, я использовал метод соединения для объединения случайных слов в одну строку с пробелами между ними:
Оригинал: “https://dev.to/hugoestradas/5-cool-python-exercises-42gj”