Python3
200 subscribers
100 photos
6 videos
26 files
518 links
🎓 آموزش و پروژه‌های Python
آموزش‌های کاربردی و پروژه‌های عملی Python برای همه سطوح. 🚀
Download Telegram
آموزش اتصال به مرورگر با استفاده از Selenium در پایتون 🖥️🌐

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

مراحل نصب و راه‌اندازی Selenium

1. نصب Selenium:
برای نصب Selenium، از دستور pip استفاده کنید:


   pip install selenium

2. دانلود WebDriver:
Selenium برای کنترل مرورگر نیاز به WebDriver دارد. WebDriver مرورگر خاصی را که می‌خواهید اتوماسیون کنید، کنترل می‌کند. برای Chrome، می‌توانید ChromeDriver را دانلود کنید:

- به صفحه [دانلود ChromeDriver] بروید.
- نسخه مناسب برای مرورگر Chrome خود را دانلود کنید.
- فایل دانلود شده را از حالت فشرده خارج کنید و آن را در یک مسیر قابل دسترسی قرار دهید.

مثال: باز کردن یک صفحه وب با استفاده از ChromeDriver

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

# مسیر ChromeDriver خود را مشخص کنید
chrome_driver_path = "/path/to/chromedriver"

# ایجاد یک نمونه از مرورگر Chrome
driver = webdriver.Chrome(executable_path=chrome_driver_path)

# باز کردن یک صفحه وب
driver.get("https://www.example.com")

# انتظار برای 5 ثانیه
time.sleep(5)

# یافتن المان توسط نام تگ و ارسال کلیدهای Enter
search_box = driver.find_element(By.TAG_NAME, "h1")
search_box.send_keys(Keys.ENTER)

# بستن مرورگر
driver.quit()

توضیحات کد:
1. وارد کردن کتابخانه‌های لازم:
- webdriver: برای کنترل مرورگر
- By و Keys: برای یافتن المان‌ها و ارسال کلیدها
- time: برای تاخیر زمانی

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

3. ایجاد یک نمونه از مرورگر Chrome:
- webdriver.Chrome(executable_path=chrome_driver_path): یک نمونه از مرورگر Chrome ایجاد می‌کند.

4. باز کردن یک صفحه وب:
- driver.get("https://www.example.com"): صفحه وب مورد نظر را باز می‌کند.

5. انتظار برای 5 ثانیه:
- time.sleep(5): برای 5 ثانیه منتظر می‌ماند تا شما بتوانید صفحه را ببینید.

6. یافتن المان و ارسال کلید:
- driver.find_element(By.TAG_NAME, "h1"): المان با نام تگ h1 را پیدا می‌کند.
- search_box.send_keys(Keys.ENTER): کلید Enter را به المان ارسال می‌کند.

7. بستن مرورگر:
- driver.quit(): مرورگر را می‌بندد.

این کد یک مرورگر Chrome باز می‌کند، به صفحه https://www.example.com می‌رود، برای 5 ثانیه منتظر می‌ماند و سپس کلید Enter را به اولین المان با نام تگ h1 ارسال می‌کند و در نهایت مرورگر را می‌بندد.

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

#Python #Selenium #WebAutomation #BrowserAutomation #LearnPython #Programming #WebDriver
👍6
آموزش کد چند فرآیندی (Multiprocessing) در پایتون 🐍

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

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

مثال کد

import multiprocessing
import time

def worker(num):
"""فرآیند نمونه ای که فقط یک عدد را چاپ می‌کند."""
print(f'Worker: {num}')
time.sleep(2)

if __name__ == '__main__':
processes = []
for i in range(5):
p = multiprocessing.Process(target=worker, args=(i,))
processes.append(p)
p.start()

for p in processes:
p.join()

توضیحات:

1. ایمپورت کتابخانه‌ی multiprocessing:

   import multiprocessing
import time

2. تعریف تابع worker:
این تابع ساده، یک عدد را به عنوان ورودی می‌گیرد و آن را چاپ می‌کند و سپس به مدت ۲ ثانیه توقف می‌کند.

   def worker(num):
print(f'Worker: {num}')
time.sleep(2)

3. ایجاد و شروع فرآیندها:
در بلوک if __name__ == '__main__':، ما پنج فرآیند ایجاد کرده و آنها را با استفاده از start() آغاز میname
   if __name__ == '__main__':
processes = []
for i in range(5):
p = multiprocessing.Process(target=worker, args=(i,))
processes.append(p)
p.start()

4. منتظر ماندن برای اتمام فرآیندها:
با استفاده از join()، ما مطمئن می‌شویم که تمامی فرآیندها قبل از پایان یافتن برنامه اصلی به اتمام رسیده‌اند.

   for p in processes:
p.join()

نکات مهم
1. به اشتراک‌گذاری داده‌ها:
کتابخانه‌ی multiprocessing ابزارهایی مانند Queue, Pipe, Manager برای به اشتراک‌گذاری داده‌ها بین فرآیندها فراهم می‌کند.

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

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

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

این تکنیک می‌تواند به شما کمک کند تا برنامه‌های پیچیده و زمان‌بر خود را بهینه کنید و عملکرد بهتری را تجربه کنید. 🎉

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

#Python #Multiprocessing #Programming #ParallelComputing
👍2
استفاده از پردازش چند هسته‌ای CPU در پایتون

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

مثال ساده: پردازش همزمان وظایف ساده

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

کد:

import multiprocessing
import time

def worker(num):
"""یک وظیفه ساده که عدد ورودی را چاپ می‌کند و برای ۲ ثانیه متوقف می‌شود."""
print(f'Worker: {num}')
time.sleep(2)

if __name__ == '__main__':
processes = []
for i in range(5):
p = multiprocessing.Process(target=worker, args=(i,))
processes.append(p)
p.start()

for p in processes:
p.join()

توضیحات:
1. ایمپورت کتابخانه‌ی multiprocessing و time:
این کتابخانه‌ها برای ایجاد و مدیریت فرآیندها و توقف زمان استفاده می‌شوند.

2. تعریف تابع worker:
این تابع یک عدد را به عنوان ورودی می‌گیرد و آن را چاپ می‌کند، سپس برای ۲ ثانیه متوقف می‌شایجاد و شروع فرآیندهاآیندها:
با استفاده از multiprocessing.Process، پنج فرآیند ایجاد می‌کنیم و آنها را با استفاده از start() آغاز می‌کنمنتظر ماندن برای اتمام فرآیندهاآیندها**:
با استفاده از join()، مطمئن می‌شویم که تمامی فرآیندها قبل از پایان یافتن برنامه اصلی به اتمام رسیده‌اند.

مثال پیشرفته: استفاده از Pool برای مدیریت وظایف

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

کد:

import multiprocessing
import time

def worker(num):
"""یک وظیفه ساده که عدد ورودی را چاپ می‌کند و برای ۲ ثانیه متوقف می‌شود."""
print(f'Worker: {num}')
time.sleep(2)

if __name__ == '__main__':
with multiprocessing.Pool(processes=4) as pool:
pool.map(worker, range(10))

توضیحات:
1. ایمپورت کتابخانه‌ی multiprocessing و time:
این کتابخانه‌ها برای ایجاد و مدیریت فرآیندها و توقف زمان اتعریف تابع worker*تعریف تابع worker**:
این تابع یک عدد را به عنوان ورودی می‌گیرد و آن را چاپ می‌کند، سپس برااستفاده از Pool **استفاده از Pool**:
با استفاده از multiprocessing.Pool، یک استخر از ۴ فرآیند ایجاد می‌کنیم و از متد map برای اجرای تابع worker برای هر عدد از ۰ تا ۹ استفاده می‌کنیم.

مثال پیشرفته‌تر: استفاده از concurrent.futures برای مدیریت وظایف

کتابخانه‌ی concurrent.futures یکی دیگر از ابزارهای پایتون برای مدیریت پردازش‌های همزمان است. این کتابخانه برای ساده‌تر کردن استفاده کد: طراحی شده است.

کد:

from concurrent.futures import ProcessPoolExecutor
import time

def worker(num):
"""یک وظیفه ساده که عدد ورودی را چاپ می‌کند و برای ۲ ثانیه متوقف می‌شود."""
print(f'Worker: {num}')
time.sleep(2)

if __name__ == '__main__':
with ProcessPoolExecutor(max_workers=4) as executor:
executor.map(worker, range(10))

توضیحات:
1. ایمپورت کتابخانه‌ی concurrent.futures و time:
این کتابخانه‌ها برای ایجاد و مدیریت فرتعریف تابع worker‌شوند.

2. تعریف تابع worker:
این تابع یک عدد را به عنوان ورودی می‌گیرد و آن را چاپ می‌کند، سپساستفاده از ProcessPoolExecutorاستفاده از ProcessPoolExecutor**:
با استفاده از ProcessPoolExecutor، یک استخر از ۴ فرآیند ایجاد می‌کنیم و از متد map برای اجرای تابع worker برای هر عدد از ۰ تا ۹ استفاده می‌کنیم.

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

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

#Python #Multiprocessing #ConcurrentProgramming #ParallelComputing #ProgrammingTips
👍2
نکته‌ای جالب در مورد متغیرها در پایتون که کمتر کسی می‌داند

پایتون از روش مقادیر تعویض پذیر در سطح داخلی برای بهینه‌سازی حافظه استفاده می‌کند. این بدان معناست که برخی از اشیاء در پایتون، مانند رشته‌ها و اعداد صحیح کوچک، به صورت خودکار به اشتراک گذاشته می‌شوند. این ویژگی باعث می‌شود که دو متغیر مختلف که به یک مقدار کوچک و یا یکسان اشاره می‌کنند، در واقع به یک شیء در حافظه اشاره کنند. 😲

مثال:

a = 256
b = 256

print(a is b) # خروجی: True

c = 257
d = 257

print(c is d) # خروجی: False

در اینجا، مقدار 256 در هر دو متغیر a و b به یک شیء در حافظه اشاره می‌کنند، اما مقدار 257 اینگونه نیست.

توضیحات:
- تعویض‌پذیری اعداد کوچک:
پایتون اعداد صحیح کوچک را به صورت داخلی به اشتراک می‌گذارد (معمولاً اعداد بین -5 تا 256).
- اشتراک رشته‌ها:
رشته‌های کوتاه و ثابت نیز به صورت خودکار به اشتراک گذاشته می‌شوند.

این رفتار می‌تواند در بهینه‌سازی حافظه و همچنین درک بهتر از نحوه مدیریت حافظه در پایتون کمک کند.

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

#Python #Variables #MemoryManagement #ProgrammingTips #LearningPython
👍3
آموزش سانسور کردن و بازگرداندن سانسور یک قسمت از عکس با پایتون 📸

سانسور کردن (محو کردن) و بازگرداندن سانسور یک قسمت از عکس، یکی از تکنیک‌های کاربردی در پردازش تصویر است که می‌تواند در بسیاری از پروژه‌ها مفید باشد. در این آموزش، با استفاده از کتابخانه‌ی محبوب OpenCV یاد می‌گیریم که چگونه این کار را انجام دهیم. 🌟

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

ابتدا باید کتابخانه‌ی OpenCV را نصب کنید. اگر هنوز نصب نکرده‌اید، با اجرای دستور زیر در محیط ترمینال یا CMD می‌توانید این کار را انجام دهید:

pip install opencv-python

کد نمونه برای سانسور کردن یک قسمت از عکس 🖼️🔒

در این مثال، یک قسمت از عکس را محو (blur) می‌کنیم:

import cv2

# بارگذاری تصویر
image = cv2.imread('input_image.jpg')

# تعیین ناحیه‌ای که می‌خواهیم سانسور کنیم (x, y, عرض، ارتفاع)
x, y, w, h = 100, 100, 200, 200
roi = image[y:y+h, x:x+w]

# محو کردن ناحیه
blurred_roi = cv2.GaussianBlur(roi, (23, 23), 30)

# جایگزین کردن ناحیه محو شده در تصویر اصلی
image[y:y+h, x:x+w] = blurred_roi

# ذخیره تصویر خروجی
cv2.imwrite('censored_image.jpg', image)

# نمایش تصویر
cv2.imshow('Censored Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

🔍 توضیحات:
- بارگذاری تصویر: تصویر مورد نظر را با cv2.imread بارگذاری می‌کنیم.
- تعیین ناحیه: ناحیه‌ای که می‌خواهیم سانسور کنیم را با مختصات (x, y) و اندازه (عرض، ارتفاع) مشخص می‌کنیم.
- محو کردن ناحیه: از فیلتر Gaussian Blur برای محو کردن ناحیه استفاده می‌کنیم.
- ذخیره و نمایش تصویر: تصویر محو شده را ذخیره و نمایش می‌دهیم.

کد نمونه برای بازگرداندن ناحیه اصلی 🌈🔓

در این مثال، ناحیه سانسور شده را با ناحیه اصلی جایگزین می‌کنیم:

import cv2
import numpy as np

# بارگذاری تصویر اصلی و تصویر سانسور شده
original_image = cv2.imread('input_image.jpg')
censored_image = cv2.imread('censored_image.jpg')

# تعیین ناحیه‌ای که سانسور شده (x, y, عرض، ارتفاع)
x, y, w, h = 100, 100, 200, 200

# بازگرداندن ناحیه اصلی
censored_image[y:y+h, x:x+w] = original_image[y:y+h, x:x+w]

# ذخیره تصویر خروجی
cv2.imwrite('restored_image.jpg', censored_image)

# نمایش تصویر
cv2.imshow('Restored Image', censored_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

🔍 توضیحات:
- بارگذاری تصاویر: تصویر اصلی و تصویر سانسور شده را بارگذاری می‌کنیم.
- بازگرداندن ناحیه اصلی: ناحیه محو شده را با ناحیه اصلی از تصویر اصلی جایگزین می‌کنیم.
- ذخیره و نمایش تصویر: تصویر بازگردانده شده را ذخیره و نمایش می‌دهیم.

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

#Python #OpenCV #ImageProcessing #Coding #Tutorial
👍21
🖤🌹 تسلیت عاشورای حسینی 🌹🖤

یا حسین مظلوم... 🥀

باز این چه شورش است که در خلق عالم است
باز این چه نوحه و چه عزا و چه ماتم است

محرم که می‌آید، دلمان با یاد حسین (ع) و یاران وفادارش آرام می‌گیرد و اشک‌هایمان همچون رودخانه‌ای بی‌انتها جاری می‌شوند. 💔

یا حسین، نام تو مرهم دل‌های دردمند است و یاد تو، آرامش‌بخش جان‌های خسته. 🙏

🔸دریغا که روز عاشورا، روزی که آسمان و زمین بر مظلومیت تو گریستند، روزی که خیل عشاق در کنار تو به ابدیت پیوستند، فرا رسید.🔸

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

در این روزهای سوگواری، با تمام دل‌هایمان تسلیت می‌گوییم و آرزو می‌کنیم که راه تو را ادامه دهیم و پیام تو را زنده نگه داریم.

نوای حزین ما، سلامی است به شهدای کربلا:
"ای اهل حرم میر و علمدار نیامد،
سقای حسین سید و سالار نیامد." 🕊

اللهم عجل لولیک الفرج
7👍2👎1
👍73👎2
صبح بخیر ⚡️
5
آموزش ساخت برنامه تبدیل متن به گفتار (Text-to-Speech) با پایتون 🗣️💻

در این آموزش، نحوه‌ی ساخت یک برنامه تبدیل متن به گفتار (Text-to-Speech) با استفاده از زبان برنامه‌نویسی پایتون و کتابخانه‌ی gTTS را به شما آموزش می‌دهیم. این برنامه می‌تواند به صورت صوتی متن‌های شما را بخواند و یک فایل صوتی ایجاد کند. 🎤🔊

نصب کتابخانه gTTS 📦

ابتدا باید کتابخانه‌ی gTTS (Google Text-to-Speech) را نصب کنید. برای این کار، می‌توانید از دستور زیر در محیط ترمینال یا CMD استفاده کنید:

pip install gtts

کد نمونه برای تبدیل متن به گفتار 📝🔊

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

from gtts import gTTS
import os

# متنی که می‌خواهید به گفتار تبدیل شود
text = "Hello, welcome to our Python Text-to-Speech tutorial!"

# ایجاد شیء gTTS
tts = gTTS(text=text, lang='en')

# ذخیره فایل صوتی
tts.save("speech.mp3")

# پخش فایل صوتی
os.system("start speech.mp3")

🔍 توضیحات:
- وارد کردن کتابخانه‌ها: ابتدا کتابخانه‌های gTTS و os را وارد می‌کنیم.
- تعریف متن: متنی که می‌خواهید به گفتار تبدیل شود را در متغیری ذخیره کنید.
- ایجاد شیء gTTS: یک شیء از کلاس gTTS ایجاد می‌کنیم و متن و زبان مورد نظر را به آن می‌دهیم.
- ذخیره فایل صوتی: فایل صوتی را با فرمت mp3 ذخیره می‌کنیم.
- پخش فایل صوتی: با استفاده از دستور os.system فایل صوتی را پخش می‌کنیم.

تنظیمات پیشرفته 🛠️

می‌توانید زبان، سرعت گفتار و سایر تنظیمات را نیز تغییر دهید:

from gtts import gTTS
import os

text = "Bonjour, bienvenue dans notre tutoriel de conversion de texte en parole avec Python!"
language = 'fr'
slow = False # True برای گفتار آهسته‌تر

tts = gTTS(text=text, lang=language, slow=slow)
tts.save("speech_fr.mp3")
os.system("start speech_fr.mp3")

🔍 توضیحات:
- تغییر زبان: زبان گفتار را می‌توانید با تغییر مقدار lang تنظیم کنید (مثلاً 'fr' برای فرانسوی).
- سرعت گفتار: با تنظیم مقدار slow به True، سرعت گفتار آهسته‌تر خواهد شد.

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

#Python #TextToSpeech #gTTS #Coding #Tutorial
👍3
آموزش ساخت یک ماشین حساب با رابط کاربری ساده با استفاده از Tkinter

در این آموزش، نحوه‌ی ساخت یک ماشین حساب ساده با استفاده از کتابخانه‌ی Tkinter در پایتون را به شما آموزش می‌دهیم. این پروژه مناسب برای مبتدیانی است که می‌خواهند با مفاهیم پایه‌ای رابط کاربری (GUI) و برنامه‌نویسی شیءگرا در پایتون آشنا شوند. 🌟

نصب Tkinter

Tkinter به طور پیش‌فرض با نصب پایتون ارائه می‌شود، بنابراین نیازی به نصب جداگانه‌ی آن ندارید.

کد ماشین حساب

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

import tkinter as tk

class Calculator:
def __init__(self, root):
self.root = root
self.root.title("Simple Calculator")
self.root.geometry("400x500")

self.result_var = tk.StringVar()

self.create_widgets()

def create_widgets(self):
result_entry = tk.Entry(self.root, textvariable=self.result_var, font=('Arial', 24), bd=10, insertwidth=2, width=14, borderwidth=4)
result_entry.grid(row=0, column=0, columnspan=4)

buttons = [
'7', '8', '9', '/', '4', '5', '6', '*', '1', '2', '3', '-', '0', '.', '=', '+'
]

row_val = 1
col_val = 0

for button in buttons:
tk.Button(self.root, text=button, padx=20, pady=20, font=('Arial', 18), command=lambda btn=button: self.on_button_click(btn)).grid(row=row_val, column=col_val)
col_val += 1
if col_val > 3:
col_val = 0
row_val += 1

def on_button_click(self, char):
if char == '=':
try:
result = str(eval(self.result_var.get()))
self.result_var.set(result)
except:
self.result_var.set("Error")
elif char == 'C':
self.result_var.set("")
else:
current_text = self.result_var.get()
new_text = current_text + str(char)
self.result_var.set(new_text)

if __name__ == "__main__":
root = tk.Tk()
calc = Calculator(root)
root.mainloop()

توضیحات کد 📜

- تعریف کلاس Calculator: کلاس Calculator شامل متدهای مختلفی است که رابط کاربری و عملکرد ماشین حساب را مدیریت می‌کنند.
- ایجاد ویجت‌ها: ویجت‌های مختلفی از جمله Entry برای نمایش نتیجه و دکمه‌ها برای ورودی اعداد و عملیات‌ها ایجاد می‌شوند.
- متد on_button_click: این متد برای مدیریت کلیک دکمه‌ها استفاده می‌شود. اگر دکمه‌ی '=' فشرده شود، عملیات محاسباتی انجام می‌شود و نتیجه نمایش داده می‌شود. اگر دکمه‌ی 'C' فشرده شود، ورودی پاک می‌شود.

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

### #پایتون #برنامه‌نویسی #آموزش #ماشین_حساب #رابط_کاربری #Tkinter
👍4
Forwarded from گوربه
اخبار مهم امروز دنیای پایتون 🐍📰

1. پایتون در صدر محبوب‌ترین زبان‌های برنامه‌نویسی 🎉
طبق گزارش جدید شاخص TIOBE برای جولای ۲۰۲۴، پایتون همچنان به عنوان محبوب‌ترین زبان برنامه‌نویسی جهان باقی مانده است. پس از پایتون، زبان‌های C و C++ در رتبه‌های دوم و سوم قرار دارند.

2. انتشار ابزار جدید 'uv' توسط Astral 🚀
شرکت Astral که به خاطر ابزار Ruff شناخته می‌شود، یک ابزار جدید به نام 'uv' معرفی کرده است. این ابزار با الهام از Cargo (ابزار مدیریت پکیج در Rust) طراحی شده و به عنوان جایگزینی سریع‌تر و کاربرپسندتر برای pip و pip-tools عمل می‌کند.

3. بهبود امنیت پایتون با SBOMs 🔐
در نسخه‌های آینده پایتون، علاوه بر توزیع‌های منبعی، SBOM (Bill of Materials) نیز برای نصاب‌های پایتون در پلتفرم‌های مختلف ارائه خواهد شد. این حرکت به افزایش امنیت پایتون کمک شایانی خواهد کرد.

4. انتشار Python 3.12.0b4 🆕
نسخه بتای جدید پایتون 3.12.0b4 منتشر شده است. این نسخه شامل بهبودهای متعددی در زمینه عملکرد و پشتیبانی از ویژگی‌های جدید است. کاربران می‌توانند این نسخه را دانلود و تست کنند تا مشکلات احتمالی قبل از انتشار نسخه نهایی شناسایی شوند.

5. برگزاری کنفرانس PyCon APAC 2024 🌏
کنفرانس PyCon APAC 2024 در سنگاپور برگزار خواهد شد. این رویداد فرصتی مناسب برای برنامه‌نویسان پایتون در منطقه آسیا-پاسیفیک است تا با جدیدترین تکنولوژی‌ها و روندهای حوزه پایتون آشنا شوند.

6. افزایش تعداد پروژه‌های متن‌باز پایتون 🌐
تعداد پروژه‌های متن‌باز نوشته شده با پایتون در GitHub به طور چشمگیری افزایش یافته است. این افزایش نشان‌دهنده رشد جامعه برنامه‌نویسان پایتون و محبوبیت روزافزون این زبان برنامه‌نویسی است.

7. ابزارهای جدید برای بهبود فرآیند تست در پایتون
ابزارهای جدیدی برای بهبود فرآیند تست نرم‌افزارهای نوشته شده با پایتون معرفی شده‌اند. این ابزارها به برنامه‌نویسان کمک می‌کنند تا کدهای خود را به صورت مؤثرتری تست و ارزیابی کنند.

این اخبار نشان‌دهنده رشد و تحولات مثبت در جامعه پایتون است و نشان می‌دهد که این زبان برنامه‌نویسی همچنان در حال پیشرفت و جلب توجه برنامه‌نویسان در سراسر جهان است. 🌍📈

🔻برای بیشتر یاد گرفتن بیا اینجا
👍1
Forwarded from گوربه
# بارگذاری فایل XML
tree = etree.parse('example.xml')

# اعمال تغییرات XSLT به فایل XML
new_tree = transform(tree)

# نمایش XML جدید به صورت زیبا
print(etree.tostring(new_tree, pretty_print=True).decode())

🔍 توضیحات: این کد یک فایل XML را با استفاده از XSLT تغییر داده و نتیجه را نمایش می‌دهد.


10. تغییر تگ‌ها و ویژگی‌ها 🛠️
تغییر تگ‌ها و ویژگی‌ها در یک فایل XML:

from lxml import etree

# بارگذاری فایل XML
tree = etree.parse('example.xml')
root = tree.getroot()

# تکرار روی تمامی عناصر با نام تگ مشخص شده
for element in root.iter('tag_name'):
# تغییر نام تگ
element.tag = 'new_tag'

# اضافه کردن ویژگی جدید
element.set('new_attribute', 'value')

# ذخیره فایل XML تغییر یافته
tree.write('modified.xml', pretty_print=True)

🔍 توضیحات: این کد تگ‌ها و ویژگی‌های یک فایل XML را تغییر داده و نتیجه را در یک فایل ذخیره می‌کند.


11. حذف تگ‌ها
حذف تگ‌ها از یک فایل XML:

from lxml import etree

# بارگذاری فایل XML
tree = etree.parse('example.xml')
root = tree.getroot()

# پیدا کردن و حذف تمامی عناصر با نام تگ مشخص شده
for element in root.findall('tag_name'):
root.remove(element)

# ذخیره فایل XML بدون تگ‌های مشخص شده
tree.write('cleaned.xml', prettyتوضیحات:

🔍 توضیحات: این کد تگ‌های مشخص شده را از یک فایل XML حذف کرده و نتیجه را در یک فایل ذخیره می‌کند.


12. تبدیل XML به دیکشنری📚
تبدیل یک فایل XML به دیکشنری پایتون:

from lxml import etree

# تعریف تابع تبدیل XML به دیکشنری
def xml_to_dict(element):
return {element.tag: {child.tag: xml_to_dict(child) for child in element} or element.text}

# بارگذاری فایل XML
tree = etree.parse('example.xml')
root = tree.getroot()

# تبدیل XML به دیکشنری
data_dict = xml_to_dict(root)
prتوضیحات:t)

🔍 توضیحات: این کد یک فایل XML را به دیکشنری پایتون تبدیل کرده و نتیجه را نمایش می‌دهد.

این آموزش به شما نشان داد که چگونه می‌توانید از کتابخانه lxml برای کار با XML و HTML استفاده کنید. امیدوارم این مثال‌ها برای شما مفید بوده باشد! 🌟

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

#Python #lxml #Coding #ProgrammingTips #Tech #XML #HTML
👍1
Forwarded from گوربه
کدهای کاربردی با کتابخانه lxml در پایتون🐍

کتابخانه lxml یکی از ابزارهای قدرتمند برای پردازش XML و HTML در پایتون است. این کتابخانه امکانات زیادی را برای استخراج، تغییر و اعتبارسنجی داده‌ها فراهم می‌کند. در ادامه ۱۲ مثال کاربردی با استفاده از این کتابخانه آورده شده است که می‌تواند برای برنامه‌نویسان بسیار مفید باشد. 1. پارس کردن یک فایل XML 📄
پارس کردن فایل XML و نمایش محتوای آن:
from lxml import etree

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

2. پارس کردن یک رشته XML📝
پارس کردن یک رشته XML و نمایش محتوای آن:
from lxml import etree

xml_data = '<root><child>data</child></root>'
root = etree.fromstring(xml_data)
print(etree.tostring(root, pretty_print=True).decode())

3. استخراج مقادیر تگ‌ها 🔍
استخراج مقادیر تگ‌ها از یک فایل XML:
from lxml import etree

tree = etree.parse('example.xml')
for element in tree.iter('tag_name'):
print(element.text)

4. اضافه کردن تگ جدید به XML
ایجاد و اضافه کردن تگ جدید به یک فایل XML:
from lxml import etree

root = etree.Element("root")
child = etree.SubElement(root, "child")
child.text = "data"
tree = etree.ElementTree(root)
tree.write("output.xml", pretty_print=True)

5. جستجو با XPath 🔎
جستجو در فایل XML با استفاده از XPath:
from lxml import etree

tree = etree.parse('example.xml')
result = tree.xpath('//tag_name')
for element in result:
print(etree.tostring(element, pretty_print=True).decode())

6. اعتبارسنجی XML با DTD
اعتبارسنجی XML با استفاده از DTD:
from lxml import etree

dtd = etree.DTD('example.dtd')
tree = etree.parse('example.xml')
is_valid = dtd.validate(tree)
print(is_valid)

7. ایجاد یک HTML ساده🌐
ایجاد یک فایل HTML ساده با استفاده از lxml:
from lxml import etree, html

root = html.Element("html")
body = html.SubElement(root, "body")
p = html.SubElement(body, "p")
p.text = "Hello, world!"
tree = html.ElementTree(root)
tree.write("output.html", pretty_print=True)

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

page = html.parse('example.html')
links = page.xpath('//a/@href')
print(links)

9. استفاده از XSLT برای تغییر XML 🔄
تغییر XML با استفاده از XSLT:
from lxml import etree

xslt_root = etree.parse('transform.xslt')
transform = etree.XSLT(xslt_root)
tree = etree.parse('example.xml')
new_tree = transform(tree)
print(etree.tostring(new_tree, pretty_print=True).decode())

10. تغییر تگ‌ها و ویژگی‌ها 🛠️
تغییر تگ‌ها و ویژگی‌ها در یک فایل XML:
from lxml import etree

tree = etree.parse('example.xml')
root = tree.getroot()
for element in root.iter('tag_name'):
element.tag = 'new_tag'
element.set('new_attribute', 'value')
tree.write('modified.xml', pretty_print=True)

11. حذف تگ‌ها
حذف تگ‌ها از یک فایل XML:

from lxml import etree

tree = etree.parse('example.xml')
root = tree.getroot()
for element in root.findall('tag_name'):
root.remove(element)
tree.write('cleaned.xml', pretty_print=True)

12. تبدیل XML به دیکشنری 📚
تبدیل یک فایل XML به دیکشنری پایتون:

from lxml import etree

def xml_to_dict(element):
return {element.tag: {child.tag: xml_to_dict(child) for child in element} or element.text}

tree = etree.parse('example.xml')
root = tree.getroot()
data_dict = xml_to_dict(root)
print(data_dict)

این کدها نمونه‌هایی از استفاده‌های مختلف از کتابخانه lxml هستند که می‌توانید در پروژه‌های خود از آن‌ها بهره ببرید. 🌟

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

#Python #lxml #Coding #ProgrammingTips #Tech #XML #HTML
👍1
Forwarded from گوربه
دانستنی جالب از تاریخ کامپیوتر: ماشین محاسباتی "Colossus" 🤖🖥️

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

نکات جالب درباره Colossus:
1. رمزگشایی Enigma: این دستگاه برای شکستن رمزهای دستگاه Enigma که توسط نازی‌ها برای ارسال پیام‌های مخفی استفاده می‌شد، طراحی شده بود. 🔐
2. تکنولوژی پیشرفته برای زمان خود: Colossus از لوله‌های خلاء (vacuum tubes) برای پردازش داده‌ها استفاده می‌کرد و از این نظر، بسیار پیشرفته‌تر از دیگر تجهیزات زمان خود بود. ⚙️
3. سری بودن: این ماشین محاسباتی به صورت سری و با استفاده از نوارهای کاغذی که حاوی اطلاعات رمزنگاری شده بودند، کار می‌کرد. 📝
4. توسعه سریع: اولین نسخه Colossus در سال 1943 طراحی و ساخته شد و تا پایان جنگ جهانی دوم، ده نسخه دیگر از این ماشین ساخته شد. 🛠️
👍3
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