آموزش ساخت برنامه تبدیل متن به گفتار (Text-to-Speech) با پایتون 🗣️💻
در این آموزش، نحوهی ساخت یک برنامه تبدیل متن به گفتار (Text-to-Speech) با استفاده از زبان برنامهنویسی پایتون و کتابخانهی gTTS را به شما آموزش میدهیم. این برنامه میتواند به صورت صوتی متنهای شما را بخواند و یک فایل صوتی ایجاد کند. 🎤🔊
نصب کتابخانه gTTS 📦
ابتدا باید کتابخانهی gTTS (Google Text-to-Speech) را نصب کنید. برای این کار، میتوانید از دستور زیر در محیط ترمینال یا CMD استفاده کنید:
کد نمونه برای تبدیل متن به گفتار 📝🔊
در این مثال، متن دلخواه شما به زبان انگلیسی به فایل صوتی تبدیل میشود:
🔍 توضیحات:
- وارد کردن کتابخانهها: ابتدا کتابخانههای gTTS و os را وارد میکنیم.
- تعریف متن: متنی که میخواهید به گفتار تبدیل شود را در متغیری ذخیره کنید.
- ایجاد شیء gTTS: یک شیء از کلاس gTTS ایجاد میکنیم و متن و زبان مورد نظر را به آن میدهیم.
- ذخیره فایل صوتی: فایل صوتی را با فرمت mp3 ذخیره میکنیم.
- پخش فایل صوتی: با استفاده از دستور os.system فایل صوتی را پخش میکنیم.
تنظیمات پیشرفته 🛠️✨
میتوانید زبان، سرعت گفتار و سایر تنظیمات را نیز تغییر دهید:
🔍 توضیحات:
- تغییر زبان: زبان گفتار را میتوانید با تغییر مقدار
- سرعت گفتار: با تنظیم مقدار
🔻برای بیشتر یاد گرفتن بیا اینجا
#Python #TextToSpeech #gTTS #Coding #Tutorial
در این آموزش، نحوهی ساخت یک برنامه تبدیل متن به گفتار (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 به طور پیشفرض با نصب پایتون ارائه میشود، بنابراین نیازی به نصب جداگانهی آن ندارید.
کد ماشین حساب
در این مثال، یک ماشین حساب ساده با قابلیت جمع، تفریق، ضرب و تقسیم ساخته میشود.
توضیحات کد 📜
- تعریف کلاس Calculator: کلاس Calculator شامل متدهای مختلفی است که رابط کاربری و عملکرد ماشین حساب را مدیریت میکنند.
- ایجاد ویجتها: ویجتهای مختلفی از جمله Entry برای نمایش نتیجه و دکمهها برای ورودی اعداد و عملیاتها ایجاد میشوند.
- متد on_button_click: این متد برای مدیریت کلیک دکمهها استفاده میشود. اگر دکمهی '=' فشرده شود، عملیات محاسباتی انجام میشود و نتیجه نمایش داده میشود. اگر دکمهی 'C' فشرده شود، ورودی پاک میشود.
🔻برای بیشتر یاد گرفتن بیا اینجا
### #پایتون #برنامهنویسی #آموزش #ماشین_حساب #رابط_کاربری #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. پایتون در صدر محبوبترین زبانهای برنامهنویسی 🎉
طبق گزارش جدید شاخص 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. ابزارهای جدید برای بهبود فرآیند تست در پایتون ✅
ابزارهای جدیدی برای بهبود فرآیند تست نرمافزارهای نوشته شده با پایتون معرفی شدهاند. این ابزارها به برنامهنویسان کمک میکنند تا کدهای خود را به صورت مؤثرتری تست و ارزیابی کنند.
این اخبار نشاندهنده رشد و تحولات مثبت در جامعه پایتون است و نشان میدهد که این زبان برنامهنویسی همچنان در حال پیشرفت و جلب توجه برنامهنویسان در سراسر جهان است. 🌍📈
🔻برای بیشتر یاد گرفتن بیا اینجا
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
👍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
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
👍1
Forwarded from گوربه
کدهای کاربردی با کتابخانه
کتابخانه
پارس کردن فایل XML و نمایش محتوای آن:
2. پارس کردن یک رشته XML📝
پارس کردن یک رشته XML و نمایش محتوای آن:
3. استخراج مقادیر تگها 🔍
استخراج مقادیر تگها از یک فایل XML:
4. اضافه کردن تگ جدید به XML ➕
ایجاد و اضافه کردن تگ جدید به یک فایل XML:
5. جستجو با XPath 🔎
جستجو در فایل XML با استفاده از XPath:
6. اعتبارسنجی XML با DTD ✅
اعتبارسنجی XML با استفاده از DTD:
7. ایجاد یک HTML ساده🌐
ایجاد یک فایل HTML ساده با استفاده از lxml:
8. استخراج لینکها از یک صفحه HTML 🔗
استخراج تمام لینکها از یک صفحه HTML:
9. استفاده از XSLT برای تغییر XML 🔄
تغییر XML با استفاده از XSLT:
10. تغییر تگها و ویژگیها 🛠️
تغییر تگها و ویژگیها در یک فایل XML:
11. حذف تگها ❌
حذف تگها از یک فایل XML:
12. تبدیل XML به دیکشنری 📚
تبدیل یک فایل XML به دیکشنری پایتون:
این کدها نمونههایی از استفادههای مختلف از کتابخانه
🔻برای بیشتر یاد گرفتن بیا اینجا
#Python #lxml #Coding #ProgrammingTips #Tech #XML #HTML
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
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
👍1
Forwarded from گوربه
دانستنی جالب از تاریخ کامپیوتر: ماشین محاسباتی "Colossus" 🤖🖥️
شاید شنیده باشید که اولین کامپیوتر الکترونیکی جهان، "Colossus" نام داشت و در طول جنگ جهانی دوم توسط بریتانیاییها برای رمزگشایی پیامهای آلمانی استفاده میشد. اما یک نکته جالب درباره این کامپیوتر هست که کمتر کسی از آن اطلاع دارد: "Colossus" بیشتر از آنکه یک کامپیوتر دیجیتال معمولی باشد، یک ماشین محاسباتی ویژه برای تحلیل رمزهای دشمن بود.
نکات جالب درباره Colossus:
1. رمزگشایی Enigma: این دستگاه برای شکستن رمزهای دستگاه Enigma که توسط نازیها برای ارسال پیامهای مخفی استفاده میشد، طراحی شده بود. 🔐
2. تکنولوژی پیشرفته برای زمان خود: Colossus از لولههای خلاء (vacuum tubes) برای پردازش دادهها استفاده میکرد و از این نظر، بسیار پیشرفتهتر از دیگر تجهیزات زمان خود بود. ⚙️
3. سری بودن: این ماشین محاسباتی به صورت سری و با استفاده از نوارهای کاغذی که حاوی اطلاعات رمزنگاری شده بودند، کار میکرد. 📝
4. توسعه سریع: اولین نسخه Colossus در سال 1943 طراحی و ساخته شد و تا پایان جنگ جهانی دوم، ده نسخه دیگر از این ماشین ساخته شد. 🛠️
شاید شنیده باشید که اولین کامپیوتر الکترونیکی جهان، "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
🔴 این بخش اوله ، از چنلش حمایت
کنید تا بقیه بخش هارو هم بزاره
➖ این دوره یه استاد معروف خارجیه
➖ زیرنویس فارسی داره
🟡 منبع : Matrix Py
🔴 این بخش اوله ، از چنلش حمایت
کنید تا بقیه بخش هارو هم بزاره
👍4❤2
(معرفی 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
مقدمه:
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
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
👍2
Forwarded from گوربه
پردازش موازی پیشرفته در پایتون: استفاده از
مقدمه:
برای توسعهدهندگان سطح سینیور که به دنبال بهینهسازی کد و افزایش کارایی برنامههای خود هستند، پردازش موازی میتواند یک ابزار قدرتمند باشد. یکی از کتابخانههای داخلی پایتون که این امکان را فراهم میکند،
پردازش موازی با
ایجاد و اجرای وظایف موازی:ابتدا باید
2. مزایای استفاده از
برای استفاده پیشرفتهتر از
فواید:افزایش کارایی:پردازش موازی میتواند به طور چشمگیری کارایی برنامهها را افزامدیریت آسان وظایف: استفاده از
برای دریافت آموزشهای بیشتر و نکات پیشرفته در زمینه برنامهنویسی، حتماً به کانال تلگرام ما بپیوندید! 💻📱
#Python #Concurrency #ParallelProcessing #AdvancedPython #ProgrammingTips #CodeOptimization
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
مدیریت فایلها با
مقدمه:
مدیریت فایلها و دایرکتوریها یکی از مهارتهای اساسی برای هر برنامهنویس پایتون است. دو ماژول مهم و کاربردی که در این زمینه استفاده میشوند،
مدیریت دایرکتوریها:
1. ایجاد دایرکتوری:
با استفاده از تابع
2. حذف دایرکتوری:
برای حذف یک دایرکتوری خالی، از تابع
3. ایجاد مسیرهای چندگانه:
برای ایجاد مسیرهای چندگانه، از
مدیریت فایلها:
1. ایجاد فایل:
برای ایجاد یک فایل جدید و نوشتن در آن، میتوانید از تابع
2. حذف فایل:
برای حذف یک فایل، از
3. جابجایی و کپی فایلها:
ماژول
کاربردهای پیشرفته:
ماژولهای
فواید و معایب:
- فواید:
- مدیریت آسان: ماژولهای
- قابلیتهای پیشرفته: این ماژولها قابلیتهای پیشرفتهای را برای کار با سیستم فایل فراهم میکنند.
- معایب:
- سازگاری سیستمعامل: برخی توابع ممکن است در سیستمعاملهای مختلف رفتار متفاوتی داشته باشند.
- پیچیدگی کد: استفاده نادرست از این ماژولها میتواند منجر به پیچیدگی و خطاهای غیرمنتظره در کد شود.
برای یادگیری بیشتر در مورد برنامهنویسی پایتون و نکات پیشرفته، به کانال تلگرام ما بپیوندید!
#Python #FileManagement #OSModule #Shutil #ProgrammingTips #CodeOptimization #AdvancedPython
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 یک فریمورک وب ناهمزمان و بسیار سریع است که برای برنامههای وب مقیاسپذیر طراحی شده است. این فریمورک به شما امکان میدهد برنامههای وب با کارایی بالا بسازید.
- مزایا: سرعت بالا، ناهمزمانی.
- معایب: پیچیدگی در مدیریت ناهمزمانی، مستندات پیچیده.
برای یادگیری بیشتر در مورد برنامهنویسی پایتون و نکات پیشرفته، به کانال تلگرام ما بپیوندید!
#پایتون #فریمورک #برنامهنویسی #توسعه_وب #آموزش
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 یک فریمورک وب ناهمزمان و بسیار سریع است که برای برنامههای وب مقیاسپذیر طراحی شده است. این فریمورک به شما امکان میدهد برنامههای وب با کارایی بالا بسازید.
- مزایا: سرعت بالا، ناهمزمانی.
- معایب: پیچیدگی در مدیریت ناهمزمانی، مستندات پیچیده.
برای یادگیری بیشتر در مورد برنامهنویسی پایتون و نکات پیشرفته، به کانال تلگرام ما بپیوندید!
#پایتون #فریمورک #برنامهنویسی #توسعه_وب #آموزش
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
👍2
پردازش تصاویر پیشرفته با OpenCV در پایتون
در این آموزش، به بررسی نحوهی پردازش تصاویر با استفاده از کتابخانهی OpenCV در پایتون میپردازیم. این تکنیکها به شما کمک میکند تا برنامههای پیچیدهتری برای ویرایش و تحلیل تصاویر ایجاد کنید.
تشخیص لبهها در تصاویر با استفاده از الگوریتم Canny
1. وارد کردن کتابخانههای لازم:
در این مرحله کتابخانههای OpenCV، NumPy و Matplotlib را برای کار با تصاویر و نمایش آنها وارد میکنیم.
2. خواندن تصویر:
این خط کد تصویر ورودی را به صورت خاکستری میخواند. در اینجا
3. اعمال فیلتر گوسی برای کاهش نویز:
فیلتر گوسی برای کاهش نویز تصویر استفاده میشود. این مرحله بسیار مهم است زیرا نویزها میتوانند روی نتیجهی تشخیص لبهها تأثیر منفی بگذارند.
4. تشخیص لبهها با استفاده از الگوریتم Canny:
این خط کد الگوریتم Canny را برای تشخیص لبهها در تصویر به کار میبرد. مقادیر 100 و 200 مقادیر آستانه پایین و بالا برای الگوریتم Canny هستند.
5. نمایش تصویر اصلی و تصویر لبهیابی شده:
این بخش از کد دو تصویر را به صورت مجزا نمایش میدهد: تصویر اصلی و تصویر لبهیابی شده. این کار با استفاده از کتابخانهی Matplotlib انجام میشود.
برای یادگیری بیشتر در مورد برنامهنویسی پایتون و نکات پیشرفته، به کانال تلگرام ما بپیوندید!
#برنامه_نویسی #پایتون #پردازش_تصویر #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
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
👍2
ساخت صفحه نقاشی با پایتون
در این آموزش، قصد داریم یک صفحه نقاشی با قابلیت انتخاب ۶ رنگ مختلف و یک پاک کن ایجاد کنیم. از کتابخانههای داخلی پایتون مانند
کد برنامه
توضیح
1. وارد کردن کتابخانههای لازم:
در این بخش، کتابخانه
2. تعریف کلاس PaintApp:
در این کلاس، پنجره اصلی و بوم نقاشی تعریف شدهاند.
3. ساخت بوم نقاشی:
بوم نقاشی با رنگ پسزمینه سفید و ابعاد 800x600 ایجاد شده است.
4. ساخت دکمههای رنگ:
این تابع دکمههای رنگ را ایجاد و به قاب مربوطه اضافه میکند.
5. تغییر رنگ و استفاده از پاک کن:
این توابع برای تغییر رنگ قلم و استفاده از پاک کن تعریف شدهاند.
6. نقاشی روی بوم:
این توابع برای فعالسازی نقاشی و رسم خطوط روی بوم تعریف شدهاند.
با اجرای این کد، یک صفحه نقاشی ساده با قابلیت انتخاب ۶ رنگ مختلف و یک پاک کن ایجاد میشود. این پروژه میتواند به عنوان یک تمرین خوب برای یادگیری مفاهیم پایهای
برای یادگیری بیشتر در مورد برنامهنویسی پایتون و نکات پیشرفته، به کانال تلگرام ما بپیوندید!
#Python #tkinter #GUI #Programming
در این آموزش، قصد داریم یک صفحه نقاشی با قابلیت انتخاب ۶ رنگ مختلف و یک پاک کن ایجاد کنیم. از کتابخانههای داخلی پایتون مانند
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
سلام به همه علاقهمندان به پایتون! امروز با هفت خبر مهم در دنیای پایتون در خدمت شما هستیم. 🐍
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 استفاده کنید:
2. خواندن یک فایل XML
3. استخراج اطلاعات از یک فایل HTML
4. ساخت یک سند XML جدید
5. ویرایش یک سند XML
6. تبدیل XML به JSON
7. بررسی اعتبار سنجی XML با استفاده از یک DTD
8. جستجو در یک سند XML با XPath
9. استخراج لینکها از یک صفحه HTML
10. افزودن عناصر به یک سند XML
این کدها میتوانند در پروژههای مختلف برای پردازش و مدیریت اسناد XML و HTML مورد استفاده قرار گیرند.
🔻بیا اینجا تا بیشتر یاد بگیری🔻
#پایتون #lxml #برنامهنویسی #آموزش_پایتون #python
کتابخانه 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 آن را نصب کنید:
نوشتن اولین تست با PyTest
برای نوشتن تستها در PyTest، کافی است که توابع تست خود را با
در این مثال، دو تابع تست ساده نوشتهایم. برای اجرای این تستها، کافی است در خط فرمان دستور زیر را اجرا کنید:
PyTest به صورت خودکار فایلهای تست شما را پیدا کرده و آنها را اجرا میکند.
استفاده از pytest.fixture
در PyTest، میتوانید از قابلیت fixtures برای آمادهسازی پیششرطها و تمیز کردن بعد از تستها استفاده کنید. به مثال زیر توجه کنید:
در این مثال، یک fixture به نام
گزارشدهی PyTest
یکی از ویژگیهای قدرتمند PyTest، قابلیت گزارشدهی آن است. با استفاده از پلاگینها میتوانید گزارشهای مختلفی از نتایج تستها دریافت کنید. برای نصب پلاگین گزارشدهی، میتوانید از دستور زیر استفاده کنید:
سپس میتوانید با استفاده از دستور زیر، یک گزارش HTML از نتایج تستهای خود تولید کنید:
ادامه دارد...
در بخش دوم این آموزش، به مباحث پیشرفتهتری همچون پارامتری کردن تستها، تستهای مقیاسپذیر، و دیگر قابلیتهای قدرتمند PyTest خواهیم پرداخت.
🔻بیا اینجا تا بیشتر یاد بگیری🔻
#پایتون #PyTest #آموزش_پایتون #برنامهنویسی #تست_نرمافزار #python
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