Showing posts with label Python Library. Show all posts
Showing posts with label Python Library. Show all posts

Sunday, 1 November 2026

Pyinstrument: A Powerful Python Library to Analyze and Optimize Your Code

 

Image

Pyinstrument: A Powerful Python Library to Analyze and Optimize Your Code

SEO Title: Pyinstrument Python Tutorial: Profile Code, Find Bottlenecks & Improve Performance

Meta Description: Learn how to use Pyinstrument in Python to identify slow functions, analyze execution time, generate interactive HTML profiling reports, and optimize your applications with practical examples.

Keywords: Pyinstrument Python, Python profiling, Python performance optimization, Python profiler, Python libraries, code optimization.


Introduction

Have you ever written a Python program that works perfectly but takes too long to execute?

You might try optimizing loops, changing data structures, or rewriting functions without knowing which part of your program is actually slow.

Instead of guessing, what if you could see exactly where your Python application spends its execution time?

Meet Pyinstrument!

Pyinstrument is a powerful Python profiling library that helps developers understand application performance, identify bottlenecks, and make informed optimization decisions.

It provides readable profiling reports, call-stack information, and interactive HTML visualizations.

1. What Is Pyinstrument?

Pyinstrument is a statistical sampling profiler for Python.

Unlike traditional tracing profilers that monitor every function call, Pyinstrument periodically samples the active call stack to understand where execution time is being spent.

It helps you:

  • Identify slow functions.

  • Analyze nested function calls.

  • Understand execution time.

  • Generate interactive HTML reports.

  • Visualize call stacks and timelines.

  • Optimize Python applications.

It is particularly useful for backend developers, data scientists, automation engineers, and Python developers working with large applications.

2. Installing Pyinstrument

You can install Pyinstrument using pip.

pip install pyinstrument

After installation, import the Profiler class into your Python program.

from pyinstrument import Profiler

3. Your First Pyinstrument Example

Let's create a simple Python program containing two functions.

One function simulates a data-loading operation, while another performs a mathematical calculation.

We will use Pyinstrument to understand how much time the program spends in each operation.

from pyinstrument import Profiler
from pathlib import Path
import time

def load_data():
    time.sleep(0.2)

def process_data():
    sum(i * i for i in range(100_000))

profiler = Profiler()

profiler.start()

load_data()
process_data()

profiler.stop()

Path("profile.html").write_text(
    profiler.output_html(),
    encoding="utf-8"
)

print("Saved profile.html")

Expected Output

Saved profile.html

The program generates an HTML file named profile.html.

Open this file in your browser to explore the profiling report.

4. Understanding the Profiling Report

Pyinstrument generates an interactive report that helps you understand the execution flow of your program.

There are two particularly useful views.

A. Call Stack View

The Call Stack view displays nested function calls and their recorded execution time.

For example, you might see:

  • load_data() taking approximately 0.201 seconds.

  • process_data() taking approximately 0.066 seconds.

  • sleep() appearing as a nested operation inside load_data().

These values are illustrative of the profiling session, not guaranteed results on every computer.

The call stack helps you identify which functions contribute most to the total execution time.

B. Timeline View

The Timeline view displays how your program executes over time.

You can use it to understand:

  • Which functions were active.

  • How long operations took.

  • How execution time was distributed.

  • Where expensive operations occurred.

This makes it easier to investigate performance issues in complex applications.

5. How to Profile an Existing Python Script

You don't always need to modify your Python code to use Pyinstrument.

You can profile an existing script directly from your terminal.

For example, suppose your file is named:

app.py

Run:

pyinstrument app.py

To generate an interactive HTML report:

pyinstrument -r html -o profile.html app.py

Pyinstrument runs your script and generates a profiling report.

This is especially useful when analyzing existing Python projects.

6. Using Pyinstrument in Jupyter Notebook

If you work with Jupyter Notebook, you can also profile individual cells.

First, load the Pyinstrument extension:

%load_ext pyinstrument

Then use the following magic command:

%%pyinstrument

import time

def task_one():
    time.sleep(0.2)

def task_two():
    sum(i * i for i in range(100_000))

task_one()
task_two()

Pyinstrument will display a profiling report for the executed cell.

This is useful when working with data science, machine learning, and experimental Python code.

7. Real-World Applications of Pyinstrument

Here are some practical situations where Pyinstrument can help.

1. Backend Development

Find slow functions in your Python backend and investigate expensive operations.

2. API Performance

Analyze the execution time of application requests and identify bottlenecks.

3. Data Science

Investigate slow data-processing operations and optimize expensive computations.

4. Automation Scripts

Find performance issues in long-running automation workflows.

5. Machine Learning

Profile Python-side preprocessing, data loading, and other supporting operations.

8. Pyinstrument vs. Guess-Based Optimization

Without profilingWith Pyinstrument
Guess which function is slowIdentify expensive call paths
Rewrite code unnecessarilyFocus on real bottlenecks
Optimize without measurementsUse profiling evidence
Difficult to understand execution flowExplore call stacks and timelines

Remember: profiling helps you decide where optimization efforts are most likely to matter.

9. Important Tips for Developers

  • Profile representative workloads rather than tiny artificial examples.

  • Focus on the largest contributors to execution time.

  • Avoid optimizing code based only on assumptions.

  • Compare profiling results before and after changes.

  • Remember that profiling itself introduces some overhead.

  • Use production-like data when investigating real performance problems.

Pyinstrument uses sampling, so extremely short operations may not appear individually in a report.

10. Conclusion

Pyinstrument is a useful library for developers who want to understand and improve Python application performance.

Instead of randomly changing your code, you can use profiling reports to identify expensive operations and make informed improvements.

Whether you're building APIs, processing data, developing automation scripts, or working on machine learning projects, Pyinstrument is worth adding to your Python toolkit.

My recommendation: Start profiling your existing Python projects and discover where your code spends the most time.

Happy Coding! ๐Ÿ


Useful Resources

Follow CLCODING for more Python tutorials, coding challenges, practical projects, and daily Python library discoveries.

Monday, 26 October 2026

๐Ÿชท Python Turtle The Crystal Lotus


 

Code:

import turtle import time s = turtle.Screen() s.setup(600, 600) s.bgcolor("#080518") s.tracer(0) t = turtle.Turtle() t.hideturtle() t.width(2) colors = ["#ff4d9d", "#a855f7", "#38e8ff", "#ff80ab", "#ffd166"] for layer in range(4): for i in range(12): t.penup() t.goto(0, 0) t.setheading(i * 30 + layer * 7) t.pendown() t.color(colors[(i + layer) % 5]) length = 100 + layer * 35 t.forward(length) t.circle(35 + layer * 5, 60) t.left(120) t.circle(35 + layer * 5, 60) t.forward(length) s.update() time.sleep(0.16) t.penup() t.goto(0, -18) t.dot(38, "#ffd166") t.dot(16, "white") turtle.done()
















Explanation:

1. Import Libraries

import turtleimport time

- turtle → draws the flower.

- time → controls animation speed.


2. Create the Screen

s = turtle.Screen()s.setup(600, 600)s.bgcolor("#080518")s.tracer(0)

- Creates a 600 × 600 window.

- Sets a dark purple background.

- tracer(0) disables automatic screen updates.


3. Configure the Turtle

t = turtle.Turtle()t.hideturtle()t.width(2)

- Creates the drawing turtle.

- Hides the cursor.

- Sets line thickness to 2.


4. Define Neon Colors

colors = ["#ff4d9d", "#a855f7", "#38e8ff",          "#ff80ab", "#ffd166"]

- Defines five pink, purple, cyan, and golden colors.


5. Create Flower Layers

for layer in range(4):    for i in range(12):

- Creates 4 layers.

- Draws 12 shapes in each layer, making 48 shapes in total.


6. Set Position and Rotation

t.penup()t.goto(0, 0)t.setheading(i * 30 + layer * 7)t.pendown()

- Moves to the center.

- Rotates each shape by 30°.

- Adds a slight rotation to each layer.


7. Select Colors

t.color(colors[(i + layer) % 5])

- Selects colors from the list.

- % 5 repeats the colors in sequence.


8. Calculate Shape Length

length = 100 + layer * 35

- Increases the length with each layer.

- Creates an expanding flower pattern.


9. Draw Curved Petals

t.forward(length)t.circle(35 + layer * 5, 60)t.left(120)t.circle(35 + layer * 5, 60)t.forward(length)

- Draws a straight line.

- Creates two curved arcs using circle().

- Turns the turtle and completes the petal-like shape.


10. Animate the Drawing

s.update()time.sleep(0.16)

- Updates the screen after each shape.

- Adds a short delay for a slower animation.


11. Create the Golden Center

t.penup()t.goto(0, -18)t.dot(38, "#ffd166")t.dot(16, "white")

- Draws a large golden circle.

- Adds a smaller white dot for a glowing center.


12. Finish the Drawing

turtle.done()

- Keeps the Turtle window open.




Image


Friday, 23 October 2026

๐ŸŒบ Python Turtle The Colorful Spirograph Bloom

 


Code:

import turtle import time s = turtle.Screen() s.setup(750, 750) s.bgcolor("#100719") s.title("Spirograph Flower") s.tracer(1) t = turtle.Turtle() t.hideturtle() t.speed(0) t.pensize(2) colors = ["#FF4D9D", "#A855F7", "#00E5FF", "#FFD166"] # Layered curved petals for layer in range(3): radius = 100 + layer * 35 for i in range(24): t.penup() t.goto(0, 0) t.setheading(i * 15 + layer * 5) t.pendown() t.pencolor(colors[(i + layer) % 4]) t.circle(radius, 70) t.left(110) t.circle(radius, 70) s.update() time.sleep(0.035) # Decorative center t.penup() t.goto(0, -18) t.pendown() t.pencolor("#FFD166") t.fillcolor("#FF4D9D") t.begin_fill() t.circle(18) t.end_fill() # Tiny outer dots for i in range(36): t.penup() t.goto(0, 0) t.setheading(i * 10) t.forward(245) t.dot(5, colors[i % 4]) s.update() time.sleep(0.025) turtle.done()





















Explanation:

1. Import Libraries

import turtleimport time

- turtle draws the flower design.

- time adds pauses to the animation.


2. Create the Screen

s = turtle.Screen()s.setup(750, 750)s.bgcolor("#100719")s.title("Spirograph Flower")s.tracer(1)

- Creates a 750 × 750 window.

- Sets a dark purple background.

- Adds the title “Spirograph Flower”.

- Enables screen updates during drawing.


3. Configure the Turtle

t = turtle.Turtle()t.hideturtle()t.speed(0)t.pensize(2)

- Creates the drawing turtle.

- Hides the cursor.

- Sets the fastest drawing speed.

- Sets the line thickness to 2.



4. Define Neon Colors

colors = ["#FF4D9D", "#A855F7", "#00E5FF", "#FFD166"]

Defines four colors: pink, purple, cyan, and golden yellow.


5. Create Three Flower Layers

for layer in range(3):    radius = 100 + layer * 35

- Creates three layers of petals.

- Increases the radius for each layer: 100, 135, and 170.


6. Set Petal Positions

for i in range(24):    t.penup()    t.goto(0, 0)    t.setheading(i * 15 + layer * 5)    t.pendown()

- Draws 24 curved patterns per layer.

- Moves the turtle to the center.

- Rotates each pattern by 15° plus a small layer offset.

- Puts the pen down to start drawing.


7. Draw Curved Petals

t.pencolor(colors[(i + layer) % 4])t.circle(radius, 70)t.left(110)t.circle(radius, 70)

- Changes colors for a multicolored effect.

- Draws a 70° curved arc.

- Turns left by 110°.

- Draws another arc to form a petal-like shape.


8. Animate the Flower

s.update()time.sleep(0.035)

- Refreshes the screen.

- Adds a short pause so the drawing animation is visible.


9. Draw the Center

t.penup()t.goto(0, -18)t.pendown()t.pencolor("#FFD166")t.fillcolor("#FF4D9D")t.begin_fill()t.circle(18)t.end_fill()


- Moves to the center area.

- Sets a golden outline and pink fill.

- Draws a filled circle of radius 18.


10. Add Decorative Outer Dots

for i in range(36):    t.penup()    t.goto(0, 0)    t.setheading(i * 10)    t.forward(245)    t.dot(5, colors[i % 4])

- Creates 36 decorative dots.

- Rotates by 10° for each dot.

- Moves 245 units from the center.

- Uses different neon colors for the dots.


11. Finish the Program

turtle.done()

Keeps the graphics window open after the drawing finishes.





Image


Friday, 16 October 2026

16 Essential Python Libraries and Tools for AI and Machine Learning in 2026

 

Image

16 Essential Python Libraries and Tools for AI and Machine Learning in 2026

Artificial Intelligence (AI) and Machine Learning (ML) are transforming how developers build applications, analyze data, automate tasks, and solve real-world problems. Python remains one of the most popular programming languages for these fields because of its extensive ecosystem of libraries and tools.

Whether you want to become a Machine Learning Engineer, Deep Learning Engineer, Generative AI Developer, or AI Engineer, learning the right Python libraries can help you build practical projects and develop industry-relevant skills.

In this guide, we will explore 16 essential Python libraries and tools for AI and Machine Learning in 2026, including their main uses, important features, and recommended starting points.

Table of Contents

  1. Scikit-learn

  2. PyTorch

  3. TensorFlow

  4. Keras

  5. JAX

  6. XGBoost

  7. Transformers

  8. PEFT

  9. vLLM

  10. LangChain

  11. LangGraph

  12. LlamaIndex

  13. Sentence Transformers

  14. FAISS

  15. MLflow

  16. Optuna

1. Scikit-learn

Best for: Traditional Machine Learning

Scikit-learn is a widely used Python library for building machine learning models. It provides a consistent API for training models, preprocessing data, evaluating performance, and selecting features.

Key features:

  • Classification and regression

  • Clustering algorithms

  • Feature selection and preprocessing

  • Model evaluation and cross-validation

  • Machine learning pipelines

Installation:

pip install scikit-learn

Example applications include predicting house prices, detecting spam, segmenting customers, and classifying datasets.

Official website: https://scikit-learn.org/

2. PyTorch

Best for: Deep Learning and Neural Networks

PyTorch is an open-source deep learning framework used to build and train neural networks. It is popular in research and production applications, including computer vision, natural language processing, and generative AI.

Key features:

  • Tensor operations and automatic differentiation

  • Neural network development

  • GPU acceleration

  • Model training and evaluation

  • Support for custom architectures

Installation:

pip install torch

PyTorch is a strong choice when you want to understand neural networks or experiment with deep learning models.

Official website: https://pytorch.org/

3. TensorFlow

Best for: Machine Learning Workflows and Deployment

TensorFlow is an end-to-end machine learning ecosystem for developing, training, and deploying models. Its broader ecosystem supports deployment across servers, browsers, mobile devices, and edge environments.

Key features:

  • Neural network training

  • Tensor operations and automatic differentiation

  • Model deployment tools

  • Distributed training capabilities

  • Integration with the Keras API

Installation:

pip install tensorflow

TensorFlow is useful for developers building machine learning applications that require a broad deployment ecosystem.

Official website: https://www.tensorflow.org/

4. Keras

Best for: Accessible Neural Network Development

Keras provides a high-level API for developing and training neural networks. It helps developers create models without writing every low-level training operation themselves.

Key features:

  • Simple model-building APIs

  • Neural network layers and optimizers

  • Training and evaluation workflows

  • Support for multiple backends, including TensorFlow, JAX, and PyTorch

  • Rapid experimentation

Installation:

pip install keras

Keras is a useful starting point for learning deep learning concepts and building neural network prototypes.

Official website: https://keras.io/

5. JAX

Best for: High-Performance Numerical Computing

JAX is a numerical computing library that combines a NumPy-style API with automatic differentiation and compilation. It is especially useful for research and high-performance machine learning workloads.

Key features:

  • Automatic differentiation with grad

  • Just-in-time compilation with jit

  • Vectorization with vmap

  • Parallel computation with pmap and related APIs

  • CPU, GPU, and accelerator support, depending on the environment

Installation:

pip install jax

JAX is worth exploring if you are interested in advanced machine learning research, mathematical optimization, or accelerator-based computing.

Official website: https://jax.readthedocs.io/

6. XGBoost

Best for: Gradient Boosting and Tabular Data

XGBoost is a gradient-boosting library widely used for structured and tabular datasets. It can deliver strong predictive performance for many classification and regression tasks.

Key features:

  • Gradient-boosted decision trees

  • Regularization to help control overfitting

  • Missing-value handling

  • Parallel computation

  • Support for classification, regression, and ranking

Installation:

pip install xgboost

Common applications include credit-risk prediction, customer churn analysis, fraud detection, and sales forecasting.

Official website: https://xgboost.readthedocs.io/

7. Transformers

Best for: Pretrained AI Models and Generative AI

The Hugging Face Transformers library provides access to pretrained models for natural language processing, computer vision, audio, and multimodal tasks.

Key features:

  • Access to pretrained models

  • Text classification and summarization

  • Text generation

  • Tokenization utilities

  • Model fine-tuning and inference

Installation:

pip install transformers

Transformers is a valuable library for developers who want to work with large language models, sentiment analysis, translation, and other AI applications.

Official website: https://huggingface.co/docs/transformers/

8. PEFT

Best for: Parameter-Efficient Fine-Tuning

PEFT stands for Parameter-Efficient Fine-Tuning. It provides techniques for adapting pretrained models while training only a small subset of parameters or introducing a relatively small number of additional trainable parameters.

Key features:

  • LoRA and other adapter-based methods

  • Reduced training memory requirements in supported workflows

  • Integration with Hugging Face Transformers

  • Fine-tuning large pretrained models

  • Support for multiple PEFT techniques

Installation:

pip install peft

PEFT is useful when you want to adapt a pretrained language model for a specialized task without fully fine-tuning all its parameters.

Official website: https://huggingface.co/docs/peft/

9. vLLM

Best for: High-Throughput LLM Inference

vLLM is an inference and serving engine designed to run large language models efficiently. It helps developers serve model responses to applications and handle concurrent requests.

Key features:

  • Efficient memory management

  • High-throughput inference

  • Continuous batching

  • OpenAI-compatible serving APIs for supported workflows

  • Distributed serving capabilities for supported models and configurations

Installation:

pip install vllm

Check the official installation guide first because supported hardware, operating systems, and accelerator configurations affect installation.

vLLM is especially relevant when deploying language models for production applications.

Official website: https://docs.vllm.ai/

10. LangChain

Best for: Building LLM-Powered Applications

LangChain is a framework for connecting language models with external tools, data sources, and application logic.

Key features:

  • Model integrations

  • Prompt templates

  • Tool calling

  • Retrieval workflows

  • Integration with external services

Installation:

pip install langchain

Developers can use LangChain to build chatbots, document assistants, and applications that combine language models with external information.

Official website: https://www.langchain.com/

11. LangGraph

Best for: Stateful AI Agents and Multi-Step Workflows

LangGraph helps developers build stateful, multi-step agent workflows. It is designed for applications that need controlled execution, persistent state, branching, and human involvement.

Key features:

  • Graph-based workflow design

  • State management

  • Conditional execution

  • Human-in-the-loop interactions

  • Checkpointing and persistence

Installation:

pip install langgraph

LangGraph is useful for building agents that execute multiple steps, call tools, maintain state, and handle complex workflows.

Official website: https://www.langchain.com/langgraph

12. LlamaIndex

Best for: Connecting LLMs to External Data

LlamaIndex helps developers connect language models to documents, databases, and other data sources. It provides tools for data ingestion, indexing, retrieval, and query workflows.

Key features:

  • Document loading and indexing

  • Data connectors

  • Retrieval-Augmented Generation (RAG)

  • Query engines

  • Integration with different language models and data sources

Installation:

pip install llama-index

For example, you could build a chatbot that answers questions using company documents, technical manuals, or a collection of educational PDFs.

Official website: https://www.llamaindex.ai/

13. Sentence Transformers

Best for: Embeddings and Semantic Search

Sentence Transformers is a Python library for generating text embeddings and evaluating semantic similarity. Embeddings represent text as numerical vectors that can be compared to find related content.

Key features:

  • Sentence and document embeddings

  • Semantic similarity

  • Semantic search

  • Cross-encoder reranking

  • Retrieval workflows

Installation:

pip install sentence-transformers

Applications include document retrieval, recommendation systems, duplicate-question detection, and semantic search.

Official website: https://www.sbert.net/

14. FAISS

Best for: Efficient Vector Similarity Search

FAISS, developed by Meta, is a library for efficient similarity search and clustering of dense vectors. It is commonly used when applications need to retrieve vectors similar to a query embedding.

Key features:

  • Nearest-neighbor search

  • Multiple index types

  • Vector clustering

  • Memory and search-performance trade-offs

  • CPU and supported GPU workflows

For a typical CPU installation:

pip install faiss-cpu

FAISS can be combined with embedding models to build semantic search systems and retrieval components for RAG applications.

Official repository: https://github.com/facebookresearch/faiss

15. MLflow

Best for: Experiment Tracking and Model Lifecycle Management

MLflow helps machine learning teams track experiments, record model parameters and metrics, manage model versions, and organize model lifecycle workflows.

Key features:

  • Experiment tracking

  • Metrics and parameter logging

  • Model packaging and registry capabilities

  • Model evaluation

  • Deployment and GenAI-related tooling

Installation:

pip install mlflow

MLflow is useful when you are experimenting with multiple models and need to compare results, reproduce experiments, and manage models systematically.

Official website: https://mlflow.org/

16. Optuna

Best for: Hyperparameter Optimization

Optuna is a framework for automating hyperparameter search. It helps identify promising configurations for machine learning models without requiring you to test every possible combination manually.

Key features:

  • Automated hyperparameter search

  • Define-by-run search spaces

  • Pruning of unpromising trials

  • Visualization of optimization results

  • Integration with popular machine learning frameworks

Installation:

pip install optuna

Optuna can help tune parameters such as learning rates, tree depth, regularization strengths, and batch sizes.

Official website: https://optuna.org/

Which Python Libraries Should You Learn First?

You do not need to learn all 16 libraries at once. Choose a sequence that matches your goals.

Learning goalRecommended starting tools
Traditional Machine LearningNumPy, Pandas, Scikit-learn
Deep LearningPyTorch or TensorFlow, plus Keras if useful
Generative AITransformers
LLM ApplicationsTransformers and LangChain
AI AgentsLangGraph
RAG and Document SearchSentence Transformers, FAISS, LlamaIndex
Model ServingvLLM
Experiment TrackingMLflow
Hyperparameter OptimizationOptuna
Machine Learning ResearchPyTorch or JAX

Before diving into specialized libraries, build a solid foundation in Python, data structures, APIs, Git, basic statistics, and software engineering.

Recommended Learning Resources from CLCODING

If you want to learn Python and AI through practical study, explore these resources:

1. Practical Python for AI Coding 2

Learn through practical Python coding activities and AI-oriented examples.

https://www.clcoding.com/2026/04/practical-python-for-ai-coding-2.html

2. Building AI Intensive Python Applications

Explore Python-based AI application development and practical implementation concepts.

https://www.clcoding.com/2026/07/building-ai-intensive-python.html

3. AI and Machine Learning Algorithms and Techniques

Study machine learning methods and the algorithms behind predictive models.

https://www.clcoding.com/2026/08/ai-and-machine-learning-algorithms-and.html

Visit CLCODING for more Python tutorials, coding challenges, and AI learning resources.

Conclusion

Python's AI ecosystem includes tools for every stage of development, from preparing data and training machine learning models to building LLM applications and deploying AI systems.

Start with Scikit-learn if you are new to machine learning. Explore PyTorch or TensorFlow for deep learning, Transformers for pretrained AI models, and LangGraph or LlamaIndex when you are ready to build more advanced LLM applications.

For production workflows, tools such as vLLM and MLflow can help you serve models and manage experiments.

The best approach is to learn the fundamentals, select tools for your goals, and build real projects. Practical experience matters more than collecting a long list of libraries.

Keep learning, keep building, and explore more at CLCODING.

Popular Posts

Categories

100 Python Programs for Beginner (119) AI (359) Android (25) AngularJS (1) API (2) Assembly Language (2) aws (31) Azure (12) BI (10) book (1) Books (359) Bootcamp (20) C (78) C# (12) C++ (83) cloud (1) Course (97) Coursera (307) Cybersecurity (37) data (10) Data Analysis (48) Data Analytics (31) data management (16) Data Science (443) Data Strucures (21) Deep Learning (228) Django (17) Downloads (3) edx (21) Engineering (15) Euron (30) Events (9) Excel (24) Finance (13) flask (4) flutter (1) FPL (17) Gadgets (1) Generative AI (80) Git (14) Google (55) Hadoop (3) HTML Quiz (1) HTML&CSS (48) IBM (43) IoT (3) IS (25) Java (99) Leet Code (4) Machine Learning (417) Meta (24) MICHIGAN (5) microsoft (13) Nvidia (8) Pandas (16) PHP (20) Projects (36) Python (1405) Python Bug (1) Python Coding Challenge (1303) Python Library (29) Python Mathematics (24) Python Mistakes (51) Python Pattern Challenge (38) Python Quiz (685) Python Tips (115) Python Turtle (1) Questions (3) R (72) React (7) Scripting (3) security (5) Selenium Webdriver (4) Software (21) SQL (56) Udemy (24) UX Research (1) web application (11) Web development (9) web scraping (3)

Followers

Python Coding for Kids ( Free Demo for Everyone)