Python3
200 subscribers
100 photos
6 videos
26 files
518 links
🎓 آموزش و پروژه‌های Python
آموزش‌های کاربردی و پروژه‌های عملی Python برای همه سطوح. 🚀
Download Telegram
01 - Getting Started.zip
81.2 MB
🟢 دوره Django

این دوره یه استاد معروف خارجیه
زیرنویس فارسی داره

🟡 منبع :
Matrix Py

🔴 این بخش اوله ، از چنلش حمایت
کنید تا بقیه بخش هارو هم بزاره
👍42
(معرفی Django) 🌐

مقدمه:
Django یک فریم‌ورک وب سطح بالا برای زبان برنامه‌نویسی پایتون است که به توسعه‌دهندگان کمک می‌کند تا سریع‌تر و آسان‌تر برنامه‌های وب قدرتمند بسازند. این فریم‌ورک بر اساس الگوی طراحی Model-View-Template (MVT) بنا شده است و بسیاری از ویژگی‌های ضروری برای ساخت وب‌سایت‌ها و برنامه‌های وب پیچیده را به صورت از پیش ساخته شده فراهم می‌کند.

توضیح کلی از Django:
Django توسط یک تیم توسعه‌دهنده در روزنامه Lawrence Journal-World در سال 2003 ساخته شد و در سال 2005 به صورت عمومی منتشر گردید. از آن زمان تا کنون، این فریم‌ورک به یکی از محبوب‌ترین و پرکاربردترین فریم‌ورک‌های وب در دنیای پایتون تبدیل شده است. Django با تمرکز بر قابلیت استفاده مجدد، مقیاس‌پذیری و امنیت، ابزاری قدرتمند برای ساخت وب‌سایت‌ها و برنامه‌های وب با عملکرد بالا ارائه می‌دهد.

یکی از ویژگی‌های برجسته Django، ارائه یک پنل مدیریتی آماده و قابل تنظیم است که توسعه‌دهندگان می‌توانند به راحتی از آن برای مدیریت داده‌ها و کاربران خود استفاده کنند. علاوه بر این، Django با داشتن یک ORM (Object-Relational Mapping) قدرتمند، امکان تعامل با پایگاه داده‌ها را به شیوه‌ای ساده و موثر فراهم می‌سازد.

فواید:
1. سرعت توسعه بالا: Django با ارائه ابزارهای آماده و کتابخانه‌های متعدد، فرآیند توسعه وب‌سایت‌ها و برنامه‌های وب را تسریع می‌کند.
2. امنیت بالا: Django بسیاری از مشکلات امنیتی رایج مانند SQL Injection، Cross-Site Scripting و Cross-Site Request Forgery را به صورت پیش‌فرض پوشش می‌دهد.
3. مقیاس‌پذیری: برنامه‌های ساخته شده با Django به راحتی قابلیت مقیاس‌پذیری و پاسخگویی به ترافیک‌های بالا را دارند.
4. جامعه فعال: Django دارای جامعه بزرگی از توسعه‌دهندگان است که به صورت فعال به بهبود و توسعه آن کمک می‌کنند.

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

برای دریافت آموزش‌ها و نکات بیشتر در زمینه برنامه‌نویسی، حتماً به کانال تلگرام ما بپیوندید! 💻📱

#Django #WebDevelopment #Python #Programming #TechCommunity #LearnToCode
👍2
Forwarded from گوربه
پردازش موازی پیشرفته در پایتون: استفاده از concurrent.futures برای بهره‌وری بیشتر 🚀

مقدمه:
برای توسعه‌دهندگان سطح سینیور که به دنبال بهینه‌سازی کد و افزایش کارایی برنامه‌های خود هستند، پردازش موازی می‌تواند یک ابزار قدرتمند باشد. یکی از کتابخانه‌های داخلی پایتون که این امکان را فراهم می‌کند، concurrent.futures است. این کتابخانه به شما اجازه می‌دهد تا وظایف را به صورت همزمان اجرا کنید و از چندین هسته CPU بهره ببرید.

پردازش موازی با concurrent.futures:
ایجاد و اجرای وظایف موازی:ابتدا باید ThreadPoolExecutor یا ProcessPoolExecutor را برای اجرای وظایف موازی انتخاب کنید. ThreadPoolExecutor برای وظایفی که نیاز به I/O دارند مناسب است، در حالی که ProcessPoolExecutor برای وظایف محاسباتی سنگین بهتر عمل می‌کند.


    from concurrent.futures import ThreadPoolExecutor, as_completed
import time

def task(n):
print(f"Processing {n}")
time.sleep(2)
return n * n

numbers = [1, 2, 3, 4, 5]
results = []

with ThreadPoolExecutor(max_workers=3) as executor:
futures = [executor.submit(task, num) for num in numbers]
for future in as_completed(futures):
results.append(future.result())

print("Results:", results)

2. مزایای استفاده از concurrent.futures:ساده‌سازی مدیریت وظایف:با استفاده از futures، می‌توانید به راحتی نتایج وظایف موازی را مدیریت کنیبهره‌وری بیشتر:با توزیع وظایف بین چندین هسته، می‌توانید کارایی برنامه‌های خود را افزایش دهیکد خواناتر: استفاده از ThreadPoolExecutor و ProcessPoolExecutor کد را خواناتر و قابل فهمتراستفاده پیشرفته‌تر:

برای استفاده پیشرفته‌تر از concurrent.futures، می‌توانید از ترکیب ThreadPoolExecutor و ProcessPoolExecutor استفاده کنید تا بهترین عملکرد را برای وظایف مختلف بدست آورید.

from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor

def io_task(n):
print(f"IO Task {n}")
time.sleep(2)
return n + n

def cpu_task(n):
print(f"CPU Task {n}")
return sum(i*i for i in range(n))

numbers = [10, 20, 30, 40, 50]

with ThreadPoolExecutor(max_workers=3) as io_executor, ProcessPoolExecutor(max_workers=3) as cpu_executor:
io_futures = [io_executor.submit(io_task, num) for num in numbers]
cpu_futures = [cpu_executor.submit(cpu_task, num) for num in numbers]

for future in as_completed(io_futures + cpu_futures):
print(f"Result: {future.result()}")

فواید:افزایش کارایی:پردازش موازی می‌تواند به طور چشمگیری کارایی برنامه‌ها را افزامدیریت آسان وظایف: استفاده از concurrent.futures مدیریت وظایف موازی را بسیار ساده‌تمعایب:- پیچیدگی دیباگ: دیباگ کردن کدهای موازی می‌تواند پیچیده‌تمصرف منابع: استفاده نادرست از پردازش موازی می‌تواند منجر به مصرف زیاد منابع شود.

برای دریافت آموزش‌های بیشتر و نکات پیشرفته در زمینه برنامه‌نویسی، حتماً به کانال تلگرام ما بپیوندید! 💻📱

#Python #Concurrency #ParallelProcessing #AdvancedPython #ProgrammingTips #CodeOptimization
👍2
مدیریت فایل‌ها با os و shutil در پایتون

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

مدیریت دایرکتوری‌ها:

1. ایجاد دایرکتوری:
با استفاده از تابع mkdir از ماژول os می‌توانید دایرکتوری جدیدی ایجاد کنید.


    import os

os.mkdir('new_directory')

2. حذف دایرکتوری:
برای حذف یک دایرکتوری خالی، از تابع rmdir استفاده کنید.


    os.rmdir('new_directory')

3. ایجاد مسیرهای چندگانه:
برای ایجاد مسیرهای چندگانه، از makedirs استفاده کنید.


    os.makedirs('parent_directory/child_directory')

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

1. ایجاد فایل:
برای ایجاد یک فایل جدید و نوشتن در آن، می‌توانید از تابع open استفاده کنید.


    with open('file.txt', 'w') as file:
file.write('Hello, World!')

2. حذف فایل:
برای حذف یک فایل، از remove استفاده کنید.


    os.remove('file.txt')

3. جابجایی و کپی فایل‌ها:
ماژول shutil ابزارهای مفیدی برای جابجایی و کپی فایل‌ها فراهم می‌کند.


    import shutil

shutil.move('source.txt', 'destination.txt')
shutil.copy('source.txt', 'destination.txt')

کاربردهای پیشرفته:

ماژول‌های os و shutil امکانات بیشتری نیز فراهم می‌کنند، از جمله تغییر نام فایل‌ها، بررسی وجود فایل یا دایرکتوری و دسترسی به جزئیات فایل‌ها.

# تغییر نام فایل
os.rename('old_name.txt', 'new_name.txt')

# بررسی وجود فایل
if os.path.exists('file.txt'):
print('File exists')

# دسترسی به جزئیات فایل
file_info = os.stat('file.txt')
print(f'Size: {file_info.st_size} bytes')

فواید و معایب:
- فواید:
- مدیریت آسان: ماژول‌های os و shutil مدیریت فایل‌ها و دایرکتوری‌ها را بسیار ساده می‌کنند.
- قابلیت‌های پیشرفته: این ماژول‌ها قابلیت‌های پیشرفته‌ای را برای کار با سیستم فایل فراهم می‌کنند.
- معایب:
- سازگاری سیستم‌عامل: برخی توابع ممکن است در سیستم‌عامل‌های مختلف رفتار متفاوتی داشته باشند.
- پیچیدگی کد: استفاده نادرست از این ماژول‌ها می‌تواند منجر به پیچیدگی و خطاهای غیرمنتظره در کد شود.

برای یادگیری بیشتر در مورد برنامه‌نویسی پایتون و نکات پیشرفته، به کانال تلگرام ما بپیوندید!

#Python #FileManagement #OSModule #Shutil #ProgrammingTips #CodeOptimization #AdvancedPython
👍7
یه بیلاخ اینجا هست انگشتش کنید 👆
Python3
01 - Getting Started.zip
🟢 بچها این کانال رو حمایت کنید تا پارت دوم همراه با زیرنویس رو منتشر کنه
👍3
Python3
🟢 بچها این کانال رو حمایت کنید تا پارت دوم همراه با زیرنویس رو منتشر کنه
البته چنل خودمونم نیاز به حمایت داره ولی راس میگه حمایتش کنید
🌞 صبح بخیر به همه‌ی شما دوستان عزیز! 🌞

امروز یک روز فوق‌العاده برای شروعی تازه است. بیایید با انرژی مثبت و لبخند، به استقبال این روز زیبا برویم. 🌟 یادمان باشد که هر روز یک هدیه است و فرصتی برای ساختن خاطرات خوب و رسیدن به اهدافمان. 💪

امیدوارم امروز پر از موفقیت، شادی و لحظات بی‌نظیر برای همگی‌تان باشد. هر کاری که انجام می‌دهید، با تمام وجود و انگیزه‌ای قوی شروع کنید. 🌈💼

روزتون پر از اتفاقات خوب! 🌸
👍1
فریم‌ورک‌های کمتر شناخته شده پایتون

1. Hug
Hug یک فریم‌ورک وب است که هدف آن ساده‌سازی ساخت و توسعه API‌ها است. این فریم‌ورک بسیار سریع و کارآمد است و به شما امکان می‌دهد API‌های RESTful با کارایی بالا ایجاد کنید.
- مزایا: سریع، سبک، و پشتیبانی از توسعه سریع.
- معایب: مستندات محدود و جامعه کاربری کوچک.

2. Sanic
Sanic یک فریم‌ورک وب ناهمزمان (asynchronous) است که برای رسیدن به عملکرد بالا طراحی شده است. این فریم‌ورک به شما امکان می‌دهد که برنامه‌های وب سریع و کارآمد بنویسید.
- مزایا: سرعت بالا، ناهمزمانی کامل.
- معایب: پیچیدگی در مدیریت ناهمزمانی و یادگیری اولیه.

3. Falcon
Falcon یک فریم‌ورک وب سبک و سریع است که برای ساخت API‌های RESTful طراحی شده است. این فریم‌ورک بر روی سرعت و کارایی بالا تمرکز دارد.
- مزایا: سرعت بالا، کارایی عالی، مصرف کم منابع.
- معایب: مناسب نبودن برای برنامه‌های پیچیده.

4. Eve
Eve یک فریم‌ورک REST API برای پایتون است که به شما امکان می‌دهد به سرعت API‌های قدرتمند و انعطاف‌پذیر بسازید. این فریم‌ورک بر اساس Flask ساخته شده است و امکانات زیادی برای مدیریت داده‌ها ارائه می‌دهد.
- مزایا: پشتیبانی از MongoDB، ساخت سریع API‌ها.
- معایب: پیچیدگی در تنظیمات و مستندات کم.

5. Pyramid
Pyramid یک فریم‌ورک وب است که به شما امکان می‌دهد برنامه‌های وب کوچک و بزرگ را به راحتی بسازید. این فریم‌ورک انعطاف‌پذیری بالایی دارد و به شما امکان می‌دهد ساختار پروژه خود را انتخاب کنید.
- مزایا: انعطاف‌پذیری، مناسب برای پروژه‌های بزرگ.
- معایب: یادگیری اولیه دشوار، مستندات پیچیده.

6. TurboGears
TurboGears یک فریم‌ورک وب Full-Stack است که به شما امکان می‌دهد برنامه‌های وب پیچیده و مقیاس‌پذیر بسازید. این فریم‌ورک از مجموعه‌ای از ابزارهای مختلف استفاده می‌کند تا توسعه را ساده‌تر کند.
- مزایا: Full-Stack، پشتیبانی از ORM‌های مختلف.
- معایب: پیچیدگی در تنظیمات و یادگیری اولیه.

7. CherryPy
CherryPy یک فریم‌ورک وب شیءگرا و سبک است که به شما امکان می‌دهد برنامه‌های وب کوچک و سریع بسازید. این فریم‌ورک به شما اجازه می‌دهد برنامه‌های وب خود را به صورت شیءگرا توسعه دهید.
- مزایا: سبک، ساده، شیءگرا.
- معایب: مناسب نبودن برای برنامه‌های بزرگ.

8. Web2py
Web2py یک فریم‌ورک Full-Stack است که بر روی ساده‌سازی توسعه برنامه‌های وب تمرکز دارد. این فریم‌ورک شامل همه چیزهایی است که برای ساخت یک برنامه وب کامل نیاز دارید.
- مزایا: Full-Stack، ساده‌سازی توسعه.
- معایب: انعطاف‌پذیری کمتر نسبت به فریم‌ورک‌های دیگر.

9. Bottle
Bottle یک فریم‌ورک وب بسیار سبک و ساده است که برای ساخت برنامه‌های وب کوچک و سریع طراحی شده است. این فریم‌ورک شامل همه چیزهایی است که برای ساخت یک برنامه وب نیاز دارید.
- مزایا: سبک، ساده، بدون وابستگی.
- معایب: مناسب نبودن برای برنامه‌های بزرگ.

10. Tornado
Tornado یک فریم‌ورک وب ناهمزمان و بسیار سریع است که برای برنامه‌های وب مقیاس‌پذیر طراحی شده است. این فریم‌ورک به شما امکان می‌دهد برنامه‌های وب با کارایی بالا بسازید.
- مزایا: سرعت بالا، ناهمزمانی.
- معایب: پیچیدگی در مدیریت ناهمزمانی، مستندات پیچیده.

برای یادگیری بیشتر در مورد برنامه‌نویسی پایتون و نکات پیشرفته، به کانال تلگرام ما بپیوندید!

#پایتون #فریم‌ورک #برنامه‌نویسی #توسعه_وب #آموزش
👍2
پردازش تصاویر پیشرفته با OpenCV در پایتون

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

تشخیص لبه‌ها در تصاویر با استفاده از الگوریتم Canny

1. وارد کردن کتابخانه‌های لازم:

import cv2
import numpy as np
from matplotlib import pyplot as plt

در این مرحله کتابخانه‌های OpenCV، NumPy و Matplotlib را برای کار با تصاویر و نمایش آن‌ها وارد می‌کنیم.

2. خواندن تصویر:

image = cv2.imread('input_image.jpg', cv2.IMREAD_GRAYSCALE)

این خط کد تصویر ورودی را به صورت خاکستری می‌خواند. در اینجا input_image.jpg نام تصویر ورودی شماست.

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

blurred_image = cv2.GaussianBlur(image, (5, 5), 0)

فیلتر گوسی برای کاهش نویز تصویر استفاده می‌شود. این مرحله بسیار مهم است زیرا نویزها می‌توانند روی نتیجه‌ی تشخیص لبه‌ها تأثیر منفی بگذارند.

4. تشخیص لبه‌ها با استفاده از الگوریتم Canny:

edges = cv2.Canny(blurred_image, 100, 200)

این خط کد الگوریتم Canny را برای تشخیص لبه‌ها در تصویر به کار می‌برد. مقادیر 100 و 200 مقادیر آستانه پایین و بالا برای الگوریتم Canny هستند.

5. نمایش تصویر اصلی و تصویر لبه‌یابی شده:

plt.figure(figsize=(10, 5))

plt.subplot(121), plt.imshow(image, cmap='gray')
plt.title('Original Image'), plt.xticks([]), plt.yticks([])

plt.subplot(122), plt.imshow(edges, cmap='gray')
plt.title('Edge Image'), plt.xticks([]), plt.yticks([])

plt.show()

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

برای یادگیری بیشتر در مورد برنامه‌نویسی پایتون و نکات پیشرفته، به کانال تلگرام ما بپیوندید!

#برنامه_نویسی #پایتون #پردازش_تصویر #OpenCV
👍2
ساخت صفحه نقاشی با پایتون

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

کد برنامه

import tkinter as tk
from tkinter import colorchooser

class PaintApp:
def __init__(self, root):
self.root = root
self.root.title("صفحه نقاشی")

self.canvas = tk.Canvas(self.root, bg='white', width=800, height=600)
self.canvas.pack()

self.color_frame = tk.Frame(self.root)
self.color_frame.pack()

self.colors = ["red", "green", "blue", "yellow", "black", "purple"]
self.current_color = "black"
self.create_color_buttons()

self.eraser_button = tk.Button(self.color_frame, text="پاک کن", command=self.use_eraser)
self.eraser_button.pack(side=tk.LEFT)

self.canvas.bind("<B1-Motion>", self.paint)
self.canvas.bind("<Button-1>", self.activate_paint)

def create_color_buttons(self):
for color in self.colors:
button = tk.Button(self.color_frame, bg=color, width=3, command=lambda col=color: self.change_color(col))
button.pack(side=tk.LEFT)

def change_color(self, new_color):
self.current_color = new_color

def use_eraser(self):
self.current_color = "white"

def activate_paint(self, event):
self.last_x, self.last_y = event.x, event.y

def paint(self, event):
self.canvas.create_line(self.last_x, self.last_y, event.x, event.y, fill=self.current_color, width=5)
self.last_x, self.last_y = event.x, event.y

if __name__ == "__main__":
root = tk.Tk()
app = PaintApp(root)
root.mainloop()

توضیح

1. وارد کردن کتابخانه‌های لازم:

    import tkinter as tk
from tkinter import colorchooser

در این بخش، کتابخانه tkinter برای ساخت GUI وارد شده است.

2. تعریف کلاس PaintApp:

    class PaintApp:
def __init__(self, root):
self.root = root
self.root.title("صفحه نقاشی")
...

در این کلاس، پنجره اصلی و بوم نقاشی تعریف شده‌اند.

3. ساخت بوم نقاشی:

    self.canvas = tk.Canvas(self.root, bg='white', width=800, height=600)
self.canvas.pack()

بوم نقاشی با رنگ پس‌زمینه سفید و ابعاد 800x600 ایجاد شده است.

4. ساخت دکمه‌های رنگ:

    def create_color_buttons(self):
for color in self.colors:
button = tk.Button(self.color_frame, bg=color, width=3, command=lambda col=color: self.change_color(col))
button.pack(side=tk.LEFT)

این تابع دکمه‌های رنگ را ایجاد و به قاب مربوطه اضافه می‌کند.

5. تغییر رنگ و استفاده از پاک کن:

    def change_color(self, new_color):
self.current_color = new_color

def use_eraser(self):
self.current_color = "white"

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

6. نقاشی روی بوم:

    def activate_paint(self, event):
self.last_x, self.last_y = event.x, event.y

def paint(self, event):
self.canvas.create_line(self.last_x, self.last_y, event.x, event.y, fill=self.current_color, width=5)
self.last_x, self.last_y = event.x, event.y

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

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

برای یادگیری بیشتر در مورد برنامه‌نویسی پایتون و نکات پیشرفته، به کانال تلگرام ما بپیوندید!


#Python #tkinter #GUI #Programming
4
اخبار امروز پایتون - 23 جولای 2024

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

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

2. انتخاب هیئت مدیره جدید PSF: نتایج انتخابات هیئت مدیره بنیاد نرم‌افزار پایتون (PSF) برای سال 2024 اعلام شد. این انتخابات با تغییرات مثبتی در فرآیند رای‌گیری و ابزارهای مورد استفاده برگزار شد و نتایج آن باعث افزایش تنوع و شفافیت در تصمیم‌گیری‌های بنیاد شده است.

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

4. پشتیبانی جدید PyPI: PyPI، مخزن بسته‌های پایتون، یک متخصص پشتیبانی جدید استخدام کرده است. این اقدام با هدف بهبود خدمات و افزایش رضایت کاربران انجام شده است.

5. معرفی مهندس زیرساخت جدید: بنیاد نرم‌افزار پایتون یک مهندس زیرساخت جدید معرفی کرده است که بهبودهای زیادی در زیرساخت‌های فنی و امنیتی این بنیاد به ارمغان خواهد آورد.

6. کارگاه PyLadies آمستردام: کارگاه آموزشی PyLadies در آمستردام با تمرکز بر سطوح ابتدایی تا متوسطه برگزار می‌شود. این کارگاه فرصتی عالی برای تازه‌واردان به دنیای پایتون است تا با اصول اولیه و مفاهیم پیشرفته آشنا شوند.

7. کنفرانس PyCon روسیه: کنفرانس PyCon روسیه در تاریخ 26 جولای 2024 برگزار خواهد شد. این رویداد بزرگترین گردهمایی علاقه‌مندان به پایتون در روسیه است که شامل سخنرانی‌ها، کارگاه‌ها و جلسات مختلف می‌باشد.

با این اخبار هیجان‌انگیز، امیدواریم شما هم مانند ما مشتاق ادامه دادن به یادگیری و استفاده از پایتون باشید. 🌟

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


#PythonNews #PyCon #PythonCommunity #PyLadies #PSF #PyPI #PythonRelease #TechNews
10 کد کاربردی با استفاده از کتابخانه lxml

کتابخانه lxml یکی از قدرتمندترین ابزارها برای پردازش XML و HTML در پایتون است. در اینجا 10 کد کاربردی را با استفاده از این کتابخانه معرفی می‌کنیم:

1. نصب lxml
برای نصب lxml از pip استفاده کنید:
pip install lxml

2. خواندن یک فایل XML
from lxml import etree

tree = etree.parse('sample.xml')
root = tree.getroot()
print(etree.tostring(root, pretty_print=True))

3. استخراج اطلاعات از یک فایل HTML
from lxml import html

content = """
<html>
<body>
<h1>Sample Title</h1>
<p>This is a <b>sample</b> paragraph.</p>
</body>
</html>
"""
tree = html.fromstring(content)
title = tree.xpath('//h1/text()')[0]
print(f'Title: {title}')

4. ساخت یک سند XML جدید
from lxml import etree

root = etree.Element('root')
child = etree.SubElement(root, 'child')
child.text = 'This is a child element'
tree = etree.ElementTree(root)
tree.write('new_sample.xml', pretty_print=True)

5. ویرایش یک سند XML
tree = etree.parse('sample.xml')
root = tree.getroot()

for child in root:
if child.tag == 'target':
child.text = 'New text'
tree.write('edited_sample.xml', pretty_print=True)

6. تبدیل XML به JSON
import json
from lxml import etree

tree = etree.parse('sample.xml')
root = tree.getroot()

def etree_to_dict(t):
d = {t.tag: {} if t.attrib else None}
children = list(t)
if children:
dd = defaultdict(list)
for dc in map(etree_to_dict, children):
for k, v in dc.items():
dd[k].append(v)
d = {t.tag: {k: v[0] if len(v) == 1 else v for k, v in dd.items()}}
if t.attrib:
d[t.tag].update((k, v) for k, v in t.attrib.items())
if t.text:
text = t.text.strip()
if children or t.attrib:
if text:
d[t.tag]['text'] = text
else:
d[t.tag] = text
return d

json_data = json.dumps(etree_to_dict(root), indent=4)
print(json_data)

7. بررسی اعتبار سنجی XML با استفاده از یک DTD
dtd = etree.DTD('sample.dtd')
tree = etree.parse('sample.xml')
is_valid = dtd.validate(tree)
print(f'Is valid: {is_valid}')

8. جستجو در یک سند XML با XPath
tree = etree.parse('sample.xml')
root = tree.getroot()
elements = root.xpath('//target')
for elem in elements:
print(elem.text)

9. استخراج لینک‌ها از یک صفحه HTML
from lxml import html

page = html.parse('sample.html')
links = page.xpath('//a/@href')
for link in links:
print(link)

10. افزودن عناصر به یک سند XML
tree = etree.parse('sample.xml')
root = tree.getroot()

new_elem = etree.Element('new_element')
new_elem.text = 'This is a new element'
root.append(new_elem)

tree.write('updated_sample.xml', pretty_print=True)

این کدها می‌توانند در پروژه‌های مختلف برای پردازش و مدیریت اسناد XML و HTML مورد استفاده قرار گیرند.

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

#پایتون #lxml #برنامه‌نویسی #آموزش_پایتون #python
آموزش PyTest در پایتون – بخش اول

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

نصب PyTest
برای شروع کار با PyTest، ابتدا باید آن را نصب کنید. این کار بسیار ساده است و می‌توانید با استفاده از pip آن را نصب کنید:

pip install pytest

نوشتن اولین تست با PyTest
برای نوشتن تست‌ها در PyTest، کافی است که توابع تست خود را با test_ شروع کنید. به مثال زیر توجه کنید:

# فایل test_sample.py

def test_addition():
assert 1 + 1 == 2

def test_subtraction():
assert 2 - 1 == 1

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

pytest

PyTest به صورت خودکار فایل‌های تست شما را پیدا کرده و آنها را اجرا می‌کند.

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

# فایل test_fixture.py

import pytest

@pytest.fixture
def sample_data():
return [1, 2, 3]

def test_sum(sample_data):
assert sum(sample_data) == 6

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

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

pip install pytest-html

سپس می‌توانید با استفاده از دستور زیر، یک گزارش HTML از نتایج تست‌های خود تولید کنید:

pytest --html=report.html

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

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

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

#پایتون #PyTest #آموزش_پایتون #برنامه‌نویسی #تست_نرم‌افزار #python
آموزش PyTest در پایتون – بخش دوم

در بخش اول این آموزش، با نصب و نوشتن تست‌های ساده با PyTest آشنا شدیم. در این بخش به مباحث پیشرفته‌تر PyTest می‌پردازیم.

پارامتری کردن تست‌ها
با استفاده از pytest.mark.parametrize می‌توانید تست‌های خود را برای مجموعه‌ای از داده‌ها اجرا کنید:

# فایل test_parametrize.py

import pytest

@pytest.mark.parametrize("input,expected", [
(1 + 1, 2),
(2 + 2, 4),
(3 + 3, 6),
])
def test_addition(input, expected):
assert input == expected

در این مثال، تابع تست test_addition برای هر جفت داده ورودی و خروجی اجرا می‌شود.

اجرای تست‌های مقیاس‌پذیر
PyTest قابلیت اجرای تست‌های مقیاس‌پذیر و تست‌های مختلف به صورت همزمان را دارد. برای این کار می‌توانید از پلاگین pytest-xdist استفاده کنید:

pip install pytest-xdist

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

pytest -n 4

این دستور تست‌ها را در چهار پردازش موازی اجرا می‌کند، که باعث افزایش سرعت اجرای تست‌ها می‌شود.

استفاده از Mock در PyTest
برای شبیه‌سازی رفتارهای مختلف در تست‌ها، می‌توانید از کتابخانه unittest.mock استفاده کنید. به مثال زیر توجه کنید:

# فایل test_mock.py

from unittest.mock import MagicMock

def test_mocking():
mock = MagicMock(return_value=10)
assert mock() == 10

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

تنظیمات و پیکربندی PyTest
PyTest به شما اجازه می‌دهد تنظیمات و پیکربندی‌های مختلفی را اعمال کنید. با ایجاد یک فایل pytest.ini می‌توانید تنظیمات دلخواه خود را اعمال کنید:

# فایل pytest.ini

[pytest]
markers =
slow: mark a test as slow
addopts = --maxfail=2

در این مثال، یک تنظیم برای علامت‌گذاری تست‌های کند و همچنین محدود کردن تعداد شکست‌ها به دو تست اعمال کرده‌ایم.

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

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

#پایتون #PyTest #آموزش_پایتون #برنامه‌نویسی #تست_نرم‌افزار #
دانستنی جالب از ویندوز قابل‌حمل 🌟

آیا می‌دانستید که شما می‌توانید نسخه‌ای از ویندوز را به صورت قابل‌حمل (Portable) روی یک حافظه USB داشته باشید و آن را با خود به هر جایی ببرید؟ این قابلیت که به نام Windows To Go شناخته می‌شود، امکان بوت کردن ویندوز از روی یک USB drive را فراهم می‌کند.

با Windows To Go، می‌توانید یک نسخه کامل از ویندوز را روی یک USB نصب کنید و با اتصال آن به هر کامپیوتری، محیط کاری شخصی خود را بدون نیاز به تنظیمات مجدد و نصب نرم‌افزارهای جدید راه‌اندازی کنید. این ویژگی به خصوص برای افرادی که نیاز به یک محیط کاری قابل‌حمل دارند یا برای افرادی که می‌خواهند یک نسخه پشتیبان از سیستم خود داشته باشند، بسیار مفید است.

ویژگی‌های ویندوز قابل‌حمل:

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

اما توجه داشته باشید که Microsoft Windows To Go در ویندوز 10 نسخه 2004 و بعد از آن پشتیبانی نمی‌شود. بنابراین، اگر از نسخه‌های قدیمی‌تر ویندوز استفاده می‌کنید، می‌توانید از این قابلیت بهره ببرید.

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


#WindowsToGo #PortableWindows #TechFacts #WindowsTips
۸ سایت مفید برای آموزش‌های پایتون 🌟

اگر به دنبال یادگیری پایتون هستید، اینجا لیستی از ۸ سایت برتر ایرانی و خارجی که آموزش‌های بسیار مفیدی ارائه می‌دهند، آورده شده است:

۱. Coursera 🌐
Coursera دوره‌های متنوعی در زمینه پایتون ارائه می‌دهد که توسط دانشگاه‌ها و مؤسسات معتبر تدریس می‌شوند. شما می‌توانید از دوره‌های مبتدی تا پیشرفته را در این سایت بیابید.
[بازدید از سایت Coursera]

۲. edX 🌐
edX نیز مانند Coursera، دوره‌های بسیار معتبری در زمینه پایتون ارائه می‌دهد که توسط دانشگاه‌های برتر جهان تدریس می‌شوند.
[بازدید از سایت edX]

۳. Codecademy 🌐
Codecademy یک پلتفرم تعاملی است که به شما امکان می‌دهد با انجام پروژه‌ها و تمرین‌های تعاملی، پایتون را به صورت عملی بیاموزید.
[بازدید از سایت Codecademy]

۴. Real Python 🌐
Real Python سایت بسیار کاملی برای آموزش پایتون است که مقالات، دوره‌ها و ویدئوهای آموزشی را به همراه پروژه‌های عملی ارائه می‌دهد.
[بازدید از سایت Real Python]

۵. GeeksforGeeks 🌐
GeeksforGeeks مجموعه‌ای از آموزش‌های جامع پایتون را همراه با مثال‌های متعدد ارائه می‌دهد که برای مبتدیان و حرفه‌ای‌ها مناسب است.
[بازدید از سایت GeeksforGeeks]

۶. ویدئوهای آموزشی فرادرس 🇮🇷
فرادرس یکی از بهترین منابع ایرانی برای یادگیری پایتون است که مجموعه‌ای از دوره‌های جامع و تخصصی را در این زمینه ارائه می‌دهد.
[بازدید از سایت فرادرس]

۷. مکتب‌خونه 🇮🇷
مکتب‌خونه نیز دوره‌های متنوعی در زمینه پایتون ارائه می‌دهد که توسط اساتید برجسته تدریس می‌شوند.
[بازدید از سایت مکتب‌خونه]

۸. سایت توسینسو 🇮🇷
توسینسو یک سایت ایرانی دیگر است که آموزش‌های جامع و کاربردی پایتون را در قالب ویدئوهای آموزشی ارائه می‌دهد.
[بازدید از سایت توسینسو]



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


#Python #PythonLearning #OnlineCourses #Programming
1
فکر کنم تنها کسی که لینک همستر نزاشته کانالش منم نظر شما
👍3
در پایتون، چه نتیجه‌ای از اجرای کد زیر به دست می‌آید؟
Anonymous Poll
13%
[1] [] [3]
13%
[1, 3] [2] [1, 3]
63%
[1] [2] [3]
13%
[1, 3] [2] [1, 3, 3]