Python Basics Notes @pythonRe.pdf
2.4 MB
Python Basics Notes ππ
https://t.me/pythonRe π
#Python #Coding #Programming #LearnPython #Tech #DevCommunity
https://t.me/pythonRe π
#Python #Coding #Programming #LearnPython #Tech #DevCommunity
β€3π₯2
If you work with Python, remember a simple rule: do not modify a list while iterating over it. ππ This can lead to unexpected results because the iterator does not track structural changes.
Here is an example that looks logical but works incorrectly: π€
It seems that all 2s should disappear, but one remains. β Why?
After removing an element, the list shifts, but the loop moves on β as a result, some values are simply skipped. ππ«
How to do it correctly β iterate over a copy: β
Even better β use list comprehension: π
items = [x for x in items if x != 2]
Conclusion: π do not modify a collection during iteration. This can lead to skipped elements, duplication, or even errors during execution. π οΈπ§
#Python #Coding #Programming #Debugging #TechTips #PythonTips
Here is an example that looks logical but works incorrectly: π€
items = [1, 2, 2, 3, 4]
for item in items:
if item == 2:
items.remove(item)
print(items)
# Output: [1, 2, 3, 4]
It seems that all 2s should disappear, but one remains. β Why?
After removing an element, the list shifts, but the loop moves on β as a result, some values are simply skipped. ππ«
How to do it correctly β iterate over a copy: β
for item in items[:]:
if item == 2:
items.remove(item)
print(items)
# Output: [1, 3, 4]
Even better β use list comprehension: π
items = [x for x in items if x != 2]
Conclusion: π do not modify a collection during iteration. This can lead to skipped elements, duplication, or even errors during execution. π οΈπ§
#Python #Coding #Programming #Debugging #TechTips #PythonTips
β€2
The Python library itertools contains many useful functions. πβ¨
One of them is compress(), which returns an iterator over the elements from data, for which the corresponding element in selectors is equal to True. ππ»
Here's an example: ππ
#Python #Programming #Itertools #Coding #Tech #DataScience
One of them is compress(), which returns an iterator over the elements from data, for which the corresponding element in selectors is equal to True. ππ»
Here's an example: ππ
#Python #Programming #Itertools #Coding #Tech #DataScience
π₯2
Cheat sheet on the basics of Python: ππ
basic syntax and language rules π
scalar types β basic data types (int, float, bool, str, NoneType) π’
datetime β working with date and time π β°
data structures β Python data structures (list, tuple, dict, set) π
list β mutable lists for storing data collections π
tuple β immutable sequences of values π
dict (hash map) β storing data in a key-value format π
set β unique elements without order π
slicing β obtaining parts of sequences through indices and step βοΈ
module/library β connecting modules and libraries π
help functions β using help() and dir() to explore the Python API π
#Python #Coding #DataScience #Programming #Tech #DevCommunity
basic syntax and language rules π
scalar types β basic data types (int, float, bool, str, NoneType) π’
datetime β working with date and time π β°
data structures β Python data structures (list, tuple, dict, set) π
list β mutable lists for storing data collections π
tuple β immutable sequences of values π
dict (hash map) β storing data in a key-value format π
set β unique elements without order π
slicing β obtaining parts of sequences through indices and step βοΈ
module/library β connecting modules and libraries π
help functions β using help() and dir() to explore the Python API π
#Python #Coding #DataScience #Programming #Tech #DevCommunity
β€5π₯3π2
How to check for the presence of subclasses in Python? ππ§
Here's how you can do it:
This function uses the
#Python #Programming #Subclasses #Coding #Dev #Tech
Here's how you can do it:
import inspect
def has_subclasses(cls):
return any(issubclass(sub, cls) for sub in inspect.getmembers(sys.modules[cls.__module__], inspect.isclass))
This function uses the
inspect module to find all subclasses of the given class. π οΈ#Python #Programming #Subclasses #Coding #Dev #Tech
β€5π1
π Reminder about Python map()!
map() β a built-in function that applies the specified function to each element of an iterable object (list, tuple, set, etc.).
The picture shows the basic syntax, an example of use with lambda, and a typical case β data transformation without a manual for loop.
Save it to quickly remember the syntax!
ππ»πΊοΈ #Python #Coding #Programming #LearnToCode #DevTips #Tech
map() β a built-in function that applies the specified function to each element of an iterable object (list, tuple, set, etc.).
The picture shows the basic syntax, an example of use with lambda, and a typical case β data transformation without a manual for loop.
Save it to quickly remember the syntax!
ππ»πΊοΈ #Python #Coding #Programming #LearnToCode #DevTips #Tech
β€7π1
Why is enumerate() used in Python? π€π
It allows you to simultaneously obtain the value of an element and its index when iterating through a list. πβ¨
This is more convenient and more readable than manually working with a counter. β π
#Python #Coding #Programming #Dev #Tech #Code
β¨ Join Best TG Channels
https://t.me/addlist/0f6vfFbEMdAwODBk
βοΈ Join Our WhatsApp Channel
https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
It allows you to simultaneously obtain the value of an element and its index when iterating through a list. πβ¨
This is more convenient and more readable than manually working with a counter. β π
for i, item in enumerate(items):
print(i, item)
#Python #Coding #Programming #Dev #Tech #Code
β¨ Join Best TG Channels
https://t.me/addlist/0f6vfFbEMdAwODBk
βοΈ Join Our WhatsApp Channel
https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
β€4π1π1
Data validation with Pydantic! πβ¨
In the early stages of development, data validation usually doesn't cause problems. In many Python projects, validation initially looks simple:
But then come email, JSON from APIs, query parameters, nested objects, configs, nullable fields, and type conversion. At some point, the code turns into a set of if/else and manual checks.
For such tasks, Pydantic is often used. Installation:
Create a model:
Now the data is validated automatically:
The result:
30
<class 'int'>
Pydantic will automatically convert the string "30" to an int. If you pass an incorrect value, you'll get a ValidationError:
This is especially convenient when working with APIs, JSON, query parameters, and incoming data from outside.
A common production case is checking email:
If the email is invalid, Pydantic will throw a ValidationError. You can set default values:
And allow None:
This field becomes optional. A practical example is processing an API response:
The types will be automatically converted. For nested model structures, you can combine:
The nested object will also be validated. Serialization in Pydantic v2:
Pydantic is actively used in FastAPI, ETL, microservices, data pipelines, and API clients.
For working with environment variables in Pydantic v2, a separate package is usually used:
It's important to understand: Pydantic is not an ORM and does not replace business logic. Its task is to validate data, convert types, and describe schemas.
π₯ Pydantic significantly reduces the amount of manual data validation and makes processing incoming structures more predictable.
#Python #Pydantic #DataValidation #FastAPI #Coding #DevOps
β¨ Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk
βοΈ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
In the early stages of development, data validation usually doesn't cause problems. In many Python projects, validation initially looks simple:
if not isinstance(age, int):
raise ValueError("age must be an int")
But then come email, JSON from APIs, query parameters, nested objects, configs, nullable fields, and type conversion. At some point, the code turns into a set of if/else and manual checks.
For such tasks, Pydantic is often used. Installation:
pip install pydantic
pip install "pydantic[email]"
Create a model:
from pydantic import BaseModel
class User(BaseModel):
name: str
age: int
Now the data is validated automatically:
user = User(
name="Alex",
age="30"
)
print(user.age)
print(type(user.age))
The result:
30
<class 'int'>
Pydantic will automatically convert the string "30" to an int. If you pass an incorrect value, you'll get a ValidationError:
User(
name="Alex",
age="test"
)
This is especially convenient when working with APIs, JSON, query parameters, and incoming data from outside.
A common production case is checking email:
from pydantic import BaseModel, EmailStr
class User(BaseModel):
email: EmailStr
User(email="alex@test.com")
If the email is invalid, Pydantic will throw a ValidationError. You can set default values:
from pydantic import BaseModel
class Config(BaseModel):
host: str = "localhost"
port: int = 5432
And allow None:
from pydantic import BaseModel
class User(BaseModel):
nickname: str | None = None
This field becomes optional. A practical example is processing an API response:
from pydantic import BaseModel
class Product(BaseModel):
id: int
title: str
price: float
data = {
"id": "1",
"title": "Keyboard",
"price": "99.5"
}
product = Product(**data)
print(product)
The types will be automatically converted. For nested model structures, you can combine:
from pydantic import BaseModel
class Address(BaseModel):
city: str
zip_code: str
class User(BaseModel):
name: str
address: Address
user = User(
name="Alex",
address={
"city": "Berlin",
"zip_code": "10115"
}
)
print(user)
The nested object will also be validated. Serialization in Pydantic v2:
print(user.model_dump())
print(user.model_dump_json())
Pydantic is actively used in FastAPI, ETL, microservices, data pipelines, and API clients.
For working with environment variables in Pydantic v2, a separate package is usually used:
pip install pydantic-settings
It's important to understand: Pydantic is not an ORM and does not replace business logic. Its task is to validate data, convert types, and describe schemas.
π₯ Pydantic significantly reduces the amount of manual data validation and makes processing incoming structures more predictable.
#Python #Pydantic #DataValidation #FastAPI #Coding #DevOps
β¨ Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk
βοΈ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
Telegram
AI PYTHON π
Youβve been invited to add the folder βAI PYTHON πβ, which includes 14 chats.
β€3π1
# Cheat sheet on high-order functions in Python:
π
π
π
β‘
π¦
π
π§
#Python #Programming #HighOrderFunctions #FunctionalProgramming #Coding #MapFilterReduce
β¨ Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk
βοΈ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
π
map() - applies a function to every element of an iterable and returns an iterator with the resultsπ
filter() - filters elements based on a condition and leaves only those for which the function returns Trueπ
reduce() - successively combines all elements of an iterable into a single valueβ‘
lambda functions - anonymous functions for short expressions and working with map/filter/reduceπ¦
iterable objects - lists, tuples, and other collections for processingπ
functools - a Python module that contains reduce()π§
functional programming - an approach to programming through functions and data processing without changing the state```pythonint(total)```
# Example usage
from functools import reduce
# map
squared = map(lambda x: x**2, [1, 2, 3, 4])
print(list(squared))
# filter
evens = filter(lambda x: x % 2 == 0, [1, 2, 3, 4, 5])
print(list(evens))
# reduce
total = reduce(lambda x, y: x + y, [1, 2, 3, 4])
pr
#Python #Programming #HighOrderFunctions #FunctionalProgramming #Coding #MapFilterReduce
β¨ Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk
βοΈ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
β€4π₯2π1
This media is not supported in your browser
VIEW IN TELEGRAM
β€οΈ Architecture Patterns β an informative repository on backend architecture in Python!
Here, they excellently demonstrate how to properly separate application logic, work with complex architecture, build a scalable backend, and maintain a codebase in an adequate state as the project grows. Instead of dry theory, the authors gradually build a full-fledged application and show how the architecture evolves as the project grows.
I'll leave a link: https://github.com/cosmicpython/book
#Python #Backend #Architecture #Coding #DevCommunity #OpenSource
β¨ Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk
βοΈ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
Here, they excellently demonstrate how to properly separate application logic, work with complex architecture, build a scalable backend, and maintain a codebase in an adequate state as the project grows. Instead of dry theory, the authors gradually build a full-fledged application and show how the architecture evolves as the project grows.
I'll leave a link: https://github.com/cosmicpython/book
#Python #Backend #Architecture #Coding #DevCommunity #OpenSource
β¨ Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk
βοΈ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
β€2