14 subscribers
38 photos
3 files
18 links
Download Telegram
#教え
Видео 3/22 2:10 -> end
Видео 4/22 3:48

Задачи

Императивное
Структурное
Функциональное
ООП

Корни

На скринах пример почему не стоит всецело доверять нейронкам
#error
EOL - end of line

интерпретатор увидел открытую кавычку, ожидая вторую дошёл до конца строки
#教え
Срезы

Первый элемент включён, последний нет

В списке 4 элемента, 0-3 индексы

Но выбирая содержащее последний элемент, нужно указать 4 не существующий индекс, exmpl [2:4]
#教え
Интервал range работает подобно срезу, первый индекс включён, второй уже не входит

for i in range(1,3):
print(i)
#1, 2


Как будто общий паттерн
#教え
Mutable - изменяемый, ordered - упорядоченный
This media is not supported in your browser
VIEW IN TELEGRAM
#教え
lambda функции можно дать имя и использовать как обычную функцию

future_tax = lambda income: income * 0.1
savings = future_tax(10000)
.py pinned a GIF
#教え
Сахар для сетов
#教え
Виртуальное окружение(ВО)

Создать

python -m venv <venv_name>


Активировать (в зависимости от терминала команда меняется)
#cmd
<venv_name>\Scripts\activate

#powershell
. <venv_name>\Scripts\Activate.ps1

#unix or mac_os
source myenv/bin/activate


Деактивировать

deactivate

Получение списка установленных библиотек
#глобально установленные пакеты
pip list


#пакеты внутри активного ВО
pip freeze

#собрать список локально установленных пакетов с версиями
pip freeze >
requirements.txt


Установка виртуального окружения из файла requirements.txt
pip install -r requirements.txt
.

Чтобы установить конкретную версию py для определенного ВО
#нужен доп пакет
pip install virtualenv

python -m virtualenv -p "C:\
Program Files\Python310\python.exe" my_second_env

локально установить/удалить пакет

pip install <package name>


создал через терминал окружение, активировал, все запускается, но чтобы pyCharm видел пакеты внутри ide нужно явно указывать окружение:

settings(смотри хот кеи) ->
add python interpreter->
local interpreter->
existing env->
указать python.exe внутри подготовленного виртуального окружения
#pycharm
pyCharm hot keys

Интерфейс
откр/закр терминал: Alt + f12

с терминала переключиться на код без закрытия терминала: Win + Esc

контроль размера окна:
Ctrl + Alt + Shift + arrow_up/arrow_down

переключение между вкладками: Alt + arrow_left/arrow_right
перемещение назад на предыдущую локацию: ctrl + alt + <-

переключение между вкладками с помощью списка: Alt + Tab/Alt + Tab + Shift

Чтобы с файловой
структуры переключиться на открытое окно с кодом без закрытия файловой структуры, достаточно выбрать уже открытый файл и нажать enter

Открыть настройки: Ctrl + Alt + S

откр/закр файловую структуру: Alt + 1


multy cursor/много курсоров
Добавить несколько курсоров (ul li example)Вкл/выкл режим добавления
Shift + alt + insert

Добавление курсора вверх/вниз
Shift + arrow_up/arrow_down

Быстрое добавление курсора
double ctrl + arrowDown


Обработка ошибок
При наведении на почеркнутое слово, можно вызвать контекстное меню быстрых решений
alt + Enter (например чтобы быстро импортнуть недостающий модуль)

Перейти к следующей проблеме (Error or critical warning)
F2
#value
Инфо каналы

1) Артём Шумейко
https://youtube.com/@artemshumeiko?si=u5hOABptrQm-7rxJ - Senior python (лаконично, хороший value про postgresql, pytest, sqlalchemy и нахождение оффера)

2) IT-Kamasutra https://youtube.com/@itkamasutra?si=flKMQ3rZ6nrGKU1Z (редкий проект, огромный value про backend/front минимум)
#git

#вернуться на HEAD коммит
git checkout -


#git add . + git commit -m
git commit -am '<commit info>'
#db

DSN (data source name)/URI for DB

general specification RFC-1738
https://www.ietf.org/rfc/rfc1738.txt


PostgreSQL
dialect+driver://username:password@host:port/database


https://docs.sqlalchemy.org/en/20/core/engines.html
#psy

Техника концентрации

Белый шум

https://youtu.be/h7Bdfv8Iagw?si=H_r1epGc62hTsETT

Шум в голове 🔻
Спокойствие

15 мин

https://youtu.be/mD3QwerSmLs?si=pWbgl1cZIuXDd0-X

Яндекс музыка

https://music.yandex.ru/users/music-blog/playlists/1956?utm_medium=copy_link

В YM под кнопкой паузы, через иконку таймера можно поставить время до отключения трека, чтобы включить белый шум и лечь спать в наушниках если требуется

Так же непроверенного, но если положить половины шарика для пинг-понга на глаза то можно начать видеть галлюцинации
#tt 1/∞ тестовое задание
Python dev + devops

Основа:
Linux + Docker | Windows(bash, sudo)
python или JavaScript или TypeScript

Доп:
Опыт в Solidity, BAS(BrowserAutomationStudio), Zennoposter, GO, Rust, git, node.js, а также автоматизации браузерной работы.


Дали тз

1) подключить сервер по ssh через ключи, офнуть доступ по паролю
2) написать скрипт, которому можно передавать имена валют, которые он будет мониторить через coinmarketcap api, отправляя уведовления о перехождении указанных порогов стоимости актива
3) доп задание - Запустить блокчейн узел Morph.

доступа к пк не было, выполнял на терминале termius на айфоне

1) получил токен coinmarketcap api
2) наладил получение данных с ресурса
3) написал класс принимающий команду подписки на актив, и через список активов отправляет запрос получая данные сразу о нескольких валютах.
4) создал бота, научился запускать скрипт в фоновом режиме через & и контролировать запуск/установку скриптов через .sh

далее приступил к настройке через ssh, создал ключи по мануалу, но не проверил работают ли они и через конфиг отключил вхождение по паролю,

в итоге потерял доступ к серверу и ко всей написанной кодовой базе

детский мат

Выводы:

- научиться настраивать ssh
- сначала проверять работу ключей
- потом отключать доступ по паролю
- использовать SCV в любом кейсе при завершении работы(потерялись 1,5 дня разработки)
- в суперневажные задачи: просмотреть запуск Morph Node.
#教え
Видео 4/22 3:48 -> end

1) map, filter, reduce

генераторы работают быстрее map
но если мы не знаем до какого элемента придется перебирать список, то map будет эффективнее

2) декораторы
использовал его чтобы сравнить скорость map и list comprehention
python 
import time


def timer(func):
def wrapper(*args, **kwargs):
start = time.time()
f = func(*args, **kwargs)
end = time.time()
print(end - start)

return wrapper


как генерить списки для тестов
[random.randint(0, 100) for _ in range(31)]