Python
5 subscribers
14 photos
10 videos
94 links
ف
Download Telegram
Forwarded from Python3
🌐 آموزش ایمن کردن سایت‌ها با پایتون 🐍

در این آموزش یاد می‌گیریم که چگونه با استفاده از پایتون امنیت سایت خود را افزایش دهیم. امنیت سایت یکی از مهم‌ترین جنبه‌های توسعه وب است که باید همیشه مورد توجه قرار گیرد. 💻🔒

۱. نصب کتابخانه‌های مورد نیاز 📦

ابتدا باید برخی کتابخانه‌ها را نصب کنیم. برای این کار از دستور زیر استفاده کنید:

pip install flask flask-sslify

۲. ایجاد یک سرور ساده با Flask 🌐

یک فایل پایتون جدید بسازید و کد زیر را داخل آن قرار دهید:

from flask import Flask
from flask_sslify import SSLify

app = Flask(__name__)
sslify = SSLify(app)

@app.route('/')
def home():
return "این یک سایت امن است! 🔐"

if __name__ == '__main__':
app.run(ssl_context=('cert.pem', 'key.pem'))

۳. ایجاد گواهینامه SSL 📜

برای استفاده از SSL نیاز به گواهینامه‌های SSL داریم. اگر از گواهینامه‌های واقعی استفاده نمی‌کنید، می‌توانید گواهینامه‌های خود امضا شده ایجاد کنید:

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes

۴. توضیح دستورات ایجاد گواهینامه 📋

- req -x509: این دستور گواهینامه خود امضا شده ایجاد می‌کند.
- -newkey rsa:4096: این پارامتر یک کلید جدید با طول 4096 بیت ایجاد می‌کند.
- -keyout key.pem: کلید خصوصی را در فایل key.pem ذخیره می‌کند.
- -out cert.pem: گواهینامه را در فایل cert.pem ذخیره می‌کند.
- -days 365: گواهینامه به مدت 365 روز معتبر خواهد بود.
- -nodes: بدون رمزگذاری کلید خصوصی.

۵. اجرای سرور 🌍

حالا می‌توانید سرور خود را اجرا کنید:

python your_file_name.py

۶. تست سایت ایمن شده 🔍

مرورگر خود را باز کرده و به آدرس https://127.0.0.1:5000 بروید. باید پیغام "این یک سایت امن است! 🔐" را ببینید.

۷. نکات پایانی برای افزایش امنیت سایت 📝

1. امنیت رمزها: همیشه از رمزهای قوی برای گواهینامه‌ها و کلیدهای خود استفاده کنید.
2. بروزرسانی منظم: برنامه‌ها و کتابخانه‌های خود را به‌روز نگه دارید.
3. پیکربندی مناسب: از پیکربندی‌های امنیتی مناسب در سرور خود استفاده کنید.
4. مراقب حملات XSS و SQL Injection باشید: اطمینان حاصل کنید که ورودی‌های کاربر را به درستی اعتبارسنجی و استریل کنید.
5. استفاده از فایروال و ابزارهای امنیتی: از ابزارهای امنیتی مانند فایروال‌ها برای حفاظت از سایت خود استفاده کنید.



با استفاده از این آموزش ساده می‌توانید سایت‌های خود را با استفاده از پایتون ایمن کنید و امنیت کاربران خود را افزایش دهید. موفق باشید! 🌟

🔗https://t.iss.one/hamidpython123


#امنیت #پایتون #وب_دیولوپمنت #SSL #HTTPS #آموزش
Forwarded from Python3
📦 پروژه انبارداری با پایتون، Tkinter و MySQL 🐍

در این آموزش یاد می‌گیریم که چگونه یک پروژه انبارداری ساده با استفاده از پایتون و کتابخانه‌های Tkinter و MySQL ایجاد کنیم. این پروژه شامل افزودن ورودی، خروجی، نمایش موجودی و گزارش‌گیری است. 💻🔒

۱. نصب کتابخانه‌های مورد نیاز 📦

ابتدا باید برخی کتابخانه‌ها را نصب کنیم. برای این کار از دستور زیر استفاده کنید:

pip install tkinter mysql-connector-python

۲. ایجاد و تنظیم دیتابیس MySQL 🗄️

ابتدا وارد MySQL شوید و دیتابیس و جدول مورد نیاز را ایجاد کنید:

CREATE DATABASE warehouse;
USE warehouse;

CREATE TABLE inventory (
id INT AUTO_INCREMENT PRIMARY KEY,
item_name VARCHAR(255) NOT NULL,
quantity INT NOT NULL,
date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

۳. کدنویسی برنامه اصلی 🌐

یک فایل پایتون جدید بسازید و کد زیر را داخل آن قرار دهید:

import tkinter as tk
from tkinter import messagebox
import mysql.connector

# اتصال به دیتابیس
conn = mysql.connector.connect(
host='localhost',
user='yourusername',
password='yourpassword',
database='warehouse'
)
cursor = conn.cursor()

# تابع افزودن موجودی
def add_item():
item_name = item_name_entry.get()
quantity = int(quantity_entry.get())

cursor.execute("INSERT INTO inventory (item_name, quantity) VALUES (%s, %s)", (item_name, quantity))
conn.commit()
messagebox.showinfo("موفقیت", "آیتم با موفقیت اضافه شد!")
item_name_entry.delete(0, tk.END)
quantity_entry.delete(0, tk.END)

# تابع حذف موجودی
def remove_item():
item_name = item_name_entry.get()
quantity = int(quantity_entry.get())

cursor.execute("UPDATE inventory SET quantity = quantity - %s WHERE item_name = %s", (quantity, item_name))
conn.commit()
messagebox.showinfo("موفقیت", "آیتم با موفقیت حذف شد!")
item_name_entry.delete(0, tk.END)
quantity_entry.delete(0, tk.END)

# تابع نمایش موجودی
def show_inventory():
cursor.execute("SELECT item_name, SUM(quantity) FROM inventory GROUP BY item_name")
records = cursor.fetchall()
inventory_window = tk.Toplevel(root)
inventory_window.title("موجودی انبار")

for idx, (item_name, quantity) in enumerate(records):
tk.Label(inventory_window, text=f"{item_name}: {quantity}").grid(row=idx, column=0)

# ایجاد رابط کاربری با Tkinter
root = tk.Tk()
root.title("سیستم انبارداری")

# منو
menu = tk.Menu(root)
root.config(menu=menu)
inventory_menu = tk.Menu(menu)
menu.add_cascade(label="موجودی", menu=inventory_menu)
inventory_menu.add_command(label="نمایش موجودی", command=show_inventory)

# برچسب‌ها و ورودی‌ها
tk.Label(root, text="نام آیتم").grid(row=0, column=0)
tk.Label(root, text="تعداد").grid(row=1, column=0)

item_name_entry = tk.Entry(root)
item_name_entry.grid(row=0, column=1)

quantity_entry = tk.Entry(root)
quantity_entry.grid(row=1, column=1)

# دکمه‌ها
tk.Button(root, text="افزودن", command=add_item).grid(row=2, column=0)
tk.Button(root, text="حذف", command=remove_item).grid(row=2, column=1)

root.mainloop()

# بستن اتصال به دیتابیس
conn.close()

۴. اجرای برنامه 🌍

برنامه را اجرا کنید:

python your_file_name.py

۵. نکات پایانی برای بهبود پروژه 📝

1. اعتبارسنجی ورودی‌ها: از اعتبارسنجی ورودی‌ها برای جلوگیری از وارد کردن داده‌های نادرست استفاده کنید.
2. بهبود رابط کاربری: رابط کاربری را با افزودن عناصر گرافیکی بیشتر بهبود دهید.
3. گزارش‌گیری پیشرفته: گزارش‌های پیشرفته‌تری با فیلترها و نمودارها ایجاد کنید.



با استفاده از این پروژه ساده می‌توانید یک سیستم انبارداری ساده با استفاده از پایتون، Tkinter و MySQL ایجاد کنید و امنیت کاربران خود را افزایش دهید. موفق باشید! 🌟

🔗https://t.iss.one/hamidpython123


#انبارداری #پایتون #Tkinter #MySQL #برنامه‌نویسی #آموزش
Forwarded from Python3
📦 پروژه رمزنگاری و رمزگشایی با پایتون و PyCryptodome 🐍

در این آموزش، یاد می‌گیریم که چگونه با استفاده از پایتون و کتابخانه PyCryptodome عملیات رمزنگاری و رمزگشایی را انجام دهیم. این پروژه شامل مراحل دریافت ورودی، رمزنگاری و رمزگشایی متن است. 💻🔒

1. نصب کتابخانه مورد نیاز 📦

ابتدا باید کتابخانه PyCryptodome را نصب کنیم. برای این کار از دستور زیر استفاده کنید:

pip install pycryptodome

2. نوشتن کد اصلی 🌐

یک فایل پایتون جدید بسازید و کد زیر را داخل آن قرار دهید. این کد شامل توابع رمزنگاری و رمزگشایی است و از کاربر می‌پرسد که می‌خواهد عملیات رمزنگاری انجام دهد یا رمزگشایی.

from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
from Crypto.Util.Padding import pad, unpad

# پرسش از کاربر
operation = input("آیا می‌خواهید عملیات رمزنگاری انجام دهید یا رمزگشایی؟ (encrypt/decrypt): ").strip().lower()

# تابع رمزنگاری
def encrypt(plain_text, key):
cipher = AES.new(key, AES.MODE_CBC)
ct_bytes = cipher.encrypt(pad(plain_text.encode(), AES.block_size))
iv = cipher.iv
return iv, ct_bytes

# تابع رمزگشایی
def decrypt(iv, ct_bytes, key):
cipher = AES.new(key, AES.MODE_CBC, iv)
pt = unpad(cipher.decrypt(ct_bytes), AES.block_size)
return pt.decode('utf-8')

# کلید رمزنگاری (باید 16، 24 یا 32 بایت باشد)
key = get_random_bytes(16)

if operation == "encrypt":
# دریافت متن از کاربر
plain_text = input("لطفاً متن اصلی خود را وارد کنید: ")

# رمزنگاری
iv, ct_bytes = encrypt(plain_text, key)
print(f'🔒 متن رمزنگاری شده: {ct_bytes.hex()}')

elif operation == "decrypt":
# دریافت اطلاعات از کاربر
iv = bytes.fromhex(input("لطفاً IV (به صورت hex) را وارد کنید: "))
ct_bytes = bytes.fromhex(input("لطفاً متن رمزنگاری شده (به صورت hex) را وارد کنید: "))

# رمزگشایی
decrypted_text = decrypt(iv, ct_bytes, key)
print(f'🔓 متن رمزگشایی شده: {decrypted_text}')

else:
print("عملیات نامعتبر است. لطفاً 'encrypt' یا 'decrypt' را وارد کنید.")

# پایان آموزش
print("آموزش به پایان رسید. موفق باشید! 🌟")

3. اجرای برنامه 🌍

برنامه را اجرا کنید:

python your_file_name.py

4. کاربردها و توضیحات بیشتر 💡

با استفاده از این پروژه، شما می‌توانید عملیات رمزنگاری و رمزگشایی متون را به راحتی انجام دهید. این کاربردها شامل موارد زیر است:

- امنیت داده‌ها: با استفاده از این روش می‌توانید داده‌های حساس خود را قبل از ذخیره‌سازی یا ارسال به دیگران، رمزنگاری کنید تا از دسترسی غیرمجاز جلوگیری شود.
- انتقال امن پیام‌ها: می‌توانید پیام‌های مهم خود را رمزنگاری کرده و سپس ارسال کنید. گیرنده با داشتن کلید مناسب می‌تواند پیام را رمزگشایی کند.
- ذخیره‌سازی امن: اگر نیاز به ذخیره‌سازی داده‌های حساس دارید، می‌توانید آن‌ها را رمزنگاری کرده و در دیتابیس یا فایل‌های دیگر ذخیره کنید.

با استفاده از این پروژه ساده می‌توانید امنیت داده‌های خود را افزایش دهید و از دسترسی‌های غیرمجاز جلوگیری کنید. موفق باشید! 🌟

🔗این کانال منه

#رمزنگاری #پایتون #PyCryptodome #برنامه‌نویسی #آموزش
Forwarded from Python3
📢 جدیدترین کتابخانه‌های پایتون امروز 📚

1. FastAPI 🚀:
- یک فریمورک مدرن و سریع برای ساخت APIها با استفاده از پایتون، که روی عملکرد بالا و کدنویسی آسان تمرکز دارد. این کتابخانه به تازگی بروزرسانی‌هایی برای بهبود امنیت و عملکرد دریافت کرده است.

2. Pydantic 💼:
- نسخه جدید Pydantic منتشر شده است که بهبودهای عمده‌ای در عملکرد دارد و اکنون تا پنجاه برابر سریع‌تر از نسخه‌های قبلی است. این کتابخانه برای اعتبارسنجی داده‌ها و تنظیمات استفاده می‌شود.

3. Polars 🐼:
- یک کتابخانه جدید برای پردازش داده‌ها که عملکرد بسیار بالاتری نسبت به Pandas دارد. این کتابخانه با استفاده از Rust نوشته شده و برای کار با مجموعه داده‌های بزرگ بسیار مناسب است.

4. Transformers 🤖:
- یک کتابخانه پیشرفته برای پردازش زبان طبیعی (NLP) که توسط Hugging Face توسعه داده شده است. نسخه جدید این کتابخانه بهبودهایی در مدل‌های بزرگ زبان (LLMs) دارد و از معماری‌های جدید پشتیبانی می‌کند.

5. HTTPX 🌐:
- یک کتابخانه برای ارسال درخواست‌های HTTP/1.1 و HTTP/2 با قابلیت پشتیبانی از async و sync. این کتابخانه به تازگی بروزرسانی‌هایی برای بهبود سازگاری و کارایی دریافت کرده است.

6. Poetry 🎶:
- یک ابزار مدیریت بسته‌های پایتون و محیط‌های مجازی که به تازگی ویژگی‌های جدیدی برای مدیریت وابستگی‌ها و بهبود تجربه کاربری اضافه کرده است.

با ما همراه باشید برای تازه‌ترین اخبار و کتابخانه‌های دنیای پایتون!
🔗این کانال منه

#پایتون #کتابخانه_پایتون #FastAPI #Pydantic #Polars #Transformers #HTTPX #Poetry
Forwarded from Python3
📢 آموزش ساخت چت‌بات AI با استفاده از OpenAI 🤖

در این آموزش، نحوه ساخت یک چت‌بات هوش مصنوعی که به OpenAI متصل می‌شود را یاد می‌گیریم. این چت‌بات می‌تواند به سوالات کاربران پاسخ دهد. برای این کار از زبان برنامه‌نویسی Python و کتابخانه‌های مربوطه استفاده می‌کنیم. 🐍

مراحل ساخت چت‌بات

1. ایجاد حساب در OpenAI 🌐
ابتدا به سایت OpenAI بروید و یک حساب کاربری ایجاد کنید. پس از ایجاد حساب، کلید API خود را دریافت کنید. این کلید برای اتصال به سرویس‌های OpenAI ضروری است.

2. نصب کتابخانه‌های مورد نیاز 📦
کتابخانه‌های openai و requests را نصب کنید. برای این کار از دستور زیر در ترمینال یا Command Prompt استفاده کنید:
pip install openai requests

3. ایجاد فایل پایتون 📝
یک فایل پایتون جدید (مثلاً chatbot.py) ایجاد کنید و کد زیر را در آن قرار دهید:

وارد کردن کتابخانه‌ها
import openai

توضیح: ابتدا کتابخانه openai وارد می‌شود که برای ارتباط با API OpenAI ضروری است.

تنظیم کلید API
# کلید API خود را اینجا قرار دهید
openai.api_key = 'YOUR_API_KEY'

توضیح: کلید API دریافت‌شده از سایت OpenAI در اینجا قرار می‌گیرد.

تعریف تابع ask_openai
def ask_openai(question):
response = openai.Completion.create(
engine="text-davinci-003", # انتخاب مدل
prompt=question, # سوالی که کاربر می‌پرسد
max_tokens=150 # حداکثر تعداد کلمات در پاسخ
)
return response.choices[0].text.strip() # پاسخ را برمی‌گرداند

توضیح: این تابع سوال کاربر را به مدل OpenAI ارسال می‌کند و پاسخ را برمی‌گرداند.
- پارامترها:
- engine="text-davinci-003": مدل مورد استفاده را مشخص می‌کند.
- prompt=question: سوال کاربر را به مدل ارسال می‌کند.
- max_tokens=150: حداکثر تعداد کلمات در پاسخ.
- پاسخ: اولین پاسخ مدل را برمی‌گرداند و فاصله‌های اضافی را حذف می‌کند.

حلقه اصلی برنامه
while True:
user_input = input("شما: ") # دریافت سوال از کاربر
if user_input.lower() == 'exit': # اگر کاربر 'exit' تایپ کند، برنامه متوقف می‌شود
break
response = ask_openai(user_input) # ارسال سوال به OpenAI و دریافت پاسخ
print(f"چت‌بات: {response}") # نمایش پاسخ به کاربر

توضیح: در اینجا، برنامه به طور مداوم سوالات کاربر را دریافت می‌کند و پاسخ‌ها را نمایش می‌دهد.
- input("شما: "): سوال کاربر را دریافت می‌کند.
- شرط توقف: اگر کاربر exit را تایپ کند، برنامه متوقف می‌شود.
- نمایش پاسخ: پاسخ دریافت‌شده از OpenAI را نمایش می‌دهد.

4. اجرای برنامه 🚀
فایل chatbot.py را اجرا کنید و شروع به پرسیدن سوالات از چت‌بات کنید. با تایپ exit می‌توانید برنامه را متوقف کنید.

🔗اینم لینک کانال ما

#چت_بات #هوش_مصنوعی #OpenAI #برنامه_نویسی #پایتون
Forwarded from Python3
آموزش استفاده از دیتابیس در پایتون 📚🐍

استفاده از دیتابیس‌ها در پایتون یکی از مهارت‌های حیاتی برای برنامه‌نویسان است. در این آموزش، نحوه استفاده از دیتابیس SQLite در پایتون را به شما آموزش می‌دهیم.

1. نصب SQLite:
SQLite به صورت پیش‌فرض در پایتون موجود است و نیازی به نصب ندارد. اما برای مدیریت راحت‌تر دیتابیس‌ها، می‌توانید از ابزارهایی مانند DB Browser for SQLite استفاده کنید.

2. ایجاد و اتصال به دیتابیس:
ابتدا باید به یک دیتابیس متصل شویم. اگر دیتابیس وجود نداشته باشد، به صورت خودکار ایجاد می‌شود.

import sqlite3

# اتصال به دیتابیس
conn = sqlite3.connect('mydatabase.db')

# ایجاد یک کرسر
cursor = conn.cursor()

print("Connected to the database")

3. ایجاد جدول:
برای ذخیره داده‌ها، باید یک جدول ایجاد کنیم.

# ایجاد جدول
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
)
''')

print("Table created successfully")

4. اضافه کردن داده‌ها:
با استفاده از دستور INSERT می‌توانیم داده‌ها را به جدول اضافه کنیم.

# اضافه کردن داده‌ها
cursor.execute('''
INSERT INTO users (name, age) VALUES (?, ?)
''', ("John Doe", 28))

# ذخیره تغییرات
conn.commit()

print("Data inserted successfully")

5. خواندن داده‌ها:
برای خواندن داده‌ها از جدول، از دستور SELECT استفاده می‌کنیم.

# خواندن داده‌ها
cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()

for row in rows:
print(row)

6. به‌روزرسانی داده‌ها:
برای به‌روزرسانی داده‌ها از دستور UPDATE استفاده می‌کنیم.

# به‌روزرسانی داده‌ها
cursor.execute('''
UPDATE users
SET age = ?
WHERE name = ?
''', (30, "John Doe"))

# ذخیره تغییرات
conn.commit()

print("Data updated successfully")

7. حذف داده‌ها:
برای حذف داده‌ها از دستور DELETE استفاده می‌کنیم.

# حذف داده‌ها
cursor.execute('''
DELETE FROM users
WHERE name = ?
''', ("John Doe",))

# ذخیره تغییرات
conn.commit()

print("Data deleted successfully")

8. بستن اتصال:
در نهایت باید اتصال به دیتابیس را ببندیم.

# بستن اتصال
conn.close()

print("Connection closed")


با این آموزش ساده، شما می‌توانید به راحتی از SQLite در پایتون استفاده کنید و داده‌های خود را مدیریت کنید. امیدوارم که این آموزش برای شما مفید باشد. اگر سوالی دارید، در قسمت نظرات بپرسید! 😊

[این کانال منه]

#کانال_تلگرام #پایتون_آموزش #دیتابیس_پایتون
Forwarded from Python3
آموزش ساخت کد تست امنیت برنامه در پایتون 🎯

در این آموزش، نحوه نوشتن یک کد ساده برای تست امنیت برنامه‌تان را یاد می‌گیریم. این کد می‌تواند به شما کمک کند تا نقاط ضعف امنیتی را شناسایی و برطرف کنید.

گام اول: اعتبارسنجی ورودی

یکی از مهم‌ترین نکات امنیتی، اعتبارسنجی ورودی‌هاست. مطمئن شوید که کاربر تنها داده‌های معتبر را وارد می‌کند.

کد نمونه برای اعتبارسنجی ورودی:

def is_valid_input(user_input):
return user_input.isalnum()

user_input = input("Enter your input: ")

if is_valid_input(user_input):
print("Valid input!")
else:
print("Invalid input. Only alphanumeric characters are allowed.")

گام دوم: جلوگیری از تزریق کد (SQL Injection)

تزریق کد یکی از رایج‌ترین حملات است که می‌تواند برنامه شما را آسیب‌پذیر کند. استفاده از پارامترهای آماده در کوئری‌های SQL به شما کمک می‌کند تا از این نوع حملات جلوگیری کنید.

کد نمونه برای جلوگیری از تزریق SQL:

فرض کنید یک پایگاه داده SQLite دارید و می‌خواهید از تزریق SQL جلوگیری کنید.

import sqlite3

# ایجاد اتصال به پایگاه داده
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# ایجاد جدول
cursor.execute('''CREATE TABLE IF NOT EXISTS users
(id INTEGER PRIMARY KEY, username TEXT, password TEXT)''')
conn.commit()

# تابع ورود کاربر با استفاده از پارامترهای آماده
def login(username, password):
cursor.execute("SELECT * FROM users WHERE username=? AND password=?", (username, password))
result = cursor.fetchone()
if result:
print("Login successful!")
else:
print("Invalid username or password.")

# دریافت ورودی‌های کاربر
username = input("Enter your username: ")
password = input("Enter your password: ")

# تلاش برای ورود
login(username, password)

# بستن اتصال به پایگاه داده
conn.close()


در نتیجه

با استفاده از این روش‌ها، می‌توانید برخی از مهم‌ترین نکات امنیتی را در برنامه‌های خود اعمال کنید. همیشه به یاد داشته باشید که امنیت یک فرایند پیوسته است و باید به طور مرتب به‌روزرسانی و بررسی شود.

با این روش می‌توانید امنیت برنامه‌های خود را بهبود ببخشید و از بسیاری از حملات جلوگیری کنید. 😊🚀

[اینم لینک کانال منه]

#امنیت #برنامه‌نویسی #پایتون #تست_نفوذ #آموزش_برنامه‌نویسی
Forwarded from Python3
درود دوستان! 👋
امروز می‌خوایم درباره دو تا از مهم‌ترین الگوریتم‌های برنامه‌نویسی صحبت کنیم: مرتب‌سازی سریع (Quick Sort) و الگوریتم‌های جست‌وجو (Search Algorithms). بریم که با این الگوریتم‌ها بیشتر آشنا بشیم! 🚀

📌 الگوریتم مرتب‌سازی سریع (Quick Sort)
الگوریتم Quick Sort یکی از کارآمدترین الگوریتم‌های مرتب‌سازی هست که از روش تقسیم و حل (Divide and Conquer) استفاده می‌کنه. این الگوریتم به صورت زیر کار می‌کنه:
1. انتخاب محور (Pivot): یک عنصر رو به عنوان محور انتخاب می‌کنیم.
2. تقسیم‌بندی: آرایه رو به دو بخش تقسیم می‌کنیم، طوری که عناصر کمتر از محور در یک بخش و عناصر بزرگتر در بخش دیگر قرار بگیرن.
3. بازگشت (Recursion): برای هر دو بخش به صورت بازگشتی همین کار رو انجام می‌دیم تا آرایه کاملاً مرتب بشه.

مزیت Quick Sort سرعت بالا و کارایی خوبش در اکثر موارده، هر چند که در بدترین حالت می‌تونه O(n^2) باشه. ولی با انتخاب مناسب محور، معمولاً کارایی اون به O(n log n) می‌رسه.

نمونه کد Quick Sort :

def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quick_sort(left) + middle + quick_sort(right)

# استفاده
arr = [3, 6, 8, 10, 1, 2, 1]
print("Sorted array:", quick_sort(arr))

📌 الگوریتم‌های جست‌وجو (Search Algorithms)
الگوریتم‌های جست‌وجو برای پیدا کردن یک عنصر خاص در یک مجموعه داده استفاده می‌شن. دو تا از پرکاربردترین این الگوریتم‌ها عبارتند از:

1. جست‌وجوی خطی (Linear Search):
- ساده‌ترین روش جست‌وجو هست.
- به ترتیب هر عنصر مجموعه رو بررسی می‌کنه تا عنصر مورد نظر رو پیدا کنه.
- زمان اجرای این الگوریتم O(n) هست.

نمونه کد جست‌وجوی خطی :

def linear_search(arr, target):
for i in range(len(arr)):
if arr[i] == target:
return i
return -1

# استفاده
arr = [3, 6, 8, 10, 1, 2, 1]
target = 10
print("Element found at index:", linear_search(arr, target))

2. جست‌وجوی دودویی (Binary Search):
- این الگوریتم برای آرایه‌های مرتب‌شده مناسبه.
- به این صورت کار می‌کنه که عنصر وسط رو بررسی می‌کنه. اگر عنصر مورد نظر بزرگتر یا کوچکتر از عنصر وسط باشه، جست‌وجو رو در نیمه مناسب ادامه می‌ده.
- زمان اجرای این الگوریتم O(log n) هست که خیلی سریع‌تر از جست‌وجوی خطیه.

نمونه کد جست‌وجوی دودویی :

def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1

# استفاده
arr = sorted([3, 6, 8, 10, 1, 2, 1])
target = 10
print("Element found at index:", binary_search(arr, target))

استفاده از این الگوریتم‌ها به شما کمک می‌کنه تا برنامه‌هاتون بهینه‌تر و سریع‌تر عمل کنن.

📢 به دوستانتون هم بگین بیاین اینجا تا با هم بیشتر یاد بگیریم! 🌟

[اینم کانال منه]

#برنامه_نویسی #آموزش #الگوریتم #مرتب_سازی #جستجو #یادگیری #QuickSort #SearchAlgorithms
Forwarded from Python3
درود دوستان! 👋
امروز می‌خوایم درباره یکی از مهم‌ترین الگوریتم‌های جست‌وجو صحبت کنیم: الگوریتم جست‌وجوی دودویی (Binary Search). این الگوریتم برای پیدا کردن سریع یک عنصر در یک آرایه مرتب‌شده استفاده می‌شه. بریم که با این الگوریتم بیشتر آشنا بشیم! 🚀

📌 الگوریتم جست‌وجوی دودویی (Binary Search)
الگوریتم جست‌وجوی دودویی یکی از سریع‌ترین الگوریتم‌های جست‌وجو هست که زمان اجرای اون O(log n) هست. این الگوریتم به صورت زیر کار می‌کنه:
1. بررسی عنصر وسط: ابتدا عنصر وسط آرایه رو پیدا می‌کنیم.
2. مقایسه: اگر عنصر وسط برابر با عنصر مورد نظر باشه، جست‌وجو تموم می‌شه.
3. تقسیم‌بندی: اگر عنصر مورد نظر کوچکتر از عنصر وسط باشه، جست‌وجو رو در نیمه چپ آرایه ادامه می‌دیم؛ اگر بزرگتر باشه، در نیمه راست آرایه ادامه می‌دیم.
4. تکرار: این مراحل رو تا زمانی که عنصر مورد نظر پیدا بشه یا محدوده جست‌وجو به صفر برسه، تکرار می‌کنیم.

نمونه کد جست‌وجوی دودویی به زبان پایتون:

def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1

# استفاده
arr = sorted([3, 6, 8, 10, 1, 2, 1]) # آرایه مرتب‌شده
target = 10
print("Element found at index:", binary_search(arr, target))

در این مثال، ابتدا آرایه رو مرتب می‌کنیم و سپس از الگوریتم جست‌وجوی دودویی برای پیدا کردن عنصر مورد نظر استفاده می‌کنیم. اگر عنصر پیدا بشه، اندکس اون برگردونده می‌شه؛ در غیر این صورت، -1 برگردونده می‌شه.

استفاده از جست‌وجوی دودویی باعث می‌شه تا در آرایه‌های بزرگتر، زمان جست‌وجو به طور قابل توجهی کاهش پیدا کنه.

📢 به دوستانتون هم بگین بیاین اینجا تا با هم بیشتر یاد بگیریم! 🌟

[اینم کانال ماست]

#برنامه_نویسی #آموزش #الگوریتم #جستجو #یادگیری #BinarySearch #الگوریتم_دودویی
Forwarded from Python3
❗️🆕️یه کد کار بردی جدید

👇این یکی آپدیت اون کدی هست که CPU رو اسکن می‌کرد این یکی یه جدول درست میکنه و اطلاعات سخت افزاری دستگاه نشون می‌ده 👇

🟥البته که این کد روی همه سیستم عامل ها و سخت افزار ها کار می‌کنه ❗️


import psutil
import GPUtil


def get_cpu_specs():
cpu_freq = psutil.cpu_freq().current
return f"{cpu_freq / 1000:.2f} GHz"


def get_ram_specs():
ram = psutil.virtual_memory().total
return f"{ram / (1024**3):.2f} GB"


def get_gpu_specs():
gpus = GPUtil.getGPUs()
if gpus:
gpu = gpus[0]
return f"{gpu.name}, {gpu.memoryTotal} MB"
else:
return "No GPU found"


def get_ssd_specs():
disk_info = psutil.disk_usage('/')
return f"{disk_info.total / (1024**3):.2f} GB"


def draw_specs_table():
components = {
'CPU': get_cpu_specs(),
'RAM': get_ram_specs(),
'GPU': get_gpu_specs(),
'SSD': get_ssd_specs()
}

header = "| Component | Specs |"
separator = "+" + "-" * (len(header) - 2) + "+"

print(separator)
print(header)
print(separator)

for component, specs in components.items():
line = f"| {component.ljust(9)} | {specs.ljust(13)} |"
print(line)
print(separator)


draw_specs_table()


[اینم کانال منه]

❗️ری اکشن یادتون نره😉

#cpu #پایتون #کاربردی
Forwarded from Python3
📰 #اخبار_امروز_پایتون 🐍 | ۹ ژوئن ۲۰۲۴

سلام به همه دوستان عزیز برنامه‌نویس! 🌟

امروز با شش خبر مهم از دنیای پایتون در خدمت شما هستیم:

1️⃣ پایتون 3.12.0 منتشر شد! 🎉
نسخه جدید پایتون با ویژگی‌های جدید و بهبود عملکرد منتشر شده است. این نسخه شامل بهبودهای بسیاری در زمینه سرعت و بهینه‌سازی حافظه است. حتماً آن را امتحان کنید! 💻

2️⃣ کتابخانه Pandas به‌روز شد! 📊
نسخه جدید کتابخانه Pandas با قابلیت‌های جدید برای تجزیه و تحلیل داده‌ها ارائه شده است. این به‌روزرسانی شامل بهبودهای زیادی در پردازش داده‌ها و عملکرد بهتر است. 📈

3️⃣ کنفرانس PyCon 2024 🌐
برنامه کنفرانس PyCon 2024 اعلام شد. این کنفرانس در ماه سپتامبر برگزار می‌شود و شامل سخنرانی‌ها و ورکشاپ‌های متنوعی است. برای ثبت‌نام زودتر اقدام کنید! 🗓️

4️⃣ چالش کدنویسی پایتون 🚀
یک چالش جدید برای برنامه‌نویسان پایتون آغاز شده است. این چالش فرصت خوبی برای تست مهارت‌های کدنویسی و یادگیری تکنیک‌های جدید است. در این چالش شرکت کنید و برنده جوایز ارزنده شوید! 🏆

5️⃣ انتشار Django 4.2 🌟
نسخه جدید فریم‌ورک وب محبوب Django منتشر شده است. این نسخه با قابلیت‌های جدید و بهبود‌های امنیتی همراه است. اگر توسعه‌دهنده وب هستید، این به‌روزرسانی را از دست ندهید! 🌐

6️⃣ کتابخانه TensorFlow 2.10.0 🤖
کتابخانه TensorFlow نیز نسخه جدیدی را ارائه کرده است که شامل ابزارهای بهبود یافته برای یادگیری ماشین و هوش مصنوعی است. این نسخه به توسعه‌دهندگان کمک می‌کند تا مدل‌های پیچیده‌تری بسازند. 📊

با ما همراه باشید تا همیشه از آخرین اخبار و به‌روزرسانی‌های دنیای پایتون مطلع شوید! 🌐

[اخبار روز پایتون رو تو این کانال ببینید]


#پایتون #برنامه‌نویسی #تکنولوژی #اخبار #کنفرانس #کدنویسی #چالش #جنگو #یادگیری_ماشین #هوش_مصنوعی
Forwarded from Python3
Forwarded from Python3
📊 آموزش رگرسیون خطی با Python 📊

تعریف رگرسیون خطی
رگرسیون خطی یکی از روش‌های پایه‌ای و پرکاربرد در یادگیری ماشین است که برای مدل‌سازی رابطه بین یک متغیر مستقل (ورودی) و یک متغیر وابسته (خروجی) استفاده می‌شود. هدف اصلی رگرسیون خطی پیدا کردن بهترین خطی است که داده‌ها را به خوبی توضیح دهد.

مراحل پیاده‌سازی
1. وارد کردن کتابخانه‌ها 📚
2. آماده‌سازی داده‌ها 📋
3. ایجاد و آموزش مدل 🏋️‍♂️
4. پیش‌بینی و ارزیابی مدل 🧮
5. نمایش گرافیکی نتایج 📈

کد پایتون 🐍

# وارد کردن کتابخانه‌های مورد نیاز
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score

# آماده‌سازی داده‌ها
data = {
'ساعت_مطالعه': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
'نمره': [2, 3, 6, 8, 11, 12, 15, 16, 18, 20]
}
df = pd.DataFrame(data)

# تقسیم داده‌ها به دو دسته آموزش و آزمون
X = df[['ساعت_مطالعه']]
y = df['نمره']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# ایجاد مدل رگرسیون خطی
model = LinearRegression()
model.fit(X_train, y_train)

# پیش‌بینی و ارزیابی مدل
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

# نمایش نتایج
print(f"Mean Squared Error: {mse}")
print(f"R2 Score: {r2}")

# نمایش گرافیکی نتایج
plt.scatter(X_test, y_test, color='blue', label='Actual')
plt.plot(X_test, y_pred, color='red', linewidth=2, label='Predicted')
plt.xlabel('ساعت مطالعه')
plt.ylabel('نمره')
plt.legend()
plt.show()

توضیحات کد
- وارد کردن کتابخانه‌ها: کتابخانه‌های numpy، pandas، matplotlib و scikit-learn برای پردازش داده‌ها و ایجاد مدل رگرسیون خطی وارد می‌شوند.
- آماده‌سازی داده‌ها: داده‌های نمونه شامل ساعت‌های مطالعه و نمرات در یک DataFrame ذخیره می‌شوند.
- تقسیم داده‌ها: داده‌ها به دو دسته آموزش (80%) و آزمون (20%) تقسیم می‌شوند.
- ایجاد مدل: مدل رگرسیون خطی ایجاد و با داده‌های آموزشی آموزش داده می‌شود.
- پیش‌بینی و ارزیابی: مدل با داده‌های آزمون پیش‌بینی انجام می‌دهد و با استفاده از معیارهای Mean Squared Error و R2 Score ارزیابی می‌شود.
- نمایش گرافیکی: نتایج پیش‌بینی و داده‌های واقعی به صورت گرافیکی نمایش داده می‌شوند.

[اینم لینک کانال ما]


#یادگیری_ماشین #رگرسیون_خطی #آموزش_پایتون #تحلیل_داده #هوش_مصنوعی
Forwarded from Python3
📊 آموزش ساخت ماشین حساب گرافیکی با Python 📊

در این آموزش، قصد داریم یک ماشین حساب گرافیکی ساده با استفاده از کتابخانه tkinter در پایتون بسازیم که قابلیت انجام عملیات ساده ریاضی را دارد و از وقوع ارور جلوگیری می‌کند.

مراحل پیاده‌سازی

1. وارد کردن کتابخانه‌ها 📚
2. ایجاد و پیکربندی پنجره اصلی 🏠
3. تعریف و تنظیم نمایشگر و دکمه‌ها 🖲️
4. تعریف توابع عملیات و جلوگیری از ارور 🚫
5. راه‌اندازی برنامه 🚀

کد پایتون 🐍

# وارد کردن کتابخانه‌های مورد نیاز
from tkinter import *

# ایجاد و پیکربندی پنجره اصلی
root = Tk()
root.title("ماشین حساب")
root.geometry("400x600")

# تعریف نمایشگر
display = Entry(root, font=('Arial', 24), borderwidth=2, relief="solid", justify='right')
display.grid(row=0, column=0, columnspan=4, pady=20)

# تعریف توابع عملیات
def button_click(value):
current_text = display.get()
display.delete(0, END)
display.insert(0, current_text + value)

def button_clear():
display.delete(0, END)

def button_equal():
try:
result = eval(display.get())
display.delete(0, END)
display.insert(0, str(result))
except:
display.delete(0, END)
display.insert(0, "خطا")

# تعریف دکمه‌ها
buttons = [
'7', '8', '9', '/',
'4', '5', '6', '*',
'1', '2', '3', '-',
'0', '.', '=', '+'
]

row_val = 1
col_val = 0

for button in buttons:
if button == '=':
btn = Button(root, text=button, font=('Arial', 18), command=button_equal)
elif button == 'C':
btn = Button(root, text=button, font=('Arial', 18), command=button_clear)
else:
btn = Button(root, text=button, font=('Arial', 18), command=lambda b=button: button_click(b))
btn.grid(row=row_val, column=col_val, ipadx=10, ipady=10, padx=5, pady=5, sticky="nsew")
col_val += 1
if col_val > 3:
col_val = 0
row_val += 1

# دکمه پاک کردن
btn_clear = Button(root, text='C', font=('Arial', 18), command=button_clear)
btn_clear.grid(row=row_val, column=col_val, ipadx=10, ipady=10, padx=5, pady=5, sticky="nsew")

# راه‌اندازی برنامه
root.mainloop()

توضیحات کد
- وارد کردن کتابخانه‌ها: از کتابخانه tkinter برای ایجاد رابط گرافیکی استفاده می‌شود.
- ایجاد و پیکربندی پنجره اصلی: پنجره اصلی با عنوان "ماشین حساب" و اندازه 600x400 پیکربندی می‌شود.
- تعریف نمایشگر: نمایشگر با استفاده از ویجت Entry ایجاد شده و تنظیمات آن انجام می‌شود.
- تعریف توابع عملیات: توابعی برای مدیریت کلیک دکمه‌ها، پاک کردن نمایشگر و محاسبه نتیجه تعریف می‌شوند. تابع eval برای ارزیابی عبارات ریاضی استفاده شده و از وقوع ارور جلوگیری می‌شود.
- تعریف دکمه‌ها: دکمه‌های ماشین حساب به صورت یک لیست تعریف شده و در پنجره اصلی قرار می‌گیرند. هر دکمه با توجه به عملکرد خود (کلیک، پاک کردن، برابر) به توابع مربوطه متصل می‌شود.
- راه‌اندازی برنامه: برنامه با فراخوانی root.mainloop() راه‌اندازی می‌شود.

[اینم کانال ماست]


#یادگیری_پایتون #ماشین_حساب_گرافیکی #آموزش_برنامه_نویسی #tkinter
Forwarded from Python3
🌟 بهینه‌سازی کد با استفاده از memoization 🌟

🔍 توضیحات:

روش memoization یک تکنیک بهینه‌سازی است که با ذخیره‌سازی نتایج محاسبات تکراری، باعث افزایش سرعت اجرای برنامه می‌شود. این روش به خصوص در مواردی که محاسبات سنگین و تکراری داریم، بسیار مفید است. در اینجا یک کد نمونه به زبان پایتون آورده شده که از این تکنیک استفاده می‌کند:

def memoize(f):
memo = {}
def helper(x):
if x not in memo:
memo[x] = f(x)
return memo[x]
return helper

@memoize
def some_expensive_computation(x):
# اینجا محاسبات پرهزینه‌ای که نیاز به بهینه‌سازی دارد قرار می‌گیرد
pass

🔧 توضیح کد:

1. 🌐 تابع memoize: این تابع یک دیکشنری به نام memo ایجاد می‌کند که نتایج محاسبات را ذخیره می‌کند.
2. 💡 تابع helper: این تابع چک می‌کند که آیا نتیجه محاسبه قبلاً در memo ذخیره شده است یا نه. اگر ذخیره نشده باشد، محاسبه انجام شده و نتیجه آن ذخیره می‌شود.
3. 🚀 استفاده از memoization: با استفاده از دکوراتور @memoize، تابع some_expensive_computation بهینه‌سازی می‌شود و نتایج محاسبات تکراری ذخیره و بازیابی می‌شوند.


🔗 [اینم کانال ماست]

#بهینه_سازی #پایتون #Memoization #برنامه_نویسی #توسعه_دهنده
Forwarded from Python3
🌟🔍 #اخبار_پایتون امروز – ۷ خبر مهم برای جامعه پایتون 🔍🌟

1. رشد ابزار جدید بسته‌بندی به نام UV:
شرکت Astral، ابزار جدیدی به نام UV را معرفی کرده است که به عنوان جایگزینی سریع‌تر و کارآمدتر برای pip و سایر مدیریت‌کننده‌های وابستگی عمل می‌کند. UV به زبان Rust نوشته شده و سرعت بالایی دارد. 🚀📦

2. پیشرفت‌های امنیتی در پایتون:
Seth Larson، توسعه‌دهنده‌ی امنیتی جدیدی که توسط بنیاد نرم‌افزار پایتون (PSF) استخدام شده است، در حال کار بر روی بهبود‌های امنیتی در اکوسیستم پایتون است. این بهبودها شامل تقویت پروتکل‌های امنیتی و رفع اشکالات موجود می‌باشد. 🔒🐍

3. NumPy 2.0 به زودی منتشر می‌شود:
NumPy 2.0 که یک بروزرسانی بزرگ و مهم برای کتابخانه محبوب محاسبات عددی است، در 16 ژوئن 2024 منتشر خواهد شد. این نسخه شامل بهبودهای کارایی و ویژگی‌های جدید است. 🔢

4. ویژگی‌های جدید در پایتون 3.13:
نسخه بتا پایتون 3.13 منتشر شده و ویژگی‌های جدیدی مانند Interpreter جدید با ویرایش چند خطی و پشتیبانی از رنگ، و یک حالت experimental بدون GIL (Global Interpreter Lock) ارائه شده است. توسعه‌دهندگان تشویق می‌شوند که این نسخه را تست کنند و بازخوردهای خود را ارائه دهند. 💻🐍

5. افزونه جدید Pytest برای غیرفعال کردن تست‌ها:
یک افزونه جدید برای Pytest معرفی شده است که به کاربران اجازه می‌دهد تست‌ها را در فایل‌های خاص غیرفعال کنند. این افزونه می‌تواند برای بهینه‌سازی و مدیریت بهتر تست‌ها مفید باشد. 🧪⚙️

6. ملاقات‌های پایتون در سراسر جهان:
جامعه پایتون در هفته‌های آینده میزبان چندین رویداد مهم است، از جمله DjangoCon Europe 2024، PyCon Colombia 2024، و Canberra Python Meetup. این رویدادها فرصتی عالی برای شبکه‌سازی و یادگیری هستند. 🌐🎉

7. آموزش‌های جدید در Real Python:
وبسایت Real Python آموزش‌های جدیدی درباره طراحی اصول شی‌ء‌گرایی در پایتون و استفاده از اینترفیس‌ها منتشر کرده است. این آموزش‌ها به توسعه‌دهندگان کمک می‌کند تا کدهای تمیزتر و قابل نگهداری‌تری بنویسند. 📚💡

🔗 برای اطلاعات بیشتر و جزئیات کامل به منابع زیر مراجعه کنید:
- [Python Insider]
- [Real Python]
- [Planet Python]

🌹کانال مونو هم یه نگاه بندازین🌹

[این لینکشه]

#پایتون #اخبار_فناوری #برنامه‌نویسی #امنیت #پیشرفت #ابزارهای_توسعه
Forwarded from Python3
👇خلاصه الگوریتم فلوچارت👇
مراحل الگوریتم:
تحلیل ایستا (Static Analysis)
شناسایی و حذف کدهای بلااستفاده
بهینه‌سازی و ساده‌سازی منطق کد
مستندسازی و نظافت کد
بررسی و تست نهایی
فلوچارت الگوریتم:
در ادامه فلوچارت این مراحل را رسم خواهیم کرد:

شروع (Start)
تحلیل ایستا (Static Analysis)
از ابزارهای تحلیل ایستا استفاده کنید.
مشکلات و کدهای غیرفعال را شناسایی کنید.
شناسایی و حذف کدهای بلااستفاده (Identify and Remove Unused Code)
یافتن توابع و کلاس‌های بلااستفاده
حذف متغیرهای بلااستفاده
بهینه‌سازی و ساده‌سازی منطق کد (Optimize and Simplify Code Logic)
حذف شرط‌های غیرضروری
ادغام کدهای مشابه
مستندسازی و نظافت کد (Document and Clean Up Code)
اضافه کردن توضیحات و مستندات
استفاده از کنوانسیون‌های کدنویسی
بررسی و تست نهایی (Final Review and Testing)
انجام تست‌های خودکار
بررسی عملکرد
پایان (End)

[الگوریتم هارو تو این کانال پیدا کنید]
Forwarded from Python3
📚 استفاده از کتابخانه‌های پایتون برای کنترل سخت‌افزار

کنترل سخت‌افزار با پایتون یکی از جذاب‌ترین و مفیدترین کاربردهای این زبان محبوب است. با استفاده از کتابخانه‌های مختلف پایتون، می‌تونید به راحتی دستگاه‌ها و سنسورهای مختلف رو کنترل کنید. بیایید چند نمونه از این کتابخانه‌ها رو با هم بررسی کنیم.

# 1. RPi.GPIO برای Raspberry Pi
اگر از رزبری پای استفاده می‌کنید، کتابخانه RPi.GPIO یکی از بهترین گزینه‌هاست. این کتابخانه به شما اجازه می‌دهد پین‌های GPIO رو کنترل کنید.
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)

while True:
GPIO.output(18, GPIO.HIGH)
time.sleep(1)
GPIO.output(18, GPIO.LOW)
time.sleep(1)

# 2. pySerial برای ارتباط سریال
برای ارتباط با دستگاه‌های سریال مثل آردوینو، می‌تونید از کتابخانه pySerial استفاده کنید.
import serial

ser = serial.Serial('/dev/ttyUSB0', 9600)

while True:
line = ser.readline()
print(line.decode('utf-8').strip())

# 3. Adafruit CircuitPython برای سنسورها و ماژول‌های مختلف
کتابخانه‌های Adafruit CircuitPython برای کار با سنسورها و ماژول‌های مختلف بسیار عالی هستند. برای مثال، برای استفاده از سنسور دما و رطوبت DHT22:
import adafruit_dht
import board

dhtDevice = adafruit_dht.DHT22(board.D4)

while True:
try:
temperature = dhtDevice.temperature
humidity = dhtDevice.humidity
print(f"Temp: {temperature:.1f} C Humidity: {humidity:.1f}% ")
except RuntimeError as error:
print(error.args[0])

نتیجه‌گیری
با استفاده از این کتابخانه‌ها می‌تونید پروژه‌های جذاب و کاربردی ایجاد کنید. پس حتما امتحانشون کنید! 😉

[اینم کانال ماست]

#پایتون #برنامه_نویسی #سخت_افزار #آموزش #تکنولوژی #آردوینو #رزبری_پای #تلگرام