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

سلام دوستان! امروز می‌خوایم یاد بگیریم چطور یک سیستم مکان‌یابی ساده (GPS) رو بدون استفاده از هیچ ماژول خارجی در پایتون پیاده‌سازی کنیم. این آموزش برای کسانی که می‌خوان اصول پایه مکان‌یابی رو بفهمند بسیار مناسب هست.

1. تنظیمات اولیه 🛠️
ابتدا نیاز داریم که کتابخانه‌های ضروری پایتون رو وارد کنیم.

import math

2. ایجاد توابع مورد نیاز 📋
برای پیاده‌سازی سیستم GPS، نیاز به برخی توابع پایه‌ای داریم:

محاسبه فاصله بین دو نقطه جغرافیایی با استفاده از فرمول هاروسین
def haversine(lat1, lon1, lat2, lon2):
R = 6371 # شعاع زمین به کیلومتر
dlat = math.radians(lat2 - lat1)
dlon = math.radians(lon2 - lon1)
a = math.sin(dlat / 2) ** 2 + math.cos(math.radians(lat1)) * math.cos(math.radians(lat2)) * math.sin(dlon / 2) ** 2
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))
distance = R * c
return distance

تعیین موقعیت جغرافیایی ی **📍
فرض کنیم چند موقعیت جغرافیایی داریم و می‌خواهیم فاصله بین آن‌ها را محاسبه کنیم.

locations = {
"location1": (35.6892, 51.3890), # تهران
"location2": (34.0522, -118.2437), # لس‌آنجلس
"location3": (48.8566, 2.3522) # پاریس
}

def calculate_distances(locations):
distances = {}
keys = list(locations.keys())
for i in range(len(keys)):
for j in range(i + 1, len(keys)):
loc1, loc2 = keys[i], keys[j]
lat1, lon1 = locations[loc1]
lat2, lon2 = locations[loc2]
distance = haversine(lat1, lon1, lat2, lon2)
distances[(loc1, loc2)] = distance
return distances

distances = calculate_distances(locations)
for loc_pair, dist in distances.items():
print(f"فاصله بین {loc_pair[0]} و {loc_pair[1]}: {dist:.2f} کیلومتر")

🔻بیا اینجا تا بیشتر یاد بگیری🔻

#GPS #مکان_یابی #آموزش_پایتون #بدون_ماژول #کدنویسی #پایتون
📚 آموزش ساخت رابط‌های کاربری با XML در اپلیکیشن پایتون 📚

سلام دوستان! امروز می‌خوایم یاد بگیریم چطور یک رابط کاربری (UI) زیبا با استفاده از XML در اپلیکیشن پایتون بسازیم. این آموزش برای کسانی که می‌خوان اصول پایه ساخت رابط‌های کاربری رو بفهمند بسیار مناسب هست.

1. تنظیمات اولیه 🛠️
ابتدا نیاز داریم که کتابخانه‌های ضروری پایتون رو وارد کنیم. برای این کار از کتابخانه Kivy استفاده می‌کنیم. Kivy یک فریمورک پایتون برای ساخت رابط‌های کاربری چند لمسی است.

نصب Kivy
برای نصب Kivy از دستور زیر استفاده کنید:
pip install kivy

2. ایجاد فایل XML برای تعریف رابط کاربری 📋
یک فایل با نام myapp.kv ایجاد کنید و کد زیر را در آن قرار دهید:

BoxLayout:
orientation: 'vertical'

Label:
text: 'سلام دنیا!'
font_size: 32

Button:
text: 'کلیک کن'
font_size: 24
on_press: app.button_pressed()

3. ایجاد فایل پایتون برای اتصال به رابط کاربری 📈
یک فایل پایتون با نام main.py ایجاد کنید و کد زیر را در آن قرار دهید:

import kivy
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout

class MyBoxLayout(BoxLayout):
pass

class MyApp(App):
def build(self):
return MyBoxLayout()

def button_pressed(self):
print("دکمه کلیک شد!")

if __name__ == '__main__':
MyApp().run()

4. اجرای برنامه 📊
برای اجرای برنامه، دستور زیر را در ترمینال اجرا کنید:

python main.py

5. مزایا و کاربردهای استفاده از XML برای رابط کاربری

مزایا:
1. جدا سازی کد رابط کاربری از منطق برنامه: این کار باعث می‌شود که کد برنامه خواناتر و نگهداری آن آسان‌تر شود.
2. سادگی و سرعت: XML یک زبان نشانه‌گذاری ساده است که به سرعت می‌توان رابط‌های کاربری پیچیده را با آن ساخت.
3. پشتیبانی از چند پلتفرم: Kivy از چند پلتفرم مختلف پشتیبانی می‌کند و رابط کاربری ساخته شده با آن در سیستم‌عامل‌های مختلف قابل اجرا است.

کاربردها:
1. ساخت اپلیکیشن‌های موبایل: Kivy برای ساخت اپلیکیشن‌های موبایل بسیار مناسب است.
2. ساخت اپلیکیشن‌های دسکتاپ: این فریمورک همچنین برای ساخت اپلیکیشن‌های دسکتاپ با رابط کاربری زیبا و کارآمد استفاده می‌شود.
3. اپلیکیشن‌های چند لمسی: Kivy به طور خاص برای ساخت اپلیکیشن‌های چند لمسی طراحی شده است و در دستگاه‌هایی که از این قابلیت پشتیبانی می‌کنند، عملکرد بسیار خوبی دارد.

🔻بیا اینجا تا بیشتر یاد بگیری🔻


#رابط_کاربری #XML #Kivy #آموزش_پایتون #کدنویسی #پایتون
📚 آموزش الگوریتمی برای حل مسائل پیچیده ریاضی در پایتون 📚

سلام دوستان! امروز می‌خوایم یاد بگیریم چطور یک الگوریتم برای حل مسائل پیچیده ریاضی رو در پایتون پیاده‌سازی کنیم. این آموزش برای کسانی که می‌خوان اصول پایه حل مسائل ریاضی با استفاده از الگوریتم‌ها رو بفهمند بسیار مناسب هست.

1. تنظیمات اولیه 🛠️
ابتدا نیاز داریم که کتابخانه‌های ضروری پایتون رو وارد کنیم. برای این کار از کتابخانه‌ی math و numpy استفاده می‌کنیم.

نصب numpy
برای نصب numpy از دستور زیر استفاده کنید:
pip install numpy

2. ایجاد توابع مورد نیاز 📋
برای حل مسائل پیچیده ریاضی، نیاز به برخی توابع پایه‌ای داریم. در اینجا الگوریتمی برای حل معادلات خطی با استفاده از روش گاوس-ژردن (Gaussian Elimination) رو پیاده‌سازی می‌کنیم.

حل معادلات خطی با استفاده از روش گاوس-ژردن
import numpy as np

def gaussian_elimination(A, b):
n = len(b)
M = A

for i in range(n):
M[i] = M[i] / M[i, i]
b[i] = b[i] / M[i, i]
for j in range(i + 1, n):
ratio = M[j, i]
M[j] = M[j] - ratio * M[i]
b[j] = b[j] - ratio * b[i]

x = np.zeros(n)
for i in range(n - 1, -1, -1):
x[i] = b[i] - np.dot(M[i, i + 1:], x[i + 1:])
return x

3. تست الگوریتم 📈
حالا که الگوریتم رو پیاده‌سازی کردیم، می‌تونیم اون رو تست کنیم.

تعریف ماتریس A و بردار b
A = np.array([[2, 1, -1],
[-3, -1, 2],
[-2, 1, 2]], dtype=float)

b = np.array([8, -11, -3], dtype=float)

solution = gaussian_elimination(A, b)
print("راه‌حل معادلات:")
print(solution)

4. مزایا و کاربردهای استفاده از الگوریتم گاوس-ژردن

مزایا:
1. دقت بالا: روش گاوس-ژردن دقت بالایی در حل معادلات خطی دارد.
2. سرعت: این الگوریتم نسبت به روش‌های دیگر برای حل سیستم‌های خطی سریع‌تر عمل می‌کند.
3. سادگی پیاده‌سازی: الگوریتم گاوس-ژردن ساده و قابل فهم است و پیاده‌سازی آن پیچیدگی زیادی ندارد.

کاربردها:
1. حل مسائل فیزیک و مهندسی: این الگوریتم در حل مسائل مختلف فیزیک و مهندسی که به حل سیستم‌های خطی نیاز دارند، استفاده می‌شود.
2. بهینه‌سازی: در بسیاری از مسائل بهینه‌سازی، حل معادلات خطی ضروری است و این الگوریتم کاربرد دارد.
3. مدل‌سازی مالی: در تحلیل‌های مالی و اقتصادی برای مدل‌سازی و پیش‌بینی از این الگوریتم استفاده می‌شود.

🔻بیا اینجا تا بیشتر یاد بگیری🔻


#حل_مسائل_ریاضی #گاوس_ژردن #آموزش_پایتون #کدنویسی #پایتون #الگوریتم
📚 آموزش ساخت یک الگوریتم یادگیری ماشینی پیچیده با PyTorch در پایتون 📚

سلام دوستان! امروز می‌خوایم یاد بگیریم چطور یک الگوریتم یادگیری ماشینی پیچیده رو با استفاده از کتابخانه PyTorch در پایتون پیاده‌سازی کنیم. این آموزش برای کسانی که می‌خوان اصول پایه و پیشرفته یادگیری ماشینی رو بفهمند بسیار مناسب هست.

1. تنظیمات اولیه 🛠️
ابتدا نیاز داریم که کتابخانه‌های ضروری پایتون و PyTorch رو وارد کنیم.

نصب PyTorch
برای نصب PyTorch از دستور زیر استفاده کنید:
pip install torch torchvision

2. آماده‌سازی داده‌ها 📋
در این آموزش از مجموعه داده‌های MNIST استفاده می‌کنیم که شامل تصاویر دست‌نویس اعداد 0 تا 9 است.

import torch
import torchvision
import torchvision.transforms as transforms

# تعریف تبدیل‌ها
transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])

# دانلود و بارگذاری مجموعه داده‌های آموزشی و تست
trainset = torchvision.datasets.MNIST(root='./data', train=True, download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=32, shuffle=True)

testset = torchvision.datasets.MNIST(root='./data', train=False, download=True, transform=transform)
testloader = torch.utils.data.DataLoader(testset, batch_size=32, shuffle=False)

3. تعریف شبکه عصبی پیچیده 📈
در اینجا یک شبکه عصبی پیچیده شامل چندین لایه کانولوشن (CNN) و لایه‌های کاملاً متصل (Fully Connected) تعریف می‌کنیم.

import torch.nn as nn
import torch.nn.functional as F

class ComplexCNN(nn.Module):
def __init__(self):
super(ComplexCNN, self).__init__()
self.conv1 = nn.Conv2d(1, 32, kernel_size=3, stride=1, padding=1)
self.conv2 = nn.Conv2d(32, 64, kernel_size=3, stride=1, padding=1)
self.pool = nn.MaxPool2d(kernel_size=2, stride=2, padding=0)
self.fc1 = nn.Linear(64 * 7 * 7, 128)
self.fc2 = nn.Linear(128, 10)

def forward(self, x):
x = self.pool(F.relu(self.conv1(x)))
x = self.pool(F.relu(self.conv2(x)))
x = x.view(-1, 64 * 7 * 7)
x = F.relu(self.fc1(x))
x = self.fc2(x)
return x

net = ComplexCNN()

4. تعریف تابع هزینه و بهینه‌ساز 📉
ما از تابع هزینه CrossEntropy و بهینه‌ساز Adam استفاده می‌کنیم.

import torch.optim as optim

criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(net.parameters(), lr=0.001)

5. آموزش شبکه عصبی 📊
در اینجا شبکه عصبی رو برای چندین ایپاک (epoch) آموزش می‌دهیم.

for epoch in range(5):  # تعداد ایپاک‌ها

running_loss = 0.0
for i, data in enumerate(trainloader, 0):
inputs, labels = data

optimizer.zero_grad()

outputs = net(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()

running_loss += loss.item()
if i % 100 == 99:
print(f'[Epoch {epoch + 1}, Batch {i + 1}] loss: {running_loss / 100:.3f}')
running_loss = 0.0

print('آموزش تمام شد')

6. ارزیابی مدل 📏
حالا که مدل آموزش دیده، باید آن را با داده‌های تست ارزیابی کنیم.

correct = 0
total = 0
with torch.no_grad():
for data in testloader:
images, labels = data
outputs = net(images)
_, predicted = torch.max(outputs.data, 1)
total += labels.size(0)
correct += (predicted == labels).sum().item()

print(f'دقت مدل بر روی داده‌های تست: {100 * correct / total:.2f}%')

7. مزایا و کاربردهای استفاده از PyTorch برای یادگیری ماشینی

مزایا:
1. سهولت استفاده: PyTorch دارای API ساده و قابل فهم است که یادگیری و استفاده از آن را آسان می‌کند.
2. انعطاف‌پذیری: PyTorch به کاربر اجازه می‌دهد که به راحتی مدل‌های پیچیده و سفارشی را پیاده‌سازی کند.
3. پشتیبانی از GPU: PyTorch از پردازشگر‌های گرافیکی (GPU) برای تسریع محاسبات استفاده می‌کند.

کاربردها:
1. پردازش تصویر: PyTorch به طور گسترده در مسائل پردازش تصویر و بینایی ماشین استفاده می‌شود.
2. پردازش زبان طبیعی: برای تحلیل و مدل‌سازی متون و زبان طبیعی، PyTorch بسیار کارآمد است.
3. تحقیقات علمی: PyTorch در تحقیقات علمی و آکادمیک به دلیل انعطاف‌پذیری بالا و پشتیبانی از محاسبات پیچیده، بسیار محبوب است.

🔻بیا اینجا تا بیشتر یاد بگیری🔻


#یادگیری_ماشینی #PyTorch #آموزش_پایتون #شبکه_عصبی #کدنویسی #پایتون #الگوریتم_پیچیده
📚 دانستنی مفید: یادگیری ماشینی و شبکه‌های عصبی 📚

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

1. یادگیری ماشینی چیست؟ 🤖
یادگیری ماشینی (Machine Learning) شاخه‌ای از هوش مصنوعی است که به کامپیوترها امکان می‌دهد با استفاده از داده‌ها، الگوها را شناسایی کنند و بدون نیاز به برنامه‌ریزی صریح، بهبود یابند. به عبارت دیگر، کامپیوترها با استفاده از الگوریتم‌ها و مدل‌ها، از داده‌ها یاد می‌گیرند و می‌توانند تصمیم‌گیری کنند.

2. شبکه‌های عصبی چیست؟ 🧠
شبکه‌های عصبی مصنوعی (Artificial Neural Networks) مدل‌هایی هستند که الهام گرفته از ساختار و عملکرد مغز انسان هستند. این شبکه‌ها از لایه‌های مختلفی از نورون‌ها تشکیل شده‌اند که به هم متصل هستند و اطلاعات را پردازش می‌کنند. شبکه‌های عصبی به طور گسترده در مسائل پیچیده مانند تشخیص تصویر، پردازش زبان طبیعی و بازی‌های رایانه‌ای استفاده می‌شوند.

3. کاربردهای یادگیری ماشینی و شبکه‌های عصبی 🌐

1. تشخیص تصویر 📸
یادگیری ماشینی و شبکه‌های عصبی در تشخیص و طبقه‌بندی تصاویر بسیار موفق عمل کرده‌اند. این فناوری‌ها در سیستم‌های تشخیص چهره، خودروهای خودران و تحلیل تصاویر پزشکی استفاده می‌شوند.

2. پردازش زبان طبیعی 🗣️
در پردازش زبان طبیعی (NLP)، یادگیری ماشینی و شبکه‌های عصبی برای ترجمه زبان، تشخیص گفتار، تولید متن و تحلیل احساسات استفاده می‌شوند.

3. بازی‌های رایانه‌ای 🎮
یادگیری ماشینی و شبکه‌های عصبی در توسعه بازی‌های رایانه‌ای برای ایجاد شخصیت‌های هوشمند و بهبود تجربه کاربری استفاده می‌شوند.

🔻بیا اینجا تا بیشتر یاد بگیری🔻

#یادگیری_ماشینی #شبکه_عصبی #هوش_مصنوعی #آموزش_پایتون #تکنولوژی #دانستنی
👍2
📚 آموزش ساخت و تلفیق سیستم AI در برنامه پایتون 📚

سلام دوستان! امروز می‌خوایم یک سیستم هوش مصنوعی (AI) رو با استفاده از PyTorch بسازیم و سپس اون رو در یک برنامه پایتون تلفیق کنیم. این آموزش برای کسانی که می‌خوان اصول پیاده‌سازی و استفاده از هوش مصنوعی در برنامه‌های کاربردی رو بفهمند بسیار مناسب هست.

1. تنظیمات اولیه 🛠️

نصب PyTorch
برای نصب PyTorch از دستور زیر استفاده کنید:
pip install torch torchvision

2. آماده‌سازی داده‌ها 📋

در این آموزش از مجموعه داده‌های MNIST استفاده می‌کنیم که شامل تصاویر دست‌نویس اعداد 0 تا 9 است.

import torch
import torchvision
import torchvision.transforms as transforms

# تعریف تبدیل‌ها
transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])

# دانلود و بارگذاری مجموعه داده‌های آموزشی و تست
trainset = torchvision.datasets.MNIST(root='./data', train=True, download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=32, shuffle=True)

testset = torchvision.datasets.MNIST(root='./data', train=False, download=True, transform=transform)
testloader = torch.utils.data.DataLoader(testset, batch_size=32, shuffle=False)

3. تعریف مدل AI 📈

یک شبکه عصبی پیچیده برای تشخیص اعداد دست‌نویس تعریف می‌کنیم.

import torch.nn as nn
import torch.nn.functional as F

class ComplexNN(nn.Module):
def __init__(self):
super(ComplexNN, self).__init__()
self.conv1 = nn.Conv2d(1, 32, kernel_size=3, stride=1, padding=1)
self.conv2 = nn.Conv2d(32, 64, kernel_size=3, stride=1, padding=1)
self.pool = nn.MaxPool2d(kernel_size=2, stride=2, padding=0)
self.fc1 = nn.Linear(64 * 7 * 7, 128)
self.fc2 = nn.Linear(128, 10)

def forward(self, x):
x = self.pool(F.relu(self.conv1(x)))
x = self.pool(F.relu(self.conv2(x)))
x = x.view(-1, 64 * 7 * 7)
x = F.relu(self.fc1(x))
x = self.fc2(x)
return x

net = ComplexNN()

4. تعریف تابع هزینه و بهینه‌ساز 📉

ما از تابع هزینه CrossEntropy و بهینه‌ساز Adam استفاده می‌کنیم.

import torch.optim as optim

criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(net.parameters(), lr=0.001)

5. آموزش مدل AI 📊

شبکه عصبی رو برای چندین ایپاک (epoch) آموزش می‌دهیم.

for epoch in range(5):  # تعداد ایپاک‌ها

running_loss = 0.0
for i, data in enumerate(trainloader, 0):
inputs, labels = data

optimizer.zero_grad()

outputs = net(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()

running_loss += loss.item()
if i % 100 == 99:
print(f'[Epoch {epoch + 1}, Batch {i + 1}] loss: {running_loss / 100:.3f}')
running_loss = 0.0

print('آموزش تمام شد')

6. ذخیره مدل آموزش‌دیده شده 💾

مدل آموزش‌دیده شده رو ذخیره می‌کنیم تا در برنامه کاربردی از آن استفاده کنیم.

torch.save(net.state_dict(), 'model.pth')

7. بارگذاری مدل و استفاده از آن در برنامه کاربردی 📱

حالا یک برنامه پایتون جدید ایجاد می‌کنیم که شامل یک رابط کاربری ساده برای استفاده از مدل AI است. این برنامه با استفاده از کتابخانه tkinter یک رابط کاربری گرافیکی (GUI) ایجاد می‌کند.

ساخت رابط کاربری با tkinter
import tkinter as tk
from tkinter import filedialog
from PIL import Image, ImageTk, ImageOps
import torch
import torchvision.transforms as transforms
import numpy as np

# تعریف مدل و بارگذاری وزن‌های آموزش‌دیده شده
class ComplexNN(nn.Module):
init__init__(self):
super(ComplexNNinit__init__()
self.conv1 = nn.Conv2d(1, 32, kernel_size=3, stride=1, padding=1)
self.conv2 = nn.Conv2d(32, 64, kernel_size=3, stride=1, padding=1)
self.pool = nn.MaxPool2d(kernel_size=2, stride=2, padding=0)
self.fc1 = nn.Linear(64 * 7 * 7, 128)
self.fc2 = nn.Linear(128, 10)
def forward(self, x):
x = self.pool(F.relu(self.conv1(x)))
x = self.pool(F.relu(self.conv2(x)))
x = x.view(-1, 64 * 7 * 7)
x = F.relu(self.fc1(x))
x = self.fc2(x)
return x

net = ComplexNN()
net.load_state_dict(torch.load('model.pth'))
net.eval()

# تعریف تبدیل‌ها
transform = transforms.Compose([
transforms.Grayscale(num_output_channels=1),
transforms.Resize((28, 28)),
transforms.ToTensor(),
transforms.Normalize((0.5,), (0.5,))
])

# ساخت برنامه tkinter
class AIApp:
def init(self, root):
self.root = root
self.root.title("AI Number Recognizer")

self.label = tk.Label(root, text="Load an image to recognize the number")
self.label.pack()

self.button = tk.Button(root, text="Load Image", command=self.load_image)
self.button.pack()

self.canvas = tk.Canvas(root, width=200, height=200)
self.canvas.pack()

self.result_label = tk.Label(root, text="")
self.result_label.pack()

def load_image(self):
file_path = filedialog.askopenfilename()
if file_path:
image = Image.open(file_path)
self.show_image(image)
number = self.predict_number(image)
self.result_label.config(text=f"Predicted Number: {number}")

def show_image(self, image):
image = ImageOps.fit(image, (200, 200), Image.ANTIALIAS)
photo = ImageTk.PhotoImage(image)
self.canvas.create_image(0, 0, anchor=tk.NW, image=photo)
self.canvas.image = photo

def predict_number(self, image):
image = transform(image).unsqueeze(0)
output = net(image)
_, predicted = torch.max(output.data, 1)
return predicted.item()

root = tk.Tk()
app = AIApp(root)
root.mainloop()

8. توضیحات تکمیلی 📚

این برنامه یک شبکه عصبی پیچیده برای تشخیص اعداد دست‌نویس ساخته شده با PyTorch را در یک رابط کاربری ساده با استفاده از tkinter تلفیق می‌کند. کاربران می‌توانند یک تصویر دست‌نویس از عددی را بارگذاری کرده و برنامه به طور خودکار عدد موجود در تصویر را تشخیص می‌دهد.

مزایا و کاربردهای استفاده از این سیستم AI

1. بهبود دقت: استفاده از شبکه عصبی پیچیده دقت بالایی در تشخیص اعداد دست‌نویس دارد.
2. انعطاف‌پذیری: می‌توان مدل را برای تشخیص اشیاء و الگوهای دیگر آموزش داد.
3. سهولت استفاده: رابط کاربری ساده به کاربران امکان می‌دهد به راحتی از مدل استفاده کنند

🔻بیا اینجا تا بیشتر یاد بگیری🔻


#یادگیری_ماشینی #شبکه_عصبی #هوش_مصنوعی #آموزش_پایتون #PyTorch #AI #کدنویسی #پایتون #الگوریتم
👍2
🌟 آموزش کامل ماژول Dash در پایتون 🌟

📊 Dash چیست؟
Dash یک فریمورک متن‌باز است که توسط Plotly توسعه داده شده و برای ساختن داشبوردهای وب تعاملی با استفاده از پایتون طراحی شده است. این فریمورک به شما اجازه می‌دهد تا داده‌های خود را به صورت بصری و تعاملی به نمایش بگذارید. 🚀

🔧 نصب Dash
برای نصب Dash کافیست از pip استفاده کنید:
pip install dash

🛠️ ساختار کلی یک اپلیکیشن Dash
یک اپلیکیشن Dash از دو بخش اصلی تشکیل شده است:
1. Layout: برای تعیین چیدمان و محتوای اپلیکیشن
2. Callbacks: برای اضافه کردن تعاملات و به‌روزرسانی‌های پویا

📄 کد نمونه ساده
در این مثال، یک اپلیکیشن Dash ساده که شامل یک ورودی و یک متن خروجی است را مشاهده می‌کنید:

import dash
from dash import html, dcc
from dash.dependencies import Input, Output

# ایجاد اپلیکیشن Dash
app = dash.Dash(__name__)

# تعیین چیدمان اپلیکیشن
app.layout = html.Div([
html.H1("عنوان داشبورد"),
dcc.Input(id='my-input', value='متن اولیه', type='text'),
html.Div(id='my-output')
])

# تعریف callback برای به‌روزرسانی خروجی
@app.callback(
Output('my-output', 'children'),
[Input('my-input', 'value')]
)
def update_output(input_value):
return f'شما وارد کردید: {input_value}'

# اجرای سرور
if __name__ == '__main__':
app.run_server(debug=True)

🖼️ نمایش داده‌ها و گراف‌ها
Dash به راحتی امکان نمایش داده‌ها و گراف‌ها را با استفاده از کتابخانه‌هایی مثل Plotly فراهم می‌کند. برای نمایش یک نمودار خطی ساده، می‌توانید از کد زیر استفاده کنید:

import dash
from dash import dcc, html
import plotly.express as px
import pandas as pd

# داده‌های نمونه
df = pd.DataFrame({
"X": [1, 2, 3, 4, 5],
"Y": [10, 11, 12, 13, 14]
})

# ایجاد اپلیکیشن Dash
app = dash.Dash(__name__)

# تعیین چیدمان اپلیکیشن
app.layout = html.Div([
html.H1("نمودار خطی با Plotly"),
dcc.Graph(
figure=px.line(df, x="X", y="Y", title="نمودار خطی")
)
])

# اجرای سرور
if __name__ == '__main__':
app.run_server(debug=True)

💡 کاربردهای پیشرفته
- ایجاد داشبوردهای تعاملی: با استفاده از Input و Output می‌توانید تعاملات پیچیده را بین کاربران و داشبورد خود پیاده‌سازی کنید.
- استفاده از انواع چارت‌ها: Dash از انواع مختلفی از نمودارها و چارت‌ها پشتیبانی می‌کند که می‌توانید از آن‌ها برای نمایش داده‌های خود استفاده کنید.
- سفارشی‌سازی ظاهر: با استفاده از CSS می‌توانید ظاهر داشبورد خود را به دلخواه تغییر دهید.

🚀 شروع کنید و کشف کنید!
حالا که با مبانی Dash آشنا شدید، زمان آن رسیده که اپلیکیشن‌های وب خود را بسازید و داده‌های خود را به صورت تعاملی نمایش دهید. موفق باشید! 🌟

🔻بیا اینجا آموزش ببینی نه اینکه گی بشی🔻

#Python #Dash #DataVisualization #WebDevelopment #Plotly
👍3
🌟 آموزش ساخت داشبورد پیشرفته با ماژول Dash 🌟

🚀 پروژه پیشرفته: داشبورد تحلیل داده‌های فروش 🚀

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

🔧 نصب بسته‌های مورد نیاز
برای شروع، مطمئن شوید که بسته‌های زیر را نصب کرده‌اید:
pip install dash pandas plotly

📊 ساختار پروژه
در این پروژه، داشبورد شامل موارد زیر است:
1. نمودار فروش ماهانه
2. نمودار مقایسه‌ای فروش بر اساس منطقه
3. فیلتر برای انتخاب منطقه و نمایش داده‌های مربوطه

📝 کد پروژه پیشرفته
import dash
from dash import dcc, html
from dash.dependencies import Input, Output
import pandas as pd
import plotly.express as px

# داده‌های نمونه
df = pd.DataFrame({
'ماه': ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مه'],
'فروش': [200, 250, 300, 275, 350],
'منطقه': ['شمال', 'جنوب', 'شرق', 'غرب', 'شمال']
})

# ایجاد اپلیکیشن Dash
app = dash.Dash(__name__)

# تعیین چیدمان اپلیکیشن
app.layout = html.Div([
html.H1("داشبورد تحلیل داده‌های فروش"),

html.Div([
dcc.Dropdown(
id='region-dropdown',
options=[{'label': region, 'value': region} for region in df['منطقه'].unique()],
value='شمال'
)
], style={'width': '50%', 'padding': '10px'}),

dcc.Graph(id='monthly-sales-graph'),
dcc.Graph(id='region-sales-comparison')
])

# Callback برای به‌روزرسانی نمودار فروش ماهانه
@app.callback(
Output('monthly-sales-graph', 'figure'),
Input('region-dropdown', 'value')
)
def update_monthly_sales(selected_region):
filtered_df = df[df['منطقه'] == selected_region]
fig = px.bar(filtered_df, x='ماه', y='فروش', title=f'فروش ماهانه در منطقه {selected_region}')
return fig

# Callback برای به‌روزرسانی نمودار مقایسه‌ای فروش بر اساس منطقه
@app.callback(
Output('region-sales-comparison', 'figure'),
Input('region-dropdown', 'value')
)
def update_region_comparison(selected_region):
fig = px.bar(df, x='منطقه', y='فروش', title='مقایسه فروش بر اساس منطقه')
return fig

# اجرای سرور
if __name__ == '__main__':
app.run_server(debug=True)

🔍 توضیحات کد
- Dropdown: برای انتخاب منطقه از میان گزینه‌های موجود.
- Graphs: دو نمودار:
- نمودار فروش ماهانه: نمایش فروش ماهانه برای منطقه انتخابی.
- نمودار مقایسه‌ای: مقایسه فروش بر اساس مناطق مختلف.
- Callbacks: به‌روزرسانی نمودارها بر اساس انتخاب کاربر از Dropdown.

💡 نکات پیشرفته
- استفاده از داده‌های واقعی: شما می‌توانید به جای داده‌های نمونه از دیتابیس‌ها یا فایل‌های CSV استفاده کنید.
- سفارشی‌سازی بیشتر: با استفاده از CSS و ویژگی‌های Dash، ظاهر داشبورد را به دلخواه تغییر دهید.
- تعاملات پیچیده: با استفاده از callbacks‌های بیشتر و کامپوننت‌های مختلف، تعاملات پیچیده‌تری بسازید.

🔗 پیشنهادات برای ادامه
- پشتیبانی از چندین نمودار: می‌توانید نمودارهای بیشتری را اضافه کنید و آن‌ها را به تعاملات مختلف مرتبط کنید.
- استفاده از توابع و ابزارهای تحلیلی: می‌توانید توابع محاسباتی پیچیده‌تری را اضافه کنید و نتایج را در داشبورد نمایش دهید.

موفق باشید و از پروژه‌های خود لذت ببرید! 🌟

🔻 بیا اینجا بیشتر یاد بگیری 🔻

#Python #Dash #DataVisualization #WebDevelopment #Plotly #AdvancedDashboard
👍3👎1
حس می‌کنم داره پستای کانال سطحش ضعیف میشه نظر شما چیه؟
👎4👍2
📌 آموزش جامع ماژول robotframework در پایتون 📌

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


1. نصب ماژول robotframework

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

pip install robotframework
pip install robotframework-seleniumlibrary


2. ایجاد یک تست ساده

2.1. ایجاد فایل تست

یک فایل متنی با نام simple_test.robot ایجاد کنید و محتوای زیر را در آن قرار دهید:

*** Settings ***
Library SeleniumLibrary

*** Variables ***
${URL} https://example.com

*** Test Cases ***
Open Browser and Check Title
Open Browser ${URL} chrome
Title Should Be Example Domain
[Teardown] Close Browser

Settings

- Settings: در این بخش کتابخانه‌های مورد استفاده را تVariables
- Variables: در این بخش متغیرهای مورد نیاز را تTest Cases- Test Cases: در این بخش تست‌ها را تعریف می‌کنیم.

در این مثال، یک مرورگر کروم باز می‌شود و عنوان صفحه وب بررسی می‌شود. اگر عنوان صفحه "Example Domain" باشد، تست موفقیت‌آمیز خواهد بود.

2.3. اجرای تست

برای اجرای تست از دستور زیر استفاده کنید:

robot simple_test.robot

با اجرای این دستور، مرورگر باز شده، به آدرس https://example.com می‌رود و عنوان صفحه بررسی می‌شود. در نهایت، مرورگر بسته می‌شود.


3. ساخت یک برنامه کاربردی (تست لاگین)

3.1. ایجاد فایل تست

یک فایل با نام login_test.robot ایجاد کنید و محتوای زیر را در Settings
*** Settings ***
Library SeleniumLibrary

*** Variables ***
${URL} https://example-login.com
${USERNAME} your_username
${PASSWORD} your_password

*** Test Cases ***
Login Test
Open Browser ${URL} chrome
Input Text id:username ${USERNAME}
Input Text id:password ${PASSWORD}
Click Button id:login-button
Wait Until Page Contains Welcome, ${USERNAME}
[Teardown] Close Browser

3.2. توضیحات

- Open Browser: باز کردن مرورگInput TextL مشخص شده.
- Input Text: وارد کردن متن در فیلدهای ورود Click Buttonاسه (id).
- Click Button: کلیک بر روی دکمه لاگین Wait Until Page Contains Wait Until Page Contains: صبر کردن تا زمانی که صفحه شامل متن "We[Teardown]AME}" باشد.
-[Teardown]: بستن مرورگر پس از اتمام تست.

3.3. تنظیمات مرورگر

برای اجرای تست‌ها نیاز به درایور مرورگر دارید. برای کروم باید chromedriver را دانلود و در مسیر سیستم تنظیم کنید. می‌توانید chromedriver را از [این لینک]دانلود کنید.

3.4. اجرای تست

برای اجرای تست لاگین از دستور زیر استفاده کنید:

robot login_test.robot

4. نکات مهم

- استفاده از توابع آماده: robotframework شامل توابع آماده زیادی است که کار با مرورگرها، فایل‌هاگزارش‌گیریرا ساده می‌کند.
- گزارش‌گیری: این ماژول به‌طور خودکار گزارشات تست را تولید می‌کند که می‌تواند برای بررسی نتایج تست‌ها بسیار مفید باشد.
- قابلیت توسعه: می‌توانید توابع سفارشی خود را به کتابخانه اضافه کنید تا قابلیت‌های بیشتری را فراهم کنید.
📢 ۵ کد کاربردی با ماژول robotframework در پایتون🚀

سلام دوستان! امروز ۵ کد کاربردی و جالب از ماژول robotframework را برای شما آماده کرده‌ایم که می‌توانید از آنها برای خودکارسازی وظایف مختلف استفاده کنید. 🌟

باز کردن مرورگر و بررسی عنوان صفحه

این کد مرورگر را باز کرده و عنوان صفحه را بررسی می‌کند.

*** Settings ***
Library SeleniumLibrary

*** Variables ***
${URL} https://example.com

*** Test Cases ***
Open Browser and Check Title
Open Browser ${URL} chrome
Title Should Be Example Domain
[Teardown] Close Browser

2. ورود به یک وبسایت و بررسی پیام خوش‌آمدگویی

این کد برای ورود به یک وبسایت و بررسی پیام خوش‌آمدگو Settings.

*** Settings ***
Library SeleniumLibrary

*** Variables ***
${URL} https://example-login.com
${USERNAME} your_username
${PASSWORD} your_password

*** Test Cases ***
Login Test
Open Browser ${URL} chrome
Input Text id:username ${USERNAME}
Input Text id:password ${PASSWORD}
Click Button id:login-button
Wait Until Page Contains Welcome, ${USERNAME}
[Teardown] Close Browser


3. جستجوی کلمه در گوگل

این کد برای جستجوی ی* Settings می‌شود.

*** Settings ***
Library SeleniumLibrary

*** Variables ***
${URL} https://www.google.com
${SEARCH_TERM} Robot Framework

*** Test Cases ***
Google Search
Open Browser ${URL} chrome
Input Text name:q ${SEARCH_TERM}
Press Keys name:q ENTER
Wait Until Page Contains ${SEARCH_TERM}
[Teardown] Close Browser

4. آپلود فایل در یک فرم * Settings استفاده می‌شود.

*** Settings ***
Library SeleniumLibrary

*** Variables ***
${URL} https://example-upload.com
${FILE_PATH} /path/to/your/file.txt

*** Test Cases ***
Upload File
Open Browser ${URL} chrome
Choose File id:file-upload ${FILE_PATH}
Click Button id:submit-button
Wait Until Page Contains File uploaded successfully
[Teardown] Close Browser


5. تست API با استفاده از RequestsLibrary
* Settings gs پاسخ استفاده می‌شود.

*** Settings ***
Library RequestsLibrary

*** Variables ***
${API_URL} https://api.example.com/data

*** Test Cases ***
Test API
Create Session api_session ${API_URL}
${response}= Get Request api_session /endpoint
Status Should Be ${response} 200
[Teardown] Delete Session api_session

🔻بیا اینجا تا بیشتر یاد بگیری🔻


#Python #RobotFramework #Automation #Testing #Code #Programming
🔍 دانستنی جالب درباره robotframework 🤖

آیا می‌دانید که robotframework فقط برای تست نرم‌افزارها استفاده نمی‌شود؟ این ماژول قدرتمند می‌تواند در خودکارسازی بسیاری از وظایف دیگر نیز مفید باشد. از جمله:

- خودکارسازی مرورگر وب: می‌توانید از robotframework برای انجام تست‌های خودکار روی وبسایت‌ها استفاده کنید، مثل ورود به سیستم، پر کردن فرم‌ها و بررسی محتوا.

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

- تست API: با استفاده از RequestsLibrary می‌توانید درخواست‌های API ارسال کنید و پاسخ‌ها را بررسی کنید، که این امر برای تست سرویس‌های وب بسیار مفید است.

- گزارش‌گیری خودکار: robotframework به طور خودکار گزارش‌های تست را تولید می‌کند که می‌توانید برای تحلیل نتایج تست‌ها و شناسایی مشکلات استفاده کنید.

پس، دفعه بعد که به فکر خودکارسازی وظایف مختلف افتادید، یادتان باشد که robotframework می‌تواند ابزار مناسبی برای شما باشد! 🌟

🔻اینجا چیزای جالبی برای یاد گرفتن هست🔻

#RobotFramework #Automation #Testing #Programming #Technology
👍1
از کدوم آموزش کانالمون بیشتر خوشتون اومد؟
👍4
اخبار مهم امروز درباره پایتون - ۲۷ ژوئیه ۲۰۲۴

۱. انتشار نسخه بتا 4 از پایتون 3.13.0
نسخه بتا 4 از پایتون 3.13.0 منتشر شد. این نسخه شامل ویژگی‌های جدید و بهبود عملکردهای مختلف است که کارایی زبان برنامه‌نویسی پایتون را افزایش می‌دهد.

۲. توسعه پایتون بدون GIL
شورای راهبری پایتون اعلام کرد که قصد دارد پیشنهاد PEP 703 را بپذیرد که قفل جهانی مفسر (GIL) را در نسخه‌های آینده پایتون اختیاری می‌کند. این تغییر بهبود بزرگی برای عملکرد پایتون در برنامه‌های چند رشته‌ای خواهد بود و به خصوص برای محاسبات علمی و داده‌های بزرگ مفید است.

۳. تغییرات در قوانین بنیاد نرم‌افزار پایتون
بنیاد نرم‌افزار پایتون (PSF) اعلام کرد که از تاریخ ۱۰ اوت ۲۰۲۴ تغییراتی در قوانین خود اعمال خواهد کرد. این تغییرات به منظور بهبود شفافیت و افزایش دسترسی به منابع برای توسعه‌دهندگان پایتون انجام شده است.

۴. برگزاری کنفرانس EuroPython 2024
کنفرانس EuroPython 2024 در ماه ژوئیه به صورت حضوری و آنلاین برگزار شد. این کنفرانس یکی از بزرگترین رویدادهای جامعه پایتون در اروپا است و برنامه‌های متنوعی برای توسعه‌دهندگان و علاقه‌مندان به پایتون ارائه داد.

۵. ارائه گرنت‌های مجازی توسط بنیاد نرم‌افزار پایتون
بنیاد نرم‌افزار پایتون گرنت‌هایی برای رویدادهای مجازی ارائه می‌دهد. توسعه‌دهندگان می‌توانند برای دریافت کمک‌های مالی تا سقف ۲۵۰۰ دلار برای رویدادهای بزرگ مجازی و همچنین گرنت‌های کوچکتر برای رویدادهای دیگر درخواست دهند.

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

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

🔻اینجا کلیک کن تا بیشتر با خبر شی🔻

#Python #Programming #EuroPython2024 #PSF #PythonDevelopment #TechNews #Coding
دانستنی از تاریخ پایتون

زبان برنامه‌نویسی پایتون در اوایل دهه ۱۹۹۰ توسط گیدو ون روسوم ایجاد شد. گیدو ون روسوم که یک برنامه‌نویس هلندی است، در سال ۱۹۸۹ در مرکز تحقیقات ملی ریاضیات و علوم کامپیوتر (CWI) در آمستردام کار می‌کرد. او تصمیم گرفت یک زبان برنامه‌نویسی جدید طراحی کند که ساده و قابل فهم باشد.

نام پایتون از کجا آمده است؟ برخلاف تصور بسیاری که فکر می‌کنند نام این زبان از مار پایتون گرفته شده است، در واقع نام پایتون الهام گرفته از یک برنامه تلویزیونی بریتانیایی به نام Monty Python’s Flying Circus است که گیدو ون روسوم طرفدار آن بود. او می‌خواست نامی جذاب و جالب برای زبان جدید خود انتخاب کند، بنابراین پایتون را انتخاب کرد.

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

🔻اینجا کلیک کن تا بیشتر یاد بگیری🔻

#پایتون #تاریخچه #برنامه‌نویسی #GuidoVanRossum #PythonHistory #MontyPython
👍1
آموزش الگوریتم جستجوی عمق‌اول (Depth-First Search - DFS)

مقدمه:

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

مراحل اجرای DFS:

1. شروع از گره مبدا:

از یک گره مشخص (مثلاً start) شروع می‌کنیم.

2. بازدید از گره‌ها:

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

3. حرکت به گره‌های همسایه:

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

4. بازگشت به عقب:

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

5. پایان:

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

پیاده‌سازی DFS در پایتون:

def dfs(graph, start, visited=None):
if visited is None:
visited = set() # مجموعه‌ای برای نگهداری گره‌های بازدید شده
visited.add(start) # افزودن گره فعلی به مجموعه بازدید شده‌ها
print(start) # چاپ گره بازدید شده (می‌توانید این قسمت را به دلخواه تغییر دهید)

for neighbor in graph[start]: # بررسی همسایه‌های گره فعلی
if neighbor not in visited: # اگر همسایه هنوز بازدید نشده بود
dfs(graph, neighbor, visited) # بازگشتی برای بازدید از همسایه
return visited # بازگرداندن مجموعه گره‌های بازدید شده

مثال عملی:

فرض کنید یک گراف به شکل زیر داریم:

graph = {
'A': ['B', 'C'],
'B': ['D', 'E'],
'C': ['F'],
'D': [],
'E': ['F'],
'F': []
}

برای اجرای الگوریتم DFS از گره 'A'، کد زیر را اجرا می‌کنیم:

visited_nodes = dfs(graph, 'A')
print("Visited Nodes:", visited_nodes)

توضیحات:

در این مثال، الگوریتم DFS از گره 'A' شروع کرده و به ترتیب به گره‌های 'B'، 'D'، 'E' و 'F' می‌رود.

مزایا و معایب الگوریتم DFS:

مزایا:

- پیاده‌سازی ساده و مستقیم.
- مصرف حافظه کمتر نسبت به الگوریتم جستجوی عرض‌اول (BFS) برای گراف‌های بزرگ.

معایب:

- ممکن است به عمق بسیار زیادی برود (به خصوص در گراف‌های بزرگ و عمیق).
- در برخی موارد، تمام مسیرها را پیمایش می‌کند و ممکن است بهینه نباشد.

🟥برای یاد گرفتن الگوریتم های بیشتر اینجا کلیک کن🟥

#DFS #Python #GraphAlgorithm #پایتون #الگوریتم #برنامه‌نویسی
👍21