Реальный Код
25 subscribers
42 photos
6 videos
55 links
The Real Coding - твой проводник в мир разработки ПО.

Делюсь реальным опытом разработки с новичками.

Практические знания и советы по:
- Python
- Selenium
- командная строка
- C++
- много других интересностей, которые пригодятся вам в профессии
Download Telegram
Реальный Код
хотелось написать сюда, но не знал о чем… 🤔 … и накидал скрипт, который считает статистику использования мною команд в терминале что получилось – ниже 👇 выше ☝️ можно такое на собесах спрашивать, чтобы больше узнать о человеке: чем пользуется, какой стек…
сегодня начинаю серию постов про мои топ утилиты/программы, которые я чаще всего использую

и начинаем мы... па-бааааааа-мммм... ну конечно же с питона 😆

python – это программа-интерпретатор одноименного языка программирования. что значит интерпретатор? а это такая программа, которая читает исходный код программы на этом языке и исполняет каждую строку за строкой

пробежимся по основным возможностям...

вообще, вот следующие три варианта можно использовать во всех unix-подобных операционных системах и частично с некоторыми особенностями – в Windows

// показать справку по аргументам программы и краткую информацию по ее использованию (вместо питона может быть любая программа):

python --help


в среде Windows исторически было принято вызывать страницу с описанием параметров с помощью аргумента /h или /?, однако сейчас все больше программ, которые используют unix-like стиль. да и в целом, кросс-платформенные программы обычно используют тот же unix-like подход

// вывести версию программы:

python --version


// получить развернутую помощь по программе (unix-like системы: Linux, MacOS и прочие):

man python


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

итак, к питону...

// запустить скрипт на выполнение:

python my_script.py


// запустить пакет на выполнение:

python -m package


например, вывести список установленных пакетов:

python -m pip list


тут мы говорим интерпретатору запустить пакет (`-m`) с именем pip и передать ему параметр list. в итоге будет распечатан список установленных пакетов

// выполнить кусок питоновского кода:

python -c <код>


например, вот так мы можем сгенерировать пароль:

python -c "import random; print(''.join(random.choice(string.ascii_letters + string.digits) for _ in range(8)))"


этот код выведет что-то вроде:

2Lqszm8l


или в другой раз:

WTgs90No


// запустить интерактивную среду Python (она ещеназывается REPL, Read-Eval-Print Loop), или, проще говоря, ИДЕ на самых минималках, а скорее даже питонячий плейграунд для проверки каких-то конструкций языка:

python


при этом у вас появится в начале строки такой знак:

>>>


который означает, что вы находитесь как раз в интерактивном интерпретаторе питона

в нем вы можете также писать исходный код, включая многостроковые конструкции. после вбивания питоновских конструкций и жамканья Enter вы будете тут же получать результат. рекомендую: зайдите-поиграйтесь, если еще не пробовали

для выхода используйте функцию exit()

вот например как может это выглядеть:

>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2024, 11, 16, 20, 9, 31, 518836)
>>> ll = [1, 2, 3, 4, 5]
>>> ll
[1, 2, 3, 4, 5]
>>> '-'.join(ll)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected str instance, int found
>>> ', '.join(ll)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected str instance, int found
>>> ll = ['a', 'b', 'c']
>>> '-'.join(ll)
'a-b-c'
>>> exit()


на этом на сегодня все. happy питонинга вам 😉

#python #repl #terminal
🔥3👍21
This media is not supported in your browser
VIEW IN TELEGRAM
какая гадость эта ваша динамическая типизация… 😅

#humour #python
3🤣3🔥2🎄2
о полезности чтения чужих исходников

я кажется уже упомниал, что крайне полезно читать чужой код. благо, его как говна за баней очень много на ГитХабе: по любой тематике, любого качества, на любом языке

через это ты не только учишься быстро понимать и вникать в код (а это тоже навык), но самое главное – можешь учиться новому (к вопросу про мой предыдущий пост, кстати☝️), перенимать какие-то фишки, приемчики или даже узнавать новые конструкции языка или используемые бибилиотеки. ну а где-то, наоборот, можешь понять, почему ты бы написал лучше и чем данный код плох, какие есть минусы и почему его сложно читать (=поддерживать)

это, кстати, касается и код-ревью: важно читать и перенимать чужой опыт и фишечки написания кода

так вот… читаю я сегодня на досуге код OpenShot (это такой видеоредактор). а что примечательно – его ГУЕвая часть написана на связке Python+Qt

читаю-читаю, и натыкаюсь в разделе инициализации логов на такую конструкцию:

#
# Create rotating file handler
#
if os.path.exists(info.USER_PATH):
fh = logging.handlers.RotatingFileHandler(
os.path.join(info.USER_PATH, 'openshot-qt.log'),
encoding="utf-8",
maxBytes=25*1024*1024, backupCount=3)
fh.setLevel(info.LOG_LEVEL_FILE)
fh.setFormatter(file_formatter)
log.addHandler(fh)
else:
class DummyHandler:
def setLevel(self, level):
return True
fh = DummyHandler()


и узнаю, что в питоне, оказывается, из коробки есть log rotation (об этом в другой раз; вкратце, это когда лог пишется до определенного момента в файл, после чего начинает писаться в следующий файл, чтобы файлы не разрастались)

поглядел в доке: так там целая поляна всевозможных лог хендлеров, от null до отправления UDP-датаграмм

так что в очередной раз даю совет: читайте чужой код!

#python #log #sourceCode #опыт
🔥2👍1👌1
в Питоне для генерации чего-то более-менее критичного к секьюрности рекомендуется использовать пакет secrets вместо random

вот дока https://docs.python.org/3/library/secrets.html

а вот PEP 506 с деталями https://peps.python.org/pep-0506/

the rule of thumb: random используем для всякого матмоделирования и некриитчного к безопасности. secrets – для генерации токенов, паролей и всего прочего на проде, что нужно хранить безопасно. Кстати, там же есть удобная функция для генерации валидных рандомных частей УРЛов – secrets.token_urlsafe()

почитайте – крайне полезные вещи там

#security #python
👍1🔥1
да уж… питона у меня на ГХ все больше и больше

второй график – на начало этого года

третий – на начало 2024

четвертый – два года назад

кстати, также видно и развитие утилиты git-stats-plate-gen за те же два года

итого, что у нас по питону:
авг 2023 – 25К
янв 2024 – 33К
янв 2025 – 58К
авг 2025 – 77К

🤪

это только полностью мои репы, которые мейнтейню в одно лицо. Никаких форков или те, куда я контрибутил «вовне»

#python #stats #gitHub
🔥1