Python3
200 subscribers
100 photos
6 videos
26 files
518 links
🎓 آموزش و پروژه‌های Python
آموزش‌های کاربردی و پروژه‌های عملی Python برای همه سطوح. 🚀
Download Telegram
صبح بخیر ⚡️
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
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