Пишем функцию генерации пароля на Python
Внимание! Данная функция не обеспечивает должной безопасности. Не рекомендуется использовать ее в реальных проектах для генерации паролей.
Сегодня разберем короткую и удобную функцию для генерации паролей, IDшников или рандомных имен файлов. Вы также можете использовать ее для своих нужд генерации случайных строк.
Разложим ее на составные части:
⁃
⁃
⁃ вместе получаем
⁃
⁃
Например, вот как можно получить список квадратов элементов исходного списка
⁃ в нашем случае значение текущего индекса цикла нам не требуется, поэтому вместо переменной (`i`, например) мы поставили
⁃
Результаты выполнения получившейся функции:
#junior #python #разбор_кода #random
Внимание! Данная функция не обеспечивает должной безопасности. Не рекомендуется использовать ее в реальных проектах для генерации паролей.
Сегодня разберем короткую и удобную функцию для генерации паролей, IDшников или рандомных имен файлов. Вы также можете использовать ее для своих нужд генерации случайных строк.
import random
import string
def gen_rand_str(length: int) -> str:
return ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(0, length))
Разложим ее на составные части:
⁃
string.ascii_letters
– не что иное, как константная строка, доступная в стандартной библиотеке Питона, и содержащая ASCII-символы в верхнем + нижнем регистрах
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
⁃
string.digits
– строка с цифрами
>>> string.digits
'0123456789'
⁃ вместе получаем
>>> string.ascii_letters + string.digits
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
⁃
random.choice()
возвращает случайный элемент из списка, либо же случайный символ из строки
>>> random.choice('abcdef')
'c'
>>> random.choice('abcdef')
'e'
>>> random.choice('abcdef')
'd'
⁃
[<выражение> for _ in range(0, length)]
– один из вариантов однострочного цикла for, когда мы пробегаем в цикле length раз и выполняем выражение, стоящее в начале; более того, результат этого выражения добавится в список, и так на каждой итерации цикла for; в итоге на выходе получится новый список; “по-научному” это называется list comprehensionНапример, вот как можно получить список квадратов элементов исходного списка
>>> [I * i for i in range(0, 4)]
[0, 1, 4, 9]
>>> [i * i for i in l]
[0, 1, 9, 25]
⁃ в нашем случае значение текущего индекса цикла нам не требуется, поэтому вместо переменной (`i`, например) мы поставили
_
, что означает, что переменная цикла нам не требуется⁃
'<разделитель>'.join(<список>)
формирует строку из элементов списка с разделителем, указанным в начале
>>> ‘ + '.join(['1', '2', '3', '4'])
'1 + 2 + 3 + 4'
Результаты выполнения получившейся функции:
>>> gen_rand_str(4)
'9h8S'
>>> gen_rand_str(4)
'dtMF'
>>> gen_rand_str(8)
'8Udtmpao'
>>> gen_rand_str(8)
'fHmPrwlF'
>>> gen_rand_str(12)
'tl5OSVV6odTq'
>>> gen_rand_str(12)
'JL1qNlzRywMS'
#junior #python #разбор_кода #random
👍2👎1🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Генерируем рандомного юзера [requests + API]
Сегодня покажу вам код в 8 (восемь!) строк для генерации пользователя со случайным именем, фамилией и телефоном.
Конечно, мы могли бы распарсить статьи в Википедии и получить список популярных имен и фамилий, и написать код рандомной генерации сами. Но это мы оставим на потом, а сегодня воспользуемся уже готовым сервисом, который в ответ на запрос отдает JSON с рандомными данными о фейковом пользователе. Без регистрации и смс 😁
Пояснений в этот раз не будет. У кого возникнут вопросы по коду – приглашаю в комментарии 👇👇👇
#junior #python #requests #api #random #user #data
Сегодня покажу вам код в 8 (восемь!) строк для генерации пользователя со случайным именем, фамилией и телефоном.
Конечно, мы могли бы распарсить статьи в Википедии и получить список популярных имен и фамилий, и написать код рандомной генерации сами. Но это мы оставим на потом, а сегодня воспользуемся уже готовым сервисом, который в ответ на запрос отдает JSON с рандомными данными о фейковом пользователе. Без регистрации и смс 😁
Пояснений в этот раз не будет. У кого возникнут вопросы по коду – приглашаю в комментарии 👇👇👇
#junior #python #requests #api #random #user #data
👍2👎1🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Прогресс бар на питоне [python + tqdm + random]
А вот как можно добавить визуализацию прогресса в ваш скрипт. В этом случае пользователь будет видеть прогресс бар, бегущий от 0% до 100%, а кроме того, примерное время до окончания процесса. Это особенно полезно в случае длительной обработки, либо же при обработке большого количества элементов, ну или все вместе.
Из интересных моментов в скрипте хочу отметить использование пакета random. Обратите внимание, как и для чего это используется.
Полный текст скрипта можете найти здесь: https://github.com/DiPaolo/the-real-coding/blob/main/python/progress_bar_tqdm.py
А с комментариями и вопросами жду вас в чатике 👇👇👇
#junior #middle #python #tqdm #random #progress_bar #cli
А вот как можно добавить визуализацию прогресса в ваш скрипт. В этом случае пользователь будет видеть прогресс бар, бегущий от 0% до 100%, а кроме того, примерное время до окончания процесса. Это особенно полезно в случае длительной обработки, либо же при обработке большого количества элементов, ну или все вместе.
Из интересных моментов в скрипте хочу отметить использование пакета random. Обратите внимание, как и для чего это используется.
Полный текст скрипта можете найти здесь: https://github.com/DiPaolo/the-real-coding/blob/main/python/progress_bar_tqdm.py
А с комментариями и вопросами жду вас в чатике 👇👇👇
#junior #middle #python #tqdm #random #progress_bar #cli
This media is not supported in your browser
VIEW IN TELEGRAM
GUI-утилитка по фану [Python + Qt + многопоточность]
Сегодня у меня для вас воскресный залипательный видосик “просто так”.
Просто по фану сделанная утилитка, которая запускает N потоков с рандомной длительностью, и отображает их статус в UI. В любой момент можно стопнуть. Надобавлять потоков тоже можно любое количество.
Из используемых инструментов:
- Python
- PySide (он же Qt для питона)
- многопоточность
- модуль random
Код тут: https://github.com/DiPaolo/the-real-coding/tree/main/python/gui_multithreading_progress_visualization
Как вам? Сложно-нет? Сделали бы сами? Интересен видос с разбором кода? Пишите в коментах 👇
#fun #demo #python #qt #random #gui #pyside
Сегодня у меня для вас воскресный залипательный видосик “просто так”.
Просто по фану сделанная утилитка, которая запускает N потоков с рандомной длительностью, и отображает их статус в UI. В любой момент можно стопнуть. Надобавлять потоков тоже можно любое количество.
Из используемых инструментов:
- Python
- PySide (он же Qt для питона)
- многопоточность
- модуль random
Код тут: https://github.com/DiPaolo/the-real-coding/tree/main/python/gui_multithreading_progress_visualization
Как вам? Сложно-нет? Сделали бы сами? Интересен видос с разбором кода? Пишите в коментах 👇
#fun #demo #python #qt #random #gui #pyside
👍2👎1🤔1