پایتون فارسی(PyCore)
228 subscribers
205 photos
105 videos
57 files
243 links
🐉پایتون فارسی
🚀آموزش و اخبار دنیای تکنولوژی
Download Telegram
💻 پروژه های جنگو برای رزومه

🔴🔻فروشگاه اینترنتی
🔴💻مدیریت محتوا و بلاگ
🔴🌐شبکه اجتماعی
🔴🖥️ کاریابی
🔴📱آموزش آنلاین
🔴💸خرید بلیط و گردشگری
🔴👽پرسش و پاسخ 🔢مثل هوش مصنوعی🔢

#SADRA_K
🐍 @persians_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👌2
پایتون مقدماتی.pdf
1.7 MB
پایتون مقدماتی
نویسنده : فلاح


ارسال شده : محمد شفیعی
@persians_python
👌3👍1
گوگل هوش مصنوعی ابداع کرده است که می تواند بیماری را با سرفه تشخیص دهد

محققان یک شبکه عصبی را بر روی صداهای سرفه برای بیماری های مختلف آموزش دادند و اکنون قادر به تشخیص فوری COVID-19، سل و سایر بیماری ها هستند.

این پروژه در حال حاضر در مرحله آزمایش است و برنامه‌های بیشتری برای کسب مجوز از مقامات ایالات
متحده و ورود به بازار انبوه دارد.‌‌

https://cybernews.com/news/google-ai-system-cough-disease-diagnosis/

#M_Sh
@persians_python
👎3
💸💵درآمدزایی از کانال تلگرام فعال شد.📣

50 درصد از هزینه تبلیغات از طریق ارز دیجیتال 💎 TON به کیف پول شما واریز می‌شه.

❗️کانالتون باید بالای 1000 تا سابسکرایبر داشته باشه.

📊 برای دیدن آمار درآمدزایی تلگرامتون رو آپدیت کنید، وارد تنظیمات کانال تلگرامتون بشید، statistics رو بزنید و Monitization رو انتخاب کنید.

⚠️ظاهرا فقط کانال‌های لول پنجاه به بالا می‌تونن دریافت تبلیغ رو غیرفعال بکنن.

🌐از طریق سایت
http://ads.telegram.org
هر کسی می‌تونه تو کانال شما تبلیغ بکنه.

📎اطلاعات بیشتر:
https://telegram.org/blog/monetization-for-channels

#SADRA_K
🐍 @persians_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2👌1
LibreTube 0.22.2

یوتیوب بدون فیلترشکن و تبلیغات
بروزرسانی جدید هم اکنون در دسترس است

https://libre-tube.github.io/

لیبره‌تیوب یک نرم‌افزار آزاد و اوپن سورس برای استفاده‌ از یوتیوب است که تبلیغات را به طور اتوماتیک حذف می‌کند و ویدیو‌ها را پراکسی می‌کند،‌ به همین دلیل شما دیگر احتیاجی به تماشای تبلیغات و استفاده‌ از VPN ندارید.

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

به دلیل استفاده‌ی «لیبره‌تیوب» از کدینگ ویدئویی DASH در سمت سرور، ترافیک مصرفی شما می‌تواند تا ۵۰٪ کاهش یابد.

دانلود از مخزن گیت‌هاب
https://github.com/libre-tube/LibreTube/releases/tag/v0.22.2

دانلود از f droid
https://f-droid.org/en/packages/com.github.libretube

https://apt.izzysoft.de/fdroid/index/apk/com.github.libretube


@persians_python
👎3
بهترین کد ادیتور ها برای زبان های برنامه‌نویسی مختلف🔽

💻 Python : PyCharm
JavaScript : Visual Studio Code
Java : IntelliJ IDEA
⌨️ C++ : Visual Studio
⌨️C# : Visual Studio
Swift : Xcode
Go : Visual Studio Code
Ruby : RubyMine
⌨️ PHP : PhpStorm
TypeScript : Visual Studio Code
Kotlin : IntelliJ IDEA
Rust : Visual Studio Code
MATLAB : MATLAB Editor
SQL : SQL Server Management Studio
⌨️ HTML/CSS : Visual Studio Code
R : RStudio
Scala : IntelliJ IDEA
Perl : Padre
Shell Scripting : Visual Studio Code
Lua : Visual Studio Code
Objective-C : Xcode
Dart : Visual Studio Code
Groovy : IntelliJ
Visual Basic : Visual Studio IDE
Assembly : Visual Studio Code
Lisp : Emacs
Haskell : GHCi
F# : Visual Studio Code
PowerShell : PowerShell
Clojure : Emacs

#SADRA_K
🐍 @persians_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👌3👍1👎1
سلام به همگی تصویر استوری مجتمع فنی رو گذاشتم دو مطلب قبل ولی دوباره اعلام میکنم طبق اعلام مجتمع فنی کلاس ها از شنبه 18 فروردین رسماً شروع میشه
برای آخرین مطلب راجع به نات کوین
اینکه فکر کنید با کلیک کردن قراره کسی پولدار بشه یه رویای خوشایند غیرواقعی هست این شکل پروژه ها با استفاده از اهرم تعداد افراد به یه پروژه ای ارزش میدن و حالا ممکنه در آینده با ایده های پشتش بتونن این ارز رو قیمت گذاری کنند بهش به عنوان یک بازی نگاه کنید مثل کلی بازی دیگه که با بازی کردن و بازار nft میشه یه درآمد زایی انجام داد
مهم ترین نکته ای که باید در نظر گرفته بشه این شکل پروژه ها و احتمالا پروژه های در آینده دارن به بزرگتر شدن شبکه تلگرام یعنی ton کمک می‌کنند ، آینده درخشانی که در انتظار تلگرام و شبکه ton بعنوان شبکه انتقال دارایی خواهد بود
فرصتی که برای یک برنامه نویس بوجود اومده
با درآمد زا شدن کانال های تلگرامی قطعا ساخت ربات های کاربردی می‌تونه ایده های پول سازی باشه و وقتش شده که ساخت ربات تلگرام با پایتون رو کاملا جدی بگیرید و به دنبال ایده های ناب باشید
حتی در صورت قیمت گذاری نات کوین درآمدی که خواهد داشت به اندازه درآمد یک هفته یک پیک موتوری هم نخواهد بود پس تمرکز رو روی یادگیری بذارید و دنبال رویاهای محال نرید
تو دنیای برنامه نویسی یکسری قرارداد های نامگذاری وجود داره برای اینکه بتونیم کدهای خوانایی بزنیم و ازونجایی که در دنیای برنامه نویسی چیزهای زیادی مانند متغیرها، توابع، کلاس ها، متد ها و ... وجود داره توسعه دهنده ها تصمیم گرفتن تا از کیس تایپ های مختلفی استفاده کنند برای نامگذاری.
اکثر ( اگر نگیم همه ) زبان های برنامه نویسی هر کلمه رو یک چیز کاملا جدا و منحصر فرد در نظر میگیرند. مثال زیر رو برای نامگذاری یک متغیر در نظر بگیرید
Number of donuts = 34
سه کلمه ی (number, of, donuts) در یک زبان برنامه نویسی به صورت مستقل باهاشون رفتار میشه به علت اینکه کارکتر اسپیس بین انها قرار گرفته است. برای اینکه برنامتون به درستی کار بکنه باید کارکتر های اسپیس رو حذف بکنید و اونرو به یک استرینگ واحد به شیوه خاصی تبدیل کنید.
4 نوع تایپ کیس داریم که جلوتر بهتون توضیح میدم ولی در همین ابتدا بگم هیچ جواب قاطعی برای اینکه کدوم بهتره وجود نداره.
شما باید با توجه به بست پرکتیس های زبان پروژتون انتخاب کنید که قراره از کدوم تایپ کیس استفاده کنید.
—————————————————————-
1-  snake_case
-  تمام حروف باید کوچک باشند.
-  هر کلمه با استفاده از _ به هم وصل میشود.
بیشتر در زبان پایتون این قابل مشاهده هست و در زبان هایی مثل جاوا، جاوااسکریپت کمتر دیده میشه.
● کاربرد ها :
-  ساختن متغیر ها، نام متد ها
-  اسامی جدول و ستون های یک دیتابیس
همچنین یک ورژن دیگه از snake case  وجود داره که از حروف بزرگ استفاده میشه و معمولا در زبان های برنامه نویسی مواقعی استفاده میشه که نشان دهنده داده ای است که در طول برنامه تغییر نخواهد کرد.
—————————————————————-
2- kebab-case
-  تمام حروف باید کوچک باشند.
-  هر کلمه با استفاده از – به هم وصل میشود.
● کاربرد ها :
-  در یو ار ال ها (URLs) مشاهده میشود.
—————————————————————-
3- camelCase
-  حرف اول کلمه اول کوچک و حرف اول بقیه کلمات بزرگ است.
● کاربرد ها :
-  در زبان های جاوا، جاوااسکریپت واسه ساخت متغیر ها و توابع و اسامی متد ها استفاده میشود
—————————————————————-
4- PascalCase
-  حرف اول تمام کلمات بزرگ نوشته میشود.
● کاربرد ها :
-  در نامگذاری کلاس ها در اکثر زبان ها کاربرد دارد.
—————————————————————-
منبع
حالا بنظر شما ایدی چنل ما از کدوم تایپ کیس استفاده کرده؟
#monitoring
#mahyar
👍6
بنچمارکینگ ( benchmark test) چیست؟؟؟

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

یک کد رو از دیدگاه‌های مختلفی میشه بررسی کرد سرعت اجرایی اون در حالت‌های مختلف، محک گذاری برای یافتن تنگناها، ناکارآمدی ها و رگرسیون‌ها

تست عملکرد (benchmark) شامل قراردادن کد در معرض عوامل استرس زا و سناریوهای مختلف جهت سنجش پاسخگویی، ثبات و مقیاس پذیری است

از طرفی هم معیارسنجی فرآیند اندازه‌گیری زمان اجرای کد یا استفاده از منابع برای ایجاد یک خط پایه عملکرد و پیگیری تغییرات در طول زمان است

در خصوص موضوع این پست pytest متحد ما خواهد بود و در کنار آن pytest benchmark همراه ما خواهد بود


چرا باید کدهای خود را محک بزنیم؟؟؟
۱-برای بهینه سازی الگوریتم‌ها و تکه‌های کد، شناسایی تنگناهای عملکرد و اعتبارسنجی پیشرفت‌ها

۲-در مقایسه نسخه‌های متفاوت کمک میکند و اطمینان حاصل میکند که نسخه‌های جدید عملکرد را حفظ یا بهبود داده

۳-به تست سازگاری سخت افزار و پلتفرم کمک میکند و اختلافات را در محیط‌های مختلف برجسته میکند

۴-در خطوط لوله یکپارچه سازی پیوسته،  محک زدن بعنوان یک سیستم هشدار اولیه عمل میکند و از رگرسیون عملکرد جلوگیری میکند(به این معنی که کد جدید بر عملکرد قبلی تاثیر منفی نمیگذارد)

۵-در نهایت کمک میکند تا با مقایسه عملکرد کتابخانه‌ها مختلف، انتخاب‌های فناوری آگاهانه داشته باشیم




پیش نیازها
دانش پایه‌ای از پایتون و ساختارهای داده‌(list, tuple, string)

دانش پایه‌ای از pytest

اندکی دانش از الگوریتم‌ها

pip install pytest
pip install pytest-benchmark


این کتابخونه به ما امکان این رو میده که کدهامون رو تو حالت‌های مختلف و تعداد بالا محک بزنیم با استفاده از pytest گروه بندی کنیم خروجی هارو نگه داریم و هنگام توسعه خروجی‌ها رو با هم مقایسه کنه و اینکه هیستوگرام بنچمارک رو هم برامون رسم کنه


به طور پیش فرض، pytest-benchmark محک گذاری مبتنی بر زمان را انجام می دهد.  زمان اجرای کد مورد آزمایش را اندازه گیری می کند و آماری در مورد زمان بندی هر اجرا ارائه می دهد.
که موارد زیر رو شامل میشه
Min
Max
Mean
StdDev
Median
IQR
Outliers
OPS (Mops/s)
Rounds
Iterations

توضیحات رو در کامنت‌ها براتون میزارم

در پست بعدی یک نمونه عملی رو باهم انجام میدیم


#monitoring

#mahyar
👌5
خب بیاید با یک پروژه ساده پیش بریم دایرکتوری کاری ما به شکل زیر خواهد بود
Plbenchmark-test
├── src
│   └── sorting_examples.py
└── test
    ├── conftest.py
    └── test_benchmark.p



توضیحات
در داخل فایل sorting_example.py سه الگوریتم مرتب سازی قرار دادیم

در فایل conftest.py دو نوع داده ورودی کوچک و بزرگ برای تست‌هامون ساختیم

در فایل test_benchmark.py تست‌هامون رو نوشتیم


با دستور زیر گروه sort_small رو اجرا میکنیم
pytest -m sort_small -v -s 
و خروجی سه تستی که برای اون نوشتیم رو میبینیم که شامل موارد ذکر شده در پست قبلی میباشد

با دستور زیر میتونیم هیستوگرام اون رو هم ببینیم
pip install pygal

pytest --benchmark-histogram -m sort-larg

هیستوگرام رو در یک تصویر در مسیر جاریتون خواهد ساخت هر تابع تست شده رو به شکل یک کندل نشون میده
در پست قبلی گفته بودیم که این کتابخونه پیش فرض بر روی زمان اجرا تمرکز دارد با دستور زیر و احرا کردن یک قسمت خاص از کدهای تست میتونید این مورد رو مشاهده کنید
pytest --benchmark-histogram -m benchmark

خروجی تست عملکرد در خط فرمان و هیستوگرام در یک فایل تصویری بصورت کندل
و با دستور زیر در هربار اجرا میتوانید بنچمارک رو ذخیره کنید
pytest -m sort_large --benchmark-autosave

در مسیر جاری و در دایرکتوری benchmarks. این فایل‌هارو مطابق با ورژن پایتون ذخیره میکند در ابتدای هر فایل یک مقدار چهر عددی قرار میده که بعدا از این برای مقابسه دو بنچمارک باهم استفاده میکنیم

جالبه بدونید که مشخصات سخت افزار و نود ،تاریخ و ورژن ، مشخصات پردازنده بصورت و ... روکامل هم ذخیره میکنه تا در هربار بنچمارک بتونید مقایسه کاملی انجام دهید
و اخرین دستور جهت مقایسه دو مقدار بنچمارک ذخیره شده
pytest-benchmark compare 0001 0002
نتایج خروجی رو در خط فرمان میتونید مشاهده کنید


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





#monitoring

#mahyar
👍4
کتابخانه pydantic یک‌همه کاره در validate!?

اگر قراره یک داده رو بصورت صفر تا صد validate کنید چه از لحاظ نوع داده که عدد باشه یا رشته یا حتی لیست یا دیکشنری باشه که داخلش مجموعه ای از استرینگ ها باشه
فیلد های داخل کلاس رو چک کنید مثلا پسورد و تکرار پسورد که هر کدوم ساختار خاصی داشته باشند مثل regix ها و ....
حتی پارامتری که به تابع پاس داده میشه رو میتونید با دکوریتوری که در اختیار میذاره قبل از پاسخ دادن چک کنه و اگه valid بود تازه پاس بده به تابع یا حتی نوع خروجی که تابع return می‌کنه رو چک کنه و کلی امکانات دیگه
یک مثال ساده
( pip install pydantic )ابتدا با دستور
کتابخانه رو نصب میکنید
حالا میخایم یک کلاس بسازیم که نام و شماره دانشجویی فرد رو بگیره و نوعش رو چک کنه

from pydantic import BaseModel

class NameValid(BaseModel):
name : str
number : int

user1 = NameValid (name="ali" , number = 12345 )
print(user1)

اگر همه چیز درست باشه دقیقا داده ها رو بهتون برمی گردونه اما اگه تایپ ها اشتباه باشه ValidationError برمی گردونه که میتونید با try و except مدیریتش کنید
داده های پاس داده شده میتونند بصورت Json باشند که در وب خیلی زیاد ازشون استفاده میشه
#M_Sh
@persians_python
👍5
پایتون فارسی(PyCore)
کتابخانه pydantic یک‌همه کاره در validate!? اگر قراره یک داده رو بصورت صفر تا صد validate کنید چه از لحاظ نوع داده که عدد باشه یا رشته یا حتی لیست یا دیکشنری باشه که داخلش مجموعه ای از استرینگ ها باشه فیلد های داخل کلاس رو چک کنید مثلا پسورد و تکرار پسورد…
امروز ۶ میلیون نفر pydantic رو دانلود کردن! pydantic تبدیل به یکی از پر استفاده ترین پکیج های پایتونی شده و در حال حاضر معدود پکیج هایی فقط بالاتر از pydantic هستند مثل numpy با ۹ میلیون دانلود روزانه. این در حالیه که fastapi فقط یک میلیون دانلود داشته. این آمار و ارقام نشون میده pydantic کامل وارد اکوسیستم پایتون شده و تو انواع پروژه ها استفاده میشه‌.

حتی در پروژه  های drf (django-rest-framework) هم بعضی ها به جای استفاده از از drf serializer از pydntic استفاده میکنن!
حالا چرا !؟ چون سرعت خیلی بالاتری نسبت به سریالایزر drf داره


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

مقاله اول
مقاله دوم

#pydantic
#Serializer

#mahyar
👍5
پایتون فارسی(PyCore)
خب بیاید با یک پروژه ساده پیش بریم دایرکتوری کاری ما به شکل زیر خواهد بود Plbenchmark-test ├── src │   └── sorting_examples.py └── test     ├── conftest.py     └── test_benchmark.p توضیحات در داخل فایل sorting_example.py سه الگوریتم مرتب سازی قرار دادیم…
در ادامه مبحث بنچمارکینگ روی یک پروژه جنگویی پیاده سازی میکنیم و در نهایت با تست عملکرد برای ویوهای ساخته شده با FBV ,CBV بررسی میکنیم عملکرد و محک زدن کدوم بهتره.(Class base view, function base view)

ابتدا یک پروژه جنگویی همراه یک اپ core ایجاد میکنیم
pip install django

django-admin startproject config .

python manage.py startapp core
در دایرکتوری config
فایل settings.py
INSTALLED_APPS = [
...   
"core",
]

فایل urls.py 
path('', include('core.urls')),
در اپ core کدهای زیر رو وارد میکنیم


models.py
class CategoryModel(models.Model):
    title = models.CharField(max_length=255)
views.py
from django.views.generic import DetailView, ListView
from .models import CategoryModel


def category_list_view(request):
    objs = CategoryModel.objects.all()
    return render(request, 'core/list.html', {"objs":objs})

def category_detail_view(request, pk):
    obj = CategoryModel.objects.get(id=pk)
    return render(request, 'core/detail.html', {"obj":obj})

class CategoryListView(ListView):
    model = CategoryModel
    template_name = 'core/list.html'
    context_object_name = 'objs'

class CategoryDetailView(DetailView):
    model = CategoryModel
    template_name='core/detail.html'
    context_object_name = 'obj'
urls.py
from .views import category_list_view, category_detail_view, CategoryDetailView, CategoryListView

app_name = 'core'

urlpatterns = [
    path('fbv/', category_list_view),
    path('fbv/<pk>/', category_detail_view),
    path('cbv/', CategoryListView.as_view()),
    path('cbv/<pk>/', CategoryDetailView.as_view()),
]
دستورات makemigrations و migrate رو فراموش نکنید

الزامات مربوط به templates در settings و فایلهای list.html , detail.html رو برای اپ core بصورت ساده انجام دهید


جهت راه اندازی بنچمارکینگ نیاز به نصب سه کتابخانه داریم
pip install pytest pytest-benchmark pytest-django

در دایرکتوری root پروژه یک فایل با نام pytest.ini ساخته کدهای زیر رو در ان قرار دهید
[pytest]
DJANGO_SETTINGS_MODULE = config.settings

دلیل اینکار ازین بابت هست که بخشی از کدهای ما وابسته به اجرا شدن پروژه جنگویی می‌باشد و اجرا کردن پروژه جنگویی با صدا زدن فایل تنظیمات آن می‌باشد و به این صورت pytest اینکار رو انجام میدهد


دایرکتوری tests ساخته و داخل ان فایل test_view.py رو میسازیم و کدهای زیر رو داخل اون میزاریم
import pytest
from core.models import CategoryModel
from django.test import RequestFactory
from core.views import category_list_view, category_detail_view, CategoryListView, CategoryDetailView


@pytest.fixture
def rf():
    return RequestFactory()

@pytest.mark.fbv
def test_fbv_list(benchmark, rf):
    request = rf.get('/fbv/')
    result = benchmark(category_list_view, request)
    assert result.status_code == 200

@pytest.mark.fbv
@pytest.mark.django_db
def test_fbv_detail(benchmark, rf):
    blog_comment = CategoryModel.objects.create(title='Test')
    request = rf.get(f'/fbv/{blog_comment.pk}/')
    result = benchmark(category_detail_view, request, pk=blog_comment.pk)
    assert result.status_code == 200

@pytest.mark.cbv
def test_cbv_list(benchmark, rf):
    request = rf.get('/cbv/')
    view = CategoryListView.as_view()
    result = benchmark(view, request)
    assert result.status_code == 200

@pytest.mark.cbv
@pytest.mark.django_db
def test_cbv_detail(benchmark, rf):
    blog_comment = CategoryModel.objects.create(title='Test')
    request = rf.get(f'/cbv/{blog_comment.pk}/') 
    view = CategoryDetailView.as_view()
    result = benchmark(view, request, pk=blog_comment.pk)
    assert result.status_code == 200


دستورات زیر رو در خط فرمان بزنید
pytest -m cbv --benchmark-autosave

pytest -m fbv --benchmark-autosave

pytest-benchmark compare 0001 0002


خروجی بنچمارکینگ و تست عملکرد رو برای ویوهای FBV و CBV در جنگو رو باهم میتونید مقایسه کنید



#monitoring

#mahyar
👍5👎1
سلام به همگی
از فردا کلاس ها طبق ساعت های که بوده برگزار میشه لطفاً کسی غیبت نداشته باشه که از مباحث جا بمونه
👍3
Django rich-text editors.pdf
502.3 KB
معرفی انواع ویرایشگر های متن (rich-text editor) در جنگو

خیلی پیش میاد در پروژه هایی که مبتنی بر render یا django templateهستش بخواید از یک ویرایشگر متن خیلی خوب برای تولید محتوا استفاده کنین.

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

البته شما می تونین بدون استفاده از این ماژول ها هم بر حسب نیازتون به صورت مستقیم از این ها ساتفاده کنین ولی خوب باید تنظیمات متفاوتی رو درش اعمال کنین که معمولا زمان بر هستش. از جمله ویرایشگر های جنگو میشه به این ها اشاره کرد، البته فقط محدود به این ها نیستن:
django-ckeditor - django-froala-editor - django-summernote - django-quill - django-tinymce

البته که جنگو محدود به این ها نیستش و می تونین ماژول های متفاوتی هم توسعه بدید و یا پیدا کنین ولی این ماژول ها جزو پر مصرف ترین ها به شمار میان.

انتخاب خودم:
من به شخصه بیشتر از ckeditor استفاده می کنم به خصوص اینکه پشتیبانی از آپلود فایل رو هم داره

مبنع


#djnago
#mahyar
👍4
انشالله در آینده یکم دوباره میریم سمت پایتون، تا بچه های دوره پایتون هم بتونن از مطالب استفاده کنن و کانال براشون مفید باشه.


همچنین اگر دوست دارید راجب موضوع خاصی از پایتون پست بزاریم و درموردش بیشتر حرف بزنیم توی کامنت بگید.

#mahyar
👍4