PyData Careers
21.2K subscribers
222 photos
5 videos
26 files
371 links
Python Data Science jobs, interview tips, and career insights for aspiring professionals.

Admin: @HusseinSheikho || @Hussein_Sheikho
Download Telegram
"πŸš€ OOP 101: Understanding Object-Oriented Programming in Python πŸ“š
===================================================================="

β€’ Definition: Object-oriented programming (OOP) is a programming paradigm that revolves around the concept of objects and classes.
β€’ Key concepts: Classes, inheritance, polymorphism, encapsulation, and abstraction. These are essential components of OOP and will help you write maintainable code in Python.

β€’ Benefits: Improved code readability, reusability, and scalability. By understanding OOP, you'll be able to create more efficient and effective software solutions.

β€’ Practical application: Learn how to define custom types using classes, instantiate objects, and use inheritance to achieve common programming tasks.

Summary:
Learn the basics of object-oriented programming in Python and elevate your skills to write maintainable code. Understand key concepts like classes, inheritance, polymorphism, encapsulation, and abstraction for a deeper understanding of OOP.
❀1
πŸ€” Did you know? You can use Python's <code>deque</code> for efficient appends and pops at both ends of a sequence-like data type. This is especially useful when implementing queue and stack data structures that operate efficiently under heavy workloads. πŸ’ͺ
# πŸ“Š Speed Up Your Python App with DiskCache

A cloud SSD is sitting idle, waiting for its purpose. Today, we're putting it to work with DiskCache, a simple cache built on SQLite that can speed up your Python app without spinning up Redis or extra services.

### What is DiskCache?

DiskCache is a lightweight, practical cache that stores frequently accessed data in memory. It's built on top of SQLite and doesn't require any additional setup or dependencies.

### Benefits

πŸš€ Faster application response times: By storing frequently accessed data in memory, your Python app can respond faster to user input.
⏱️ Improved scalability: DiskCache can handle increased load without performance drops due to disk I/O.
πŸ’» Reduced database queries: Your Python app won't need to query the database as often, freeing up resources and reducing latency.

### Example Use Case

import sqlite3
from diskcache importDiskCache

# Create a connection to our SQLite database
conn = sqlite3.connect('example.db')

# Create a cache instance
cache = DiskCache(dbname='example', debug=False)

# Initialize the cache with some data
data = {'key': 'value'}

# Access the cached data without querying the database
print(cache.get(data['key']))


### Get Started

Start using DiskCache in your Python applications to boost performance and reduce latency. Check out the official documentation for more information: <https://grantjenks.com/docs/diskcache/?featuredon=talkpython>
πŸŽβ—οΈTODAY FREEβ—οΈπŸŽ

Entry to our VIP channel is completely free today. Tomorrow it will cost $500! πŸ”₯

JOIN πŸ‘‡

https://t.iss.one/+DBdNGbxImzgxMDBi
https://t.iss.one/+DBdNGbxImzgxMDBi
https://t.iss.one/+DBdNGbxImzgxMDBi
❀2
❔ Interview question

What will happen if in the try block you call return, and in the finally block you also call return?

Answer: If a return is executed in the try block, but there is also a return in the finally block, then the return value from the try will be ignored. The return from the finally will overwrite it.

This happens because finally always executes after try and catch, but before the actual return of the value. If there is a return in finally, it definitively determines the result of the method.


tags: #interview

➑ @DataScienceQ
Please open Telegram to view this post
VIEW IN TELEGRAM
❀3
πŸ”₯ Generating fake data in Python β€” no pain at all

If you're testing forms, mockups, or just want to play with data, there's Mimesis β€” a generator of fake data. Names, emails, addresses, and phone numbers. There's a location setting that allows you to select a country, and the data will be generated accordingly.

πŸ“¦ Installation:
from typing import Dict
from mimesis.enums import Gender
from mimesis import Person

def generate_fake_user(locale: str = "es", gender: Gender = Gender.MALE) -> Dict[str, str]:
    """
    Generates fake user data based on the locale and gender.

    :param locale: The locale (for example, 'ru', 'en', 'es')
    :param gender: The gender (Gender.MALE or Gender.FEMALE)
    :return: A dictionary with the fake user data
    """
    person = Person(locale)

    user_data = {
        "name": person.full_name(gender=gender),
        "height": person.height(),
        "phone": person.telephone(),
        "occupation": person.occupation(),
    }

    return user_data

if __name__ == "__main__":
    fake_user = generate_fake_user(locale="es", gender=Gender.MALE)
    print(fake_user)


πŸ“Œ Result:
{
  'name': 'Carlos Herrera',
  'height': '1.84',
  'phone': '912 475 289',
  'occupation': 'Arquitecto'
)


⚑️ Mimesis can:
πŸ–± Generate names, addresses, phone numbers, professions, etc. 
πŸ–± Work with different countries (πŸ‡·πŸ‡Ί ru, πŸ‡ΊπŸ‡Έ en, πŸ‡ͺπŸ‡Έ es, etc.) 
πŸ–± Suitable for tests, fake accounts, demo data in projects, and bots.

βš™οΈ GitHub/Instructions

Save it, it'll come in handy πŸ‘

#python #github #interview
Please open Telegram to view this post
VIEW IN TELEGRAM
❀5
❔ Interview question

How to manage caching in HTTP?

Answer: Caching in HTTP is managed using special headers that determine when and how downloaded data can be reused.

▢️ Cache-Control β€” the main header that sets caching rules: lifetime (max-age), accessibility (public, private), caching prohibition (no-store), etc.

▢️ Last-Modified + If-Modified-Since β€” allow the server to report the date of the last resource modification, and the client to request data only when it has been updated

▢️ ETag + If-None-Match β€” use a unique version identifier of the resource. If the version has not changed, the server responds with 304 Not Modified

These mechanisms reduce the network load and speed up reloads.


tags: #interview

➑ @DataScienceQ
Please open Telegram to view this post
VIEW IN TELEGRAM
❀7
πŸ—‚ Cheat Sheet on Beautiful Soup 4 (bs4) in Python: HTML/XML Parsing Made Easy and Simple

Beautiful Soup β€” a library for extracting data from HTML and XML files, ideal for web scraping.

πŸ”Ή Installation
pip install beautifulsoup4


πŸ”Ή Import
from bs4 import BeautifulSoup
import requests


πŸ”Ή Basic Parsing
html_doc = "<html><body><p class='text'>Hello, world!</p></body></html>"
soup = BeautifulSoup(html_doc, 'html.parser')  # or 'lxml', 'html5lib'
print(soup.p.text)  # Hello, world!


πŸ”Ή Element Search
# First found element
first_p = soup.find('p')

# Search by class or attribute
text_elem = soup.find('p', class_='text')
text_elem = soup.find('p', {'class': 'text'})

# All elements
all_p = soup.find_all('p')
all_text_class = soup.find_all(class_='text')


πŸ”Ή Working with Attributes and Text
a_tag = soup.find('a')
print(a_tag['href&#39])    # value of the href attribute
print(a_tag.get_text()) # text inside the tag
print(a_tag.text)       # alternative


πŸ”Ή Navigating the Tree
# Moving to parent, children, siblings
parent = soup.p.parent
children = soup.ul.children
next_sibling = soup.p.next_sibling

# Finding the previous/next element
prev_elem = soup.find_previous('p')
next_elem = soup.find_next('div')


πŸ”Ή Parsing a Real Page
response = requests.get('https://example.com')
soup = BeautifulSoup(response.text, 'html. parser')
title = soup.title.text
links = [a['href'] for a in soup.find_all('a', href=True)]


πŸ”Ή CSS Selectors
# More powerful and concise search
items = soup.select('div.content > p.text')
first_item = soup.select_one('a.button')


πŸ’‘ Where it's useful:
🟒 Web scraping and data collection
🟒 Processing HTML/XML reports
🟒 Automating data extraction from websites
🟒 Preparing data for analysis and machine learning


πŸ‘©β€πŸ’» @CodeProgrammer
Please open Telegram to view this post
VIEW IN TELEGRAM
❀8πŸ₯°1
❔ Interview question

What is a closure?

Answer: A closure is a function that remembers variables from its outer scope and continues to use them, even if that scope has already left the active area.

How does a closure work?
▢️The outer function creates local variables and a nested function
▢️This nested function uses the variables of the outer function
▢️The outer function returns the nested function, which continues to "remember" these variables, even if the outer function has already finished

This is useful when you need to pass a state or data without using global variables.


tags: #interview

➑ @DataScienceQ
Please open Telegram to view this post
VIEW IN TELEGRAM
❀4
πŸ“‚ A reminder for working with HTTP requests!

For example, GET is used to retrieve data, POST β€” to create new records, and DELETE β€” to delete.

In the picture β€” the 9 most popular HTTP request methods that every developer should have at hand.

Save it so you don't forget!

πŸšͺ@DataScienceQ   | #resource
Please open Telegram to view this post
VIEW IN TELEGRAM
❀2
πŸ™πŸ’Έ 500$ FOR THE FIRST 500 WHO JOIN THE CHANNEL! πŸ™πŸ’Έ

Join our channel today for free! Tomorrow it will cost 500$!

https://t.iss.one/+0-w7MQwkOs02MmJi

You can join at this link! πŸ‘†πŸ‘‡

https://t.iss.one/+0-w7MQwkOs02MmJi
❔ Question from the interview

What is monkey patching?

Answer: Monkey patching is a technique of changing the behavior of code during execution, in which methods or attributes of an object are dynamically replaced or added. This allows you to change the functionality of a class without changing its source code.

tags: #interview

➑ @DataScienceQ
Please open Telegram to view this post
VIEW IN TELEGRAM
❀3
Python Clean Code: Stop Writing Bad Code β€” Lessons from Uncle Bob

Are you tired of writing messy and unorganized code that leads to frustration and bugs? You can transform your code from a confusing mess into something crystal clear with a few simple changes. In this article, we'll explore key principles from the book "Clean Code" by Robert C. Martin, also known as Uncle Bob, and apply them to Python. Whether you're a web developer, software engineer, data analyst, or data scientist, these principles will help you write clean, readable, and maintainable Python code.

Read: https://habr.com/en/articles/841820/

https://t.iss.one/CodeProgrammer 🧠
Please open Telegram to view this post
VIEW IN TELEGRAM
❀2
Integrating Local LLMs with Ollama and Python πŸ€–πŸ’»

Did you know that integrating local large language models (LLMs) into your Python projects can help improve privacy, reduce costs, and build offline-capable AI-powered apps? πŸ‘‰

To get started, follow these steps:

β€’ Set up Ollama and pull the models you want to use.
β€’ Connect to them from Python using the <code>ollama</code> library.

Watch this video on how to integrate OLLAMA into your python projects https://youtu.be/E4l91XKQSgw?si=3gaeoM3EbvO6QYIC

Key Benefits:

β€’ Improved privacy
β€’ Reduced costs
β€’ Offline-capable AI-powered apps
❀1
Uv vs Pip: Choosing the Right Package Manager for Your Python Projects πŸ‘‰

When it comes to choosing a package manager for your Python projects, you have two popular options: uv and pip. While both tools share many similarities, there are key differences that may sway your decision.

* pip: Great for out-of-the-box availability, broad compatibility, and reliable ecosystem support. It's perfect for new projects or when you need to install popular packages quickly.
* uv: Worth considering if you prioritize fast installs, reproducible environments, and clean uninstall behavior. uv is ideal for streamline workflows for new projects, and its custom installation process can be beneficial for large-scale applications.

Here's a quick summary of the key differences:

* Package Installation: πŸ“¦
* pip: Easy to install popular packages using pip.
* uv: Requires manual package management, but can lead to faster installs and more reproducible environments.
* Dependency Management: πŸ’»
* pip: Provides automatic dependency resolution for most projects.
* uv: Requires custom dependency management, which can be beneficial for complex projects.

By considering these factors and comparing the two tools, you'll make an informed decision that suits your specific needs.
❀1
πŸš€ Lightweight X11 App Launcher for Python πŸŽ‰

X11 app launchers are powerful tools that can greatly enhance your Python development experience. However, creating a custom launcher from scratch can be challenging and time-consuming.

Here's why:

*   Performance: Creating a native X11 application requires a deep understanding of C, X11, and the underlying operating system.
*   Portability: Building a cross-platform application can be difficult due to the varying differences between platforms.
*   Customizability: Custom launchers require a good grasp of the underlying architecture and configuration options.

On the other hand, you can use existing libraries like pywinauto or pyppeteer to create a lightweight X11 app launcher for Python.

In this example, we'll create a simple launcher using pywinauto, which provides an easy-to-use API for automating desktop applications.

### Example Code

import pywinauto

def launch_app():
    # Create the main window
    app = pywinauto.application().start('MyApp')

    # Launch the main menu
    menu = app.top_menu()
    menu.show()

# Start the application
launch_app()

### Features

*   Native X11 Application: This launcher uses the native X11 API to create a seamless desktop experience.
*   Easy-to-Use Interface: The pywinauto library provides an intuitive API, making it easy to customize and extend the launcher.

### Benefits

*   High Performance: The native X11 application ensures optimal performance and responsiveness.
*   Cross-Platform Compatibility: This launcher is designed to be cross-platform, making it suitable for deployment on various operating systems.

By using pywinauto to create a lightweight X11 app launcher for Python, you can take advantage of the power of C and X11 while still enjoying a seamless desktop experience. Give this example a try and see how it can enhance your Python development workflow!
❀2
❔ Interview question

How to sort a list of dictionaries by a specific field?

Answer: To sort a list of dictionaries by a specific field, for example, by age, you can use the .sort() method or the sorted() function with the key parameter.

This parameter passes a function that extracts the value of the desired field from each dictionary. The .sort() method modifies the list in place, while sorted() returns a new sorted list.


tags: #interview

➑ @DataScienceQ
Please open Telegram to view this post
VIEW IN TELEGRAM