Візуалізуємо виконання коду - без реєстрації та смс
#python #learning #junior
Всім привіт.
Коли ти вчиш свою першу мову програмування буває складно зрозуміти, що відбувається "під капотом" того чи іншого шматка коду. Авжеж можна (та й треба) дебажити.
Але я пропоную поглянути на інший спосіб візуалізації коду - це PythonTutor.
Підтримується не тільки Python, але й Java, JS (трохи куцо, але маємо те шо маємо).
Цей сайт буде корисним усім менторам та тим людям, що викладають мови програмування.
#python #learning #junior
Всім привіт.
Коли ти вчиш свою першу мову програмування буває складно зрозуміти, що відбувається "під капотом" того чи іншого шматка коду. Авжеж можна (та й треба) дебажити.
Але я пропоную поглянути на інший спосіб візуалізації коду - це PythonTutor.
Підтримується не тільки Python, але й Java, JS (трохи куцо, але маємо те шо маємо).
Цей сайт буде корисним усім менторам та тим людям, що викладають мови програмування.
👍14❤2
Як отримати контент файлу з GitHub репозиторію (Python)
#testing #python
Невелика нотатка про те, як працювати з GitHub API у Python.
#testing #python
Невелика нотатка про те, як працювати з GitHub API у Python.
Telegraph
Як отримати контент файлу з Github репозиторію на Python
Задача Потрібно написати скрипт, який отримує один або більше файлів з Github репозиторію Рішення Підготовка Github API потребує ім'я користувача та його персональний токен для аутентифікації. Згенерувати персональний токен для доступу можна в розділі Settings…
👍5❤1
Які є інструменти для автоматизації в ...
#testing #python #java #tools
Доброго ранку.
Коли ми тільки знайомимось з автоматизацією, або ж переходимо з однієї мови програмування в іншу - постає багато питань.
- Яку бібліотеку для ассертів взяти в мові Х?
- Які є альтернативи бібліотеці репортів у мові У?
- Чи є BDD інструмент для мови …?
- Та інше …
Авжеж можна запитати в каналі чи в чатах тест інженерів. Але мені допомагають списки типу awesome-X. У них хтось дуже добрий вже зібрав купу інструментів та виклав у публічний доступ.
Які списки використовую я сам:
- awesome-test-automation від atinfo. Є для багатьох мов програмування - у тому числі - Java, Python, JS.
- awesome-python-testing - лист інструментів для Python.
- java-testing-toolbox - набір прикладів з книги “30 Testing Tools & Libraries Every Java Developer Must Know”. (Знайшов цього тижня, але виглядає непогано для початківців).
Для інших технологій та мов програмування, можна пошукати списки awesome списки на GitHub.
#testing #python #java #tools
Доброго ранку.
Коли ми тільки знайомимось з автоматизацією, або ж переходимо з однієї мови програмування в іншу - постає багато питань.
- Яку бібліотеку для ассертів взяти в мові Х?
- Які є альтернативи бібліотеці репортів у мові У?
- Чи є BDD інструмент для мови …?
- Та інше …
Авжеж можна запитати в каналі чи в чатах тест інженерів. Але мені допомагають списки типу awesome-X. У них хтось дуже добрий вже зібрав купу інструментів та виклав у публічний доступ.
Які списки використовую я сам:
- awesome-test-automation від atinfo. Є для багатьох мов програмування - у тому числі - Java, Python, JS.
- awesome-python-testing - лист інструментів для Python.
- java-testing-toolbox - набір прикладів з книги “30 Testing Tools & Libraries Every Java Developer Must Know”. (Знайшов цього тижня, але виглядає непогано для початківців).
Для інших технологій та мов програмування, можна пошукати списки awesome списки на GitHub.
GitHub
awesome-test-automation/java-test-automation.md at master · atinfo/awesome-test-automation
A curated list of awesome test automation frameworks, tools, libraries, and software for different programming languages. Sponsored by https://zapple.tech and https://automated-testing.info - atinf...
👍31❤4🔥2
Цікаво: як працювати з gRPC через unix socket
#testing #automation #grpc #python
Коротка нотатка про деякі особливості роботи gRPC через сокети.
P.S. Дайте знайти в коментах, якщо потрібно трохи більше розкрити тему gRPC.
#testing #automation #grpc #python
Коротка нотатка про деякі особливості роботи gRPC через сокети.
P.S. Дайте знайти в коментах, якщо потрібно трохи більше розкрити тему gRPC.
Telegraph
Цікаво: як працювати з gRPC через unix socket
Про сокети Найкраще та найлаконічніше про сокети сказала Julie Evans: Про генерацію клієнтів з proto У офіційній документації до gRPC розповідається як створити protobuf сервісу, а також як згенерувати сервер та клієнт на основі цього proto файлу. Прикладів…
❤10👍8
Advanced Python Mastery
#python #engineering
Для тих, хто вивчає Python - знайшов непоганий посібник з задачами та рішеннями.
#python #engineering
Для тих, хто вивчає Python - знайшов непоганий посібник з задачами та рішеннями.
GitHub
GitHub - dabeaz-course/python-mastery: Advanced Python Mastery (course by @dabeaz)
Advanced Python Mastery (course by @dabeaz). Contribute to dabeaz-course/python-mastery development by creating an account on GitHub.
👍21❤1
Приховане перетворення даних в grpcui та k6
#testing #api #tools #python
Ситуація
Для одного з наших gRPC сервісів нам потрібно відправити hash у форматі HEX. Але коли я намагався відправити запит за допомогою grpcui або ж у скрипті навантаження k6 - сервер повертав помилку, що такий хеш не знайдений в нашій базі.
Задача
Треба було розібратись, у чому причина перетворення даних - та де криється проблема. Бо сервіс точно працював правильно.
Значить проблема в роботі інтрументів ...
Рішення
Як виявилося - обидва інструменти очікують вхідні дані в base64. Потім вони декодують ці дані та надсилають результат на сервер.
В Python з base64 працювати дуже легко. То ж у нагоді стане наступний скрипт.
І ще одне
Крім цього скрипта, можна скористатись також безкоштовним онлайн конвертером.
#testing #api #tools #python
Ситуація
Для одного з наших gRPC сервісів нам потрібно відправити hash у форматі HEX. Але коли я намагався відправити запит за допомогою grpcui або ж у скрипті навантаження k6 - сервер повертав помилку, що такий хеш не знайдений в нашій базі.
Задача
Треба було розібратись, у чому причина перетворення даних - та де криється проблема. Бо сервіс точно працював правильно.
Значить проблема в роботі інтрументів ...
Рішення
Як виявилося - обидва інструменти очікують вхідні дані в base64. Потім вони декодують ці дані та надсилають результат на сервер.
В Python з base64 працювати дуже легко. То ж у нагоді стане наступний скрипт.
import base64
def from_b64_to_hex(input):
binary_data = base64.b64decode(input)
return binary_data.hex()
def from_hex_to_b64(input):
binary_data = bytes.fromhex(input)
return base64.b64encode(binary_data).decode()
base64_string = "LxTKPCw9jAv1U8Xm6lxjhtGlnoZzNPc6I="
hex_string = "2f14ca3c2c3d880653b15e6ea5c6386d1a59e867334f73a2"
assert hex_string == from_b64_to_hex(base64_string)
assert base64_string == from_hex_to_b64(hex_string)
І ще одне
Крім цього скрипта, можна скористатись також безкоштовним онлайн конвертером.
❤17👍4
Python Big O: the time complexities of different data structures in Python
#python #algo
Для тих, кому було цікаво розібратись яка складність (за часом виконання) в структурах даних Python.
#python #algo
Для тих, кому було цікаво розібратись яка складність (за часом виконання) в структурах даних Python.
Pythonmorsels
Python Big O: the time complexities of different data structures in Python
The time complexity of common operations on Python's many data structures.
👍14
50 shades of Fibonacci
#coding #interview #python
Одна з найчастіших задач, яку дають на перевірку навичок програмування автоматизатора на співбесіді - це обчислення послідовності Фібоначчі.
Для тих, хто забув - це послідовність типу
Виявляється, одну й ту саму задачу можна вирішити по-різному. Кожне рішення покаже ваш рівень розуміння задачі, мови програмування та тестування негативних кейсів.
Перед тим, як дивитись приклади - пропоную самим спробувати написати код.
1. Простий та наївний підхід - обчислюємо так, як написано у формулі (з рекурсією):
Але тут можна легко отримати
2. Покращуємо код, додаючі перевірку базових кейсів:
3. Можна також застосувати техніку мемоїзації (тобто замість обчислень знову й знову - запам'ятовуємо проміжні результати):
4. Мемоїзація також є "вбудована" в сам Python:
5. Замість рекурсії - можна вирішити задачу з циклом:
P.S. Можна ще обчислити за допомогою генераторів, але цей спосіб розберемо в наступних нотатках.
#coding #interview #python
Одна з найчастіших задач, яку дають на перевірку навичок програмування автоматизатора на співбесіді - це обчислення послідовності Фібоначчі.
Для тих, хто забув - це послідовність типу
0, 1, 1, 2, 3, 5, 8, 13, 21, ..., що описується формулою: F(n) = F(n-1) + F(n-2), де F(0) = 0 та F(1) = 1. Виявляється, одну й ту саму задачу можна вирішити по-різному. Кожне рішення покаже ваш рівень розуміння задачі, мови програмування та тестування негативних кейсів.
Перед тим, як дивитись приклади - пропоную самим спробувати написати код.
1. Простий та наївний підхід - обчислюємо так, як написано у формулі (з рекурсією):
def fib(n: int) -> int:
return fib(n-1) + fib(n-2)
Але тут можна легко отримати
RecursionError: maximum recursion depth exceeded2. Покращуємо код, додаючі перевірку базових кейсів:
def fib(n: int) -> int:
if n < 2:
return n
return fib(n-1) + fib(n-2)
3. Можна також застосувати техніку мемоїзації (тобто замість обчислень знову й знову - запам'ятовуємо проміжні результати):
from typing import Dict
memo: Dict[int, int] = {0: 0, 1: 1}
def fib(n: int) -> int:
if n not in memo:
memo[n] = fib(n - 1) + fib(n - 2)
return memo[n]
4. Мемоїзація також є "вбудована" в сам Python:
from functools import lru_cache
@lru_cache(maxsize=None)
def fib(n: int) -> int:
if n < 2:
return n
return fib(n - 1) + fib(n - 2)
5. Замість рекурсії - можна вирішити задачу з циклом:
def fib(n: int) -> int:
if n == 0:
return n
last: int = 0
next: int = 1
for _ in range(1, n):
last, next = next, last + next
return next
P.S. Можна ще обчислити за допомогою генераторів, але цей спосіб розберемо в наступних нотатках.
👍35❤🔥4❤1🥴1
SQLAlchemy: The BEST SQL Database Library in Python
#python #sql
Невелике оглядове відео про те, як працювати з базами даних в Python (на прикладі SQLAlchemy).
#python #sql
Невелике оглядове відео про те, як працювати з базами даних в Python (на прикладі SQLAlchemy).
YouTube
SQLAlchemy: The BEST SQL Database Library in Python
Try out Oso for free here: https://oso.1stcollab.com/arjancodes_3
Ever heard of SQLAlchemy and thought it sounded like a medieval potion? Well, it's not! 🧙♂️🔮 SQLAlchemy combines the robustness of SQL with Python's flexibility, making database management…
Ever heard of SQLAlchemy and thought it sounded like a medieval potion? Well, it's not! 🧙♂️🔮 SQLAlchemy combines the robustness of SQL with Python's flexibility, making database management…
❤8👍3❤🔥1