Python3
200 subscribers
100 photos
6 videos
26 files
518 links
🎓 آموزش و پروژه‌های Python
آموزش‌های کاربردی و پروژه‌های عملی Python برای همه سطوح. 🚀
Download Telegram
😐نتم تموم شده دارم با ۱ ساعته واستون آموزش میزارم🤕 بد دردیه پولم ندارم برم دوباره وبخرم
📚 آموزش ساخت وب سرویس RESTful با FastAPI در پایتون 🐍

سلام دوستان ! امروز قصد داریم یک وب سرویس RESTful با استفاده از فریم‌ورک FastAPI در پایتون بسازیم. این فریم‌ورک به خاطر سرعت بالا و سادگی در استفاده، بسیار محبوب است. 🎓🚀

این آموزش شامل مراحل نصب و راه‌اندازی FastAPI، ایجاد مسیرهای (routes) مختلف و مدیریت خطاها است.

🌟 گام‌های ساخت وب سرویس RESTful:

1. نصب FastAPI و Uvicorn: ابتدا باید FastAPI و Uvicorn را نصب کنیم. Uvicorn یک سرور ASGI است که برای اجرای برنامه‌های FastAPI استفاده می‌شود.


    pip install fastapi uvicorn

2. نوشتن کد: کد زیر را در یک فایل به نام main.py کپی کنید. این کد یک وب سرویس ساده با مسیرهای مختلف ایجاد می‌کند.


    from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import Optional

app = FastAPI()

# مدل داده
class Item(BaseModel):
name: str
description: Optional[str] = None
price: float
tax: Optional[float] = None

# مسیر برای صفحه اصلی
@app.get("/")
def read_root():
return {"message": "Hello, FastAPI"}

# مسیر برای خواندن آیتم‌ها
@app.get("/items/{item_id}")
def read_item(item_id: int, q: Optional[str] = None):
if item_id > 1000:
raise HTTPException(status_code=404, detail="Item not found")
return {"item_id": item_id, "q": q}

# مسیر برای ایجاد آیتم جدید
@app.post("/items/")
def create_item(item: Item):
return {"name": item.name, "price": item.price, "tax": item.tax}

# اجرای برنامه
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="127.0.0.1", port=8000)

📌 توضیحات:
- ابتدا کتابخانه‌های FastAPI، HTTPException و BaseModel را وارد می‌کنیم.
- یک نمونه از FastAPI به نام app ایجاد می‌کنیم.
- یک مدل داده به نام Item با استفاده از Pydantic تعریف می‌کنیم.
- مسیرهای مختلفی برای خواندن و ایجاد آیتم‌ها تعریف می‌کنیم.
- در نهایت، از Uvicorn برای اجرای برنامه استفاده می‌کنیم.

🔧 نکات:
- مدیریت خطاها: با استفاده از HTTPException می‌توانیم خطاهای مختلف را مدیریت کنیم و پیام‌های مناسب به کاربران برگردانیم.
- پشتیبانی از تایپ‌ها: FastAPI به طور خودکار از تایپ‌ها برای اعتبارسنجی داده‌ها و مستندسازی API استفاده می‌کند.
- مستندسازی خودکار: با رفتن به آدرس /docs در مرورگر، می‌توانید مستندات خودکار API را ببینید.

🚀 اجرای برنامه:
uvicorn main:app --reload

با این روش ساده و سریع، می‌توانید یک وب سرویس RESTful کاربردی با پایتون و FastAPI ایجاد کنید. 😃

[اینجا برلی اموزشای بیشتر کلیک کنید]

#پایتون #FastAPI #آموزش_پایتون #برنامه_نویسی #وب_سرویس #RESTful #آموزش_پیشرفته #توسعه_نرم_افزار
👍1
📚 آموزش برنامه‌های غیرهمزمان با Asyncio در پایتون

سلام دوستان ! امروز قصد داریم با کتابخانه Asyncio در پایتون، برنامه‌های غیرهمزمان بسازیم. Asyncio به ما اجازه می‌دهد تا برنامه‌های کارآمدتری بنویسیم که می‌توانند چندین وظیفه را به طور همزمان اجرا کنند. 🎓🔄

مراحل ساخت برنامه‌های غیرهمزمان:

1. Asyncio چیست؟
Asyncio یک کتابخانه برای نوشتن برنامه‌های همزمان و با کارایی بالا در پایتون است. با استفاده از async و await، می‌توانیم وظایف (tasks) را به طور همزمان اجرا کنیم بدون اینکه نیاز به چند نخی (multithreading) یا چند پردازشی (multiprocessing) داشته باشیم.

2. نصب Asyncio:
Asyncio به صورت پیشفرض در پایتون 3.4 به بعد موجود است و نیاز به نصب جداگانه ندارد.

3. نوشتن کد:


    import asyncio

async def fetch_data(delay, name):
print(f"Start fetching {name}")
await asyncio.sleep(delay)
print(f"Finished fetching {name}")

async def main():
task1 = asyncio.create_task(fetch_data(2, 'data1'))
task2 = asyncio.create_task(fetch_data(3, 'data2'))
task3 = asyncio.create_task(fetch_data(1, 'data3'))

await task1
await task2
await task3

asyncio.run(main())

توضیحات:
- تابع غیرهمزمان (async function): توابعی که با کلمه کلیدی async تعریف می‌شوند و می‌توانند با استفاده از await متوقف شده و بعداً از سر گرفته شوند. در اینجا، fetch_data یک تابع غیرهمزمان است که داده‌ها را با تأخیر مشخص شده شبیه‌سازی می‌کند.


    async def fetch_data(delay, name):
print(f"Start fetching {name}")
await asyncio.sleep(delay)
print(f"Finished fetching {name}")

- ایجاد و اجرای وظایف (tasks): با استفاده از asyncio.create_task می‌توانیم وظایف را ایجاد کرده و آنها را به طور همزمان اجرا کنیم. در اینجا، سه وظیفه ایجاد می‌کنیم که به ترتیب با تأخیرهای 2، 3 و 1 ثانیه اجرا می‌شوند.


    async def main():
task1 = asyncio.create_task(fetch_data(2, 'data1'))
task2 = asyncio.create_task(fetch_data(3, 'data2'))
task3 = asyncio.create_task(fetch_data(1, 'data3'))

await task1
await task2
await task3

- اجرای برنامه: با استفاده از asyncio.run تابع اصلی main را اجرا می‌کنیم.


    asyncio.run(main())

نکات:

- استفاده از async و await: برای تعریف و اجرای توابع غیرهمزمان.
- مدیریت وظایف: استفاده از asyncio.create_task برای ایجاد و مدیریت وظایف مختلف.
- زمانبندی وظایف: با استفاده از asyncio.sleep می‌توانیم وظایف را به صورت زمانبندی شده اجرا کنیم.
- توجه به تداخل وظایف: از آنجایی که وظایف به صورت همزمان اجرا می‌شوند، باید به تداخل احتمالی بین وظایف توجه کنید و در صورت نیاز از مکانیزم‌های همزمانی (synchronization) استفاده کنید.

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

#پایتون #آموزش_پایتون #برنامه_نویسی #برنامه_نویسی_غیرهمزمان #توسعه_نرم_افزار #Asyncio
👍1
📚 آموزش مدیریت داده‌ها با Pandas در پایتون 📊

سلام دوستان! امروز قصد داریم با کتابخانه Pandas در پایتون، داده‌ها را مدیریت و تحلیل کنیم. Pandas یکی از قدرتمندترین ابزارهای تحلیل داده در پایتون است. 🎓📈

مراحل مدیریت داده‌ها:

1. Pandas چیست؟
Pandas یک کتابخانه قدرتمند برای تحلیل و مدیریت داده‌ها در پایتون است که قابلیت‌هایی مانند خواندن و نوشتن داده‌ها از فرمت‌های مختلف، پاکسازی و آماده‌سازی داده‌ها، و انجام محاسبات آماری و تحلیل داده‌ها را فراهم می‌کند.

2. نصب Pandas:


    pip install pandas

3. نوشتن کد:


    import pandas as pd

# خواندن داده‌ها از فایل CSV
df = pd.read_csv('data.csv')

# نمایش اطلاعات اولیه داده‌ها
print(df.head())
print(df.info())

# پاکسازی داده‌ها
df.dropna(inplace=True)

# تحلیل داده‌ها
mean_price = df['price'].mean()
print(f"Mean Price: {mean_price}")

# ذخیره داده‌ها به فایل جدید
df.to_csv('cleaned_data.csv', index=False)

توضیحات:

- خواندن داده‌ها: با استفاده از pd.read_csv می‌توانیم داده‌ها را از یک فایل CSV بخوانیم و آن را به یک DataFrame تبدیل کنیم.


    df = pd.read_csv('data.csv')

- نمایش اطلاعات اولیه داده‌ها: با استفاده از head می‌توانیم چند سطر اول داده‌ها را ببینیم و با info اطلاعاتی مانند تعداد سطرها و ستون‌ها و نوع داده‌ها را بررسی کنیم.


    print(df.head())
print(df.info())

- پاکسازی داده‌ها: با استفاده از dropna می‌توانیم سطرهایی که دارای مقادیر گمشده (NaN) هستند را حذف کنیم.


    df.dropna(inplace=True)

- تحلیل داده‌ها: با استفاده از توابع آماری مانند mean می‌توانیم محاسبات آماری روی داده‌ها انجام دهیم. در اینجا میانگین قیمت‌ها محاسبه شده است.


    mean_price = df['price'].mean()
print(f"Mean Price: {mean_price}")

- ذخیره داده‌ها: با استفاده از to_csv می‌توانیم داده‌ها را در یک فایل CSV جدید ذخیره کنیم.


    df.to_csv('cleaned_data.csv', index=False)

نکات:

- پاکسازی داده‌ها: استفاده از توابعی مانند dropna و fillna برای پاکسازی داده‌ها و مدیریت مقادیر گمشده.
- تحلیل داده‌ها: استفاده از توابع آماری مانند mean، median، std و توابع دیگر برای تحلیل داده‌ها.
- مدیریت داده‌ها: استفاده از توابعی مانند groupby، merge و pivot_table برای مدیریت و ترکیب داده‌ها.
- ذخیره و بارگذاری داده‌ها: استفاده از to_csv، to_excel و توابع مشابه برای ذخیره و بارگذاری داده‌ها در فرمت‌های مختلف.

(اموزش های بیشتر داخل کانال ما)

#پایتون #آموزش_پایتون #تحلیل_داده #Pandas #داده_کاوی #توسعه_نرم_افزار
👍1
📚 آموزش الگوریتم دایکسترا برای یافتن کوتاه‌ترین مسیر در گراف‌ها 🚀

سلام دوستان! امروز قصد داریم با الگوریتم دایکسترا، کوتاه‌ترین مسیر را در گراف‌ها پیدا کنیم. این الگوریتم در مسائل مختلفی مانند مسیریابی شبکه، سیستم‌های توصیه‌گر و برنامه‌ریزی بسیار کاربردی است. 🎓📈

مراحل پیاده‌سازی الگوریتم دایکسترا:

1. الگوریتم دایکسترا چیست؟
الگوریتم دایکسترا یک الگوریتم گراف است که برای یافتن کوتاه‌ترین مسیر از یک رأس به تمامی رأس‌های دیگر در گراف وزن‌دار بدون یال‌های منفی استفاده می‌شود.

2. نصب کتابخانه‌های مورد نیاز:
برای این الگوریتم به کتابخانه‌های heapq و collections نیاز داریم که به صورت پیش‌فرض در پایتون موجود هستند.

3. نوشتن کد:


    import heapq
from collections import defaultdict

def dijkstra(graph, start):
# ایجاد دیکشنری برای نگهداری فاصله‌ها
distances = {node: float('infinity') for node in graph}
distances[start] = 0

# استفاده از اولویت‌بندی heap برای مدیریت اولویت‌ها
priority_queue = [(0, start)]

while priority_queue:
current_distance, current_node = heapq.heappop(priority_queue)

# نادیده گرفتن مسیرهای طولانی‌تر
if current_distance > distances[current_node]:
continue

for neighbor, weight in graph[current_node].items():
distance = current_distance + weight

# مسیر کوتاه‌تر را پیدا کرده‌ایم
if distance < distances[neighbor]:
distances[neighbor] = distance
heapq.heappush(priority_queue, (distance, neighbor))

return distances

# تعریف گراف به عنوان دیکشنری
graph = {
'A': {'B': 1, 'C': 4},
'B': {'A': 1, 'C': 2, 'D': 5},
'C': {'A': 4, 'B': 2, 'D': 1},
'D': {'B': 5, 'C': 1}
}

# اجرای الگوریتم دایکسترا
start_node = 'A'
distances = dijkstra(graph, start_node)
print(f"Distances from {start_node}: {distances}")

توضیحات کد:

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


    graph = {
'A': {'B': 1, 'C': 4},
'B': {'A': 1, 'C': 2, 'D': 5},
'C': {'A': 4, 'B': 2, 'D': 1},
'D': {'B': 5, 'C': 1}
}

- تعریف تابع دایکسترا: تابع dijkstra گراف و رأس شروع را به عنوان ورودی می‌گیرد و فاصله کوتاه‌ترین مسیرها را به تمامی رأس‌های دیگر برمی‌گرداند.


    def dijkstra(graph, start):
# ایجاد دیکشنری برای نگهداری فاصله‌ها
distances = {node: float('infinity') for node in graph}
distances[start] = 0

# استفاده از اولویت‌بندی heap برای مدیریت اولویت‌ها
priority_queue = [(0, start)]

while priority_queue:
current_distance, current_node = heapq.heappop(priority_queue)

# نادیده گرفتن مسیرهای طولانی‌تر
if current_distance > distances[current_node]:
continue

for neighbor, weight in graph[current_node].items():
distance = current_distance + weight

# مسیر کوتاه‌تر را پیدا کرده‌ایم
if distance < distances[neighbor]:
distances[neighbor] = distance
heapq.heappush(priority_queue, (distance, neighbor))

return distances

نکات:

- پیچیدگی زمانی: الگوریتم دایکسترا با استفاده از heapq دارای پیچیدگی زمانی O((V + E) log V) است که V تعداد رأس‌ها و E تعداد یال‌هاست.
- مدیریت اولویت‌ها: استفاده از heapq برای مدیریت اولویت‌ها و بهینه‌سازی زمان اجرای الگوریتم.
- اجتناب از یال‌های منفی: الگوریتم دایکسترا فقط در گراف‌های بدون یال‌های منفی به درستی کار می‌کند. برای گراف‌هایی با یال‌های منفی از الگوریتم بلمن-فورد استفاده کنید.
- توسعه‌پذیری: این الگوریتم می‌تواند به سادگی برای گراف‌های بزرگ‌تر و پیچیده‌تر توسعه یابد.

[اموزش الگوریتم های بیشتر داخل کانال ما ]

#پایتون #آموزش_پایتون #الگوریتم #گراف #دایکسترا #توسعه_نرم_افزار #برنامه_نویسی_پیشرفته
👍1
📚 آموزش پخش صدا با استفاده از کتابخانه داخلی winsound در پایتون (پارت 1/2) 🎵

سلام دوستان ! امروز قصد داریم با استفاده از کتابخانه داخلی winsound در پایتون، صدا را در برنامه‌های خود پخش کنیم. این کتابخانه فقط بر روی سیستم‌عامل ویندوز کار می‌کند و برای کاربردهای ساده بسیار مناسب است. 🎓🔊

معرفی winsound:
کتابخانه winsound یکی از کتابخانه‌های داخلی پایتون است که برای پخش صدا در سیستم‌عامل ویندوز استفاده می‌شود. این کتابخانه امکاناتی مانند پخش فایل‌های WAV، تولید بوق سیستم با فرکانس و مدت زمان مشخص و پخش صداهای از پیش تعریف شده سیستم را فراهم می‌کند.

نصب winsound:
نیازی به نصب جداگانه winsound نیست؛ این کتابخانه به صورت پیش‌فرض در پایتون وجود دارد و فقط کافی است آن را وارد کنید.

پخش صدای WAV:
با استفاده از تابع winsound.PlaySound می‌توانید فایل‌های WAV را پخش کنید. این تابع دو آرگومان می‌گیرد:
1. مسیر فایل WAV
2. پارامترهای کنترلی پخش صدا (مثلاً پخش به صورت غیرهمزمان)

نوشتن کد:

import winsound

# پخش صدای WAV
def play_wav_sound(file_path):
"""
پخش یک فایل WAV با استفاده از winsound

پارامترها:
file_path (str): مسیر فایل WAV
"""
try:
winsound.PlaySound(file_path, winsound.SND_FILENAME)
print(f"پخش فایل {file_path} با موفقیت انجام شد.")
except RuntimeError as e:
print(f"خطا در پخش فایل {file_path}: {e}")

# مسیر فایل WAV
wav_file_path = 'example.wav'

# پخش صدای WAV
play_wav_sound(wav_file_path)

توضیحات کد:

- تابع play_wav_sound:
- این تابع یک فایل WAV را پخش می‌کند.
- از winsound.PlaySound برای پخش فایل استفاده می‌شود.
- winsound.SND_FILENAME نشان‌دهنده این است که آرگومان اول، مسیر فایل صوتی است.


    def play_wav_sound(file_path):
"""
پخش یک فایل WAV با استفاده از winsound

پارامترها:
file_path (str): مسیر فایل WAV
"""
try:
winsound.PlaySound(file_path, winsound.SND_FILENAME)
print(f"پخش فایل {file_path} با موفقیت انجام شد.")
except RuntimeError as e:
print(f"خطا در پخش فایل {file_path}: {e}")

مثال‌های بعدی:

- مثال 1: پخش صدای خوشامدگویی

    play_wav_sound('welcome.wav')

- مثال 2: پخش صدای هشدار

    play_wav_sound('alert.wav')

نکات :

- فایل‌های WAV: اطمینان حاصل کنید که فایل‌های WAV با فرمت استاندارد و قابل پشتیبانی توسط winsound باشند.
- مدیریت خطا: همیشه از مدیریت خطا استفاده کنید تا مشکلات احتمالی را به درستی مدیریت کنید.

ادامه دارد...

[برای ادامه اموزش اینجا عضو شوید]

#پایتون #آموزش_پایتون #پخش_صدا #winsound #توسعه_نرم_افزار #برنامه_نویسی_پیشرفته
👍1
فعلا تا پارت ۲ یه چیز عجیب دیگه الانم که اینو گذاشتم (تو این گروه) بهس همینه پخش صدا با پایتونه
اینو بزارم پروف چنل؟
👍1
بزارمش؟
Anonymous Poll
75%
اره🔁
25%
نه🚫
( اخبار مهم دنیای پایتون - ۱۸ ژوئن ۲۰۲۴)

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

1. معرفی توسعه‌دهندگان جدید در برنامه PSF:
بنیاد نرم‌افزار پایتون (PSF) دو توسعه‌دهنده جدید به برنامه توسعه‌دهندگان مقیم خود اضافه کرده است. پتر ویکتورین به عنوان معاون توسعه‌دهنده مقیم و سرگئی استورچاکا به عنوان توسعه‌دهنده مقیم پشتیبان به تیم پیوسته‌اند. این توسعه به منظور بهبود و افزایش بهره‌وری در توسعه CPython، هسته اصلی پیاده‌سازی پایتون، انجام شده است

2. تعلیق ثبت‌نام‌های جدید در PyPI به دلیل حمله بدافزار:
شاخص بسته‌های پایتون (PyPI) به دلیل یک حمله بدافزار در حال اجرا، ایجاد پروژه‌های جدید و ثبت‌نام کاربران جدید را به طور موقت متوقف کرده است. محققان امنیتی چندین بسته مخرب را شناسایی کرده‌اند که از تکنیک‌های تایپو اسکوئیتینگ برای فریب کاربران و نصب آن‌ها استفاده می‌کنند

3. تعداد بی‌سابقه‌ای از پیشنهادات برای PyCon US 2024:
کنفرانس PyCon US 2024 تعداد بی‌سابقه‌ای از ۹۷۳ پیشنهاد برای سخنرانی‌ها، آموزش‌ها و پوسترها دریافت کرده است. این نشان‌دهنده افزایش اشتیاق و مشارکت در جامعه پایتون است. این کنفرانس از ۱۵ تا ۲۳ می ۲۰۲۴ در پیتسبورگ، پنسیلوانیا برگزار خواهد شد

4. معرفی REPL جدید در پایتون 3.13:
یکی از ویژگی‌های مهم نسخه آینده پایتون 3.13، یک مفسر تعاملی جدید (REPL) است که توسط پابلو گالینگو سالگادو، لوکاش لانگا و لیساندروس توسعه داده شده است. این REPL جدید انتظار می‌رود که تجربه تعاملی پایتون را بهبود بخشد

5. ورود قابلیت اتوماسیون رفع اشکال اسکن کد GitHub به نسخه عمومی بتا:
GitHub نسخه عمومی بتای قابلیت اتوماسیون رفع اشکال اسکن کد خود را معرفی کرده است که از GitHub Copilot و CodeQL بهره می‌برد. این ابزار هدف دارد بیش از دو سوم آسیب‌پذیری‌های یافت شده در طول اسکن کد را با حداقل ویرایش توسط توسعه‌دهندگان برطرف کند

6. رشد استفاده از پایتون در Snowflake:
داده‌های Snowflake نشان می‌دهد که استفاده از پایتون در محیط Snowpark آن ۵۷۱٪ نسبت به سال گذشته افزایش یافته است. این افزایش نشان‌دهنده نقش اساسی پایتون در پروژه‌های هوش مصنوعی و یادگیری ماشین است. این رشد برجسته تأکید می‌کند که پایتون چقدر در انجام کارهای پیچیده مبتنی بر داده‌ها محبوب و کارآمد اس

7. معرفی تکمیل کد با استفاده از AI محلی توسط JetBrains:
JetBrains نسخه 2024.1 از IDE‌های خود را منتشر کرده که دارای قابلیت تکمیل خودکار خطوط کد با استفاده از مدل‌های AI محلی است. این به‌روزرسانی تضمین می‌کند که پیشنهادهای کد به طور کامل بر روی دستگاه کاربر پردازش می‌شوند و تأخیر کاهش یافته و تجربه کدنویسی بهبود یافته است

این خبرها نشان‌دهنده پویایی و رشد روزافزون دنیای پایتون و تأثیر گسترده آن در جامعه تکنولوژی است. منتظر اخبار بیشتر باشید! 📰


#پایتون #اخبار_پایتون #توسعه_نرم‌افزار #هوش_مصنوعی #PyConUS #PyPI #GitHub
👍3
البته مال دیروزه 😅
👍1
Channel photo updated
عوزش کردم
👍41
واکنش اونایی که الان بیدارند
📚 آموزش پخش صدا با استفاده از کتابخانه داخلی winsound در پایتون (پارت 2/2) 🎵

سلام دوستان ! در قسمت قبلی آموزش، با نحوه پخش فایل‌های WAV آشنا شدیم. حالا در قسمت دوم، به بررسی نحوه ایجاد بوق سیستم با استفاده از کتابخانه winsound و نکات حرفه‌ای بیشتری خواهیم پرداخت. 🎓🔊

ایجاد بوق سیستم:
با استفاده از تابع winsound.Beep می‌توانید یک بوق با فرکانس و مدت زمان مشخص ایجاد کنید. این تابع دو آرگومان می‌گیرد:
1. فرکانس بوق (به هرتز)
2. مدت زمان بوق (به میلی‌ثانیه)

نوشتن کد:

import winsound

# ایجاد بوق سیستم
def beep_sound(frequency, duration):
"""
ایجاد بوق سیستم با فرکانس و مدت زمان مشخص

پارامترها:
frequency (int): فرکانس بوق به هرتز (Hz)
duration (int): مدت زمان بوق به میلی‌ثانیه (ms)
"""
try:
winsound.Beep(frequency, duration)
print(f"بوق با فرکانس {frequency} هرتز و مدت زمان {duration} میلی‌ثانیه ایجاد شد.")
except RuntimeError as e:
print(f"خطا در ایجاد بوق: {e}")

# فرکانس و مدت زمان بوق
beep_frequency = 1000 # فرکانس به هرتز
beep_duration = 1000 # مدت زمان به میلی‌ثانیه

# ایجاد بوق سیستم
beep_sound(beep_frequency, beep_duration)

توضیحات کد:

- تابع beep_sound:
- این تابع یک بوق با فرکانس و مدت زمان مشخص ایجاد می‌کند.
- از winsound.Beep برای ایجاد بوق استفاده می‌شود.
- frequency فرکانس بوق به هرتز و duration مدت زمان بوق به میلی‌ثانیه است.


    def beep_sound(frequency, duration):
"""
ایجاد بوق سیستم با فرکانس و مدت زمان مشخص

پارامترها:
frequency (int): فرکانس بوق به هرتز (Hz)
duration (int): مدت زمان بوق به میلی‌ثانیه (ms)
"""
try:
winsound.Beep(frequency, duration)
print(f"بوق با فرکانس {frequency} هرتز و مدت زمان {duration} میلی‌ثانیه ایجاد شد.")
except RuntimeError as e:
print(f"خطا در ایجاد بوق: {e}")

مثال‌های بهتر:

- مثال 1: ایجاد بوق هشدار با فرکانس بالا

    beep_sound(2000, 500)  # بوق با فرکانس 2000 هرتز و مدت زمان 500 میلی‌ثانیه

- مثال 2: ایجاد بوق با فرکانس پایین و مدت زمان طولانی

    beep_sound(500, 2000)  # بوق با فرکانس 500 هرتز و مدت زمان 2000 میلی‌ثانیه

نکات

- فرکانس‌های معتبر: فرکانس بوق باید بین 37 تا 32767 هرتز باشد.
- مدت زمان بوق: مدت زمان بوق به میلی‌ثانیه تنظیم می‌شود و می‌تواند هر مقدار مثبتی باشد.
- مدیریت خطا: همیشه از مدیریت خطا استفاده کنید تا مشکلات احتمالی را به درستی مدیریت کنید.

جمع‌بندی:

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

[اموزشای بیشتر توی کانال ما]

#پایتون #آموزش_پایتون #پخش_صدا #winsound #توسعه_نرم_افزار #برنامه_نویسی_پیشرفته

ا
👍4
اینهمه همستر انگشت کردین این بیلاخ زیر پستای منو هم انگشت کنید دیگه
👍5🖕3
💡 آموزش کتابخانه SQLAlchemy برای کار با پایگاه داده در پایتون 🐍💾

SQLAlchemy چیست؟ 🤔
SQLAlchemy یک کتابخانه پایتون است که امکانات فراوانی برای کار با پایگاه داده‌ها فراهم می‌کند. این کتابخانه به شما امکان می‌دهد تا به سادگی با پایگاه داده‌های مختلف مانند SQLite، MySQL، PostgreSQL و Oracle ارتباط برقرار کنید و عملیات‌های مختلفی مانند ایجاد جداول، درج، ویرایش و حذف داده‌ها را انجام دهید.

نصب SQLAlchemy 📥
برای نصب SQLAlchemy می‌توانید از pip استفاده کنید:
pip install sqlalchemy

قابلیت‌های کلیدی SQLAlchemy 🌟

1. تعریف مدل‌ها با ORM (Object-Relational Mapping) 🗃️
SQLAlchemy به شما امکان می‌دهد تا مدل‌های پایگاه داده خود را با استفاده از کلاس‌های پایتون تعریف کنید.

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

3. انجام عملیات‌های CRUD (Create, Read, Update, Delete) 📝
SQLAlchemy امکان انجام عملیات‌های مختلف روی داده‌ها را به صورت ساده و روان فراهم می‌کند.

4. انجام کوئری‌های پیچیده 🔄
شما می‌توانید کوئری‌های پیچیده SQL را با استفاده از SQLAlchemy به صورت ساده‌تری بنویسید و اجرا کنید.

مثال‌های کاربردی با SQLAlchemy 📚

ایجاد یک جدول و درج داده 📝

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

from sqlalchemy import create_engine, Column, Integer, String, Sequence
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

# ایجاد موتور ارتباطی با پایگاه داده SQLite
engine = create_engine('sqlite:///example.db', echo=True)

# تعریف یک کلاس پایه برای مدل‌ها
Base = declarative_base()

# تعریف یک مدل (جدول)
class User(Base):
__tablename__ = 'users'
id = Column(Integer, Sequence('user_id_seq'), primary_key=True)
name = Column(String(50))
age = Column(Integer)

# ایجاد جداول در پایگاه داده
Base.metadata.create_all(engine)

# ایجاد یک جلسه برای انجام عملیات‌های CRUD
Session = sessionmaker(bind=engine)
session = Session()

# درج داده در جدول
new_user = User(name='Ali', age=30)
session.add(new_user)
session.commit()

در این مثال:
- ابتدا موتور ارتباطی با پایگاه داده SQLite ایجاد می‌شود.
- سپس یک کلاس مدل به نام User تعریف می‌شود که نشان‌دهنده یک جدول با ستون‌های id، name و age است.
- جداول بر اساس مدل‌ها در پایگاه داده ایجاد می‌شوند.
- یک جلسه ایجاد شده و داده جدیدی در جدول درج می‌شود.

انجام یک کوئری برای بازیابی داده‌ها 📋

توضیح: در این مثال، ما یک کوئری ساده برای بازیابی تمام کاربران از جدول users انجام می‌دهیم.

# بازیابی تمام کاربران از جدول
users = session.query(User).all()

# نمایش کاربران
for user in users:
print(f'ID: {user.id}, Name: {user.name}, Age: {user.age}')

در این مثال:
- از جلسه استفاده می‌شود تا تمام کاربران از جدول users بازیابی شوند.
- سپس اطلاعات کاربران نمایش داده می‌شود.

منابع یادگیری SQLAlchemy 📚
- مستندات رسمی SQLAlchemy: بهترین منبع برای شروع یادگیری و استفاده از SQLAlchemy.
- کتاب‌ها و دوره‌های آنلاین: بسیاری از کتاب‌ها و دوره‌های آنلاین موجود هستند که به شما کمک می‌کنند تا مهارت‌های خود را در استفاده از SQLAlchemy بهبود بخشید.

امیدوارم این معرفی برای شما مفید باشد! 😊

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

#برنامه‌نویسی #پایتون #SQLAlchemy #پایگاه‌داده #ORM #تلگرام_آموزشی
👍2