با چند تا مثال regex رو یاد بگیر(قسمت اول)
1. پترن ما این هستش که توی متن hello داشته باشه:
2. به بزرگ و کوچیک بودن حروف حساس نباشه:
برای این موارد یه سری flag هایی رو regex در اختیار ما قرار داده. برای اینکه به بزرگ و کوچک بودن حروف حساس نباشه از فلگ i استفاده می کنیم:
3. اول متن با hello شروع بشه و به بزرگ و کوچیک بودن حروف حساس نباشه:
برای اینکار اول الگو از ^ استفاده میکنیم.
4. اول هر خط با hello شروع بشه:
تو مثال قبلی گفتیم اول متن hello باشه اما اینبار اول هر خط رو میخوایم حساب کنیم. برای اینکار از فلگ m استفاده می کنیم که به معنی این است روی چند تا خط ^ و $ رو اعمال کن. همچنین از فلگ g که مخفف global هست، استفاده میکنیم که بعد از پیدا کردن اولین نتیجه return نکنه و بره بقیه متن رو هم بگرده(توی هر زبان به یه شکلی فلگ هارو میدیم)
نکته:
اگه بخوایم بجای اینکه اول رشته با الگو ما تطابق داشته باشه، آخر خط و یا رشته رو چک کنیم، بجای ^ آخر الگو میایم $ قرار میدیم:
5. کاراکتر اول h باشد، کاراکتر دوم هرچیزی باشه فرقی نمیکنه و کاراکتر های بعدی llo باشد:
با استفاده نقطه مشخص میکنیم هر کاراکتری باشه فرقی نمیکنه.
6. فقط حروف کوچک انگلیسی:
داخل براکت میتونیم مشخص کنیم که چه کاراکتر هایی توی الگو ما هستش. ما اینجا میتونستیم تمامی حروف کوچک انگلیسی را بنویسیم(abcdefghi...) اما بجایش به این صورت نوشتیم که از a تا z باشد.
7. حروف انگیسی باشد و به بزرگ و کوچک بودن حساس نباشد. همچنین اعداد 0 تا 9 را هم داشته باشد:
همچنین میتوانیم از فلگ استفاده نکنیم و داخل براکت مشخص کنیم حروف بزرگ هم هستش:
#Regex
1. پترن ما این هستش که توی متن hello داشته باشه:
Pattern := "hello"
2. به بزرگ و کوچیک بودن حروف حساس نباشه:
برای این موارد یه سری flag هایی رو regex در اختیار ما قرار داده. برای اینکه به بزرگ و کوچک بودن حروف حساس نباشه از فلگ i استفاده می کنیم:
Pattern := "(?i)Hello"
3. اول متن با hello شروع بشه و به بزرگ و کوچیک بودن حروف حساس نباشه:
Pattern := "(?i)^hello"
برای اینکار اول الگو از ^ استفاده میکنیم.
4. اول هر خط با hello شروع بشه:
تو مثال قبلی گفتیم اول متن hello باشه اما اینبار اول هر خط رو میخوایم حساب کنیم. برای اینکار از فلگ m استفاده می کنیم که به معنی این است روی چند تا خط ^ و $ رو اعمال کن. همچنین از فلگ g که مخفف global هست، استفاده میکنیم که بعد از پیدا کردن اولین نتیجه return نکنه و بره بقیه متن رو هم بگرده(توی هر زبان به یه شکلی فلگ هارو میدیم)
نکته:
اگه بخوایم بجای اینکه اول رشته با الگو ما تطابق داشته باشه، آخر خط و یا رشته رو چک کنیم، بجای ^ آخر الگو میایم $ قرار میدیم:
pattern := "hello$"
5. کاراکتر اول h باشد، کاراکتر دوم هرچیزی باشه فرقی نمیکنه و کاراکتر های بعدی llo باشد:
Pattern := "h.llo"
با استفاده نقطه مشخص میکنیم هر کاراکتری باشه فرقی نمیکنه.
6. فقط حروف کوچک انگلیسی:
Pattern:= [a-z]
داخل براکت میتونیم مشخص کنیم که چه کاراکتر هایی توی الگو ما هستش. ما اینجا میتونستیم تمامی حروف کوچک انگلیسی را بنویسیم(abcdefghi...) اما بجایش به این صورت نوشتیم که از a تا z باشد.
7. حروف انگیسی باشد و به بزرگ و کوچک بودن حساس نباشد. همچنین اعداد 0 تا 9 را هم داشته باشد:
Pattern := "(?i)[a-z0-9]"
همچنین میتوانیم از فلگ استفاده نکنیم و داخل براکت مشخص کنیم حروف بزرگ هم هستش:
Pattern := [a-zA-Z0-9]
#Regex
چرا conda استفاده کنیم؟؟؟
اول اینکه نوع پایتون رو هم خودش براتون بالا میاره حین ساخت محیط و شما دیگه درگیر پیچیدگی و هندل کردن نصب و مدیریت چند نسخه مختلف پایتون نمیشید و حتی کار کردنش باهاش از pyenv راحت تره و عوض کردن نسخه پایتونش هم راحت تره
۱-نصب پکیج هم داخلش راحته
۲-و علاوه بر خودش میتونید از pip هم استفاده کنید
۳- همچنین بروز رسانی پکیج
۲-و یا یک فایل حاوی ادرسهای آن جهت نصب بسازید
۳-و یا بصورت yaml براتون قرار میده که از دو بخش تشکیل شده پکیجهایی که خودش نصب کرده و پکیجهایی که با pip نصب شده
۲-مشاهده وابستگی های آن
۳-مشاهده پکیجها استفاده کننده آن
موضوع جالب اینکه هنگام نصب پکیج تمام وابستگیها رو اجرایی میکنه و نصب و حتی اگه نیاز به نسخه دیگری از پایتون باشه اون رو downgraid میکنه که منجر میشه تا حد ممکن براتون خطایی رخ نده و دردسر نکشید
اول اینکه نوع پایتون رو هم خودش براتون بالا میاره حین ساخت محیط و شما دیگه درگیر پیچیدگی و هندل کردن نصب و مدیریت چند نسخه مختلف پایتون نمیشید و حتی کار کردنش باهاش از pyenv راحت تره و عوض کردن نسخه پایتونش هم راحت تره
conda create -n MyENV python=3.8دوم اینکه محیطی که براتون میسازه رو داخل home شما و در دایرکتوری مخصوص خودش میسازه و نه در مسیر جاری شما خب این مزیتش این هست که شما راحت هرجا باشید میتونید ۱-سریع فعال و ۲-غیرفعال و یا محیط خودتون رو تغییر بدید و یا بدون دغدغه نسبت به محل قرارگیریش محیط جدید بسازید و ۳-حذف هم کنید و بین محیطهای مختلف راحت سویچ کنید
1- conda activate my_envمورد بعدی هم اینکه:
2- conda deactivate
3- conda env remove -n MyENV
۱-نصب پکیج هم داخلش راحته
۲-و علاوه بر خودش میتونید از pip هم استفاده کنید
۳- همچنین بروز رسانی پکیج
1- conda install PackName۱-لیست پکیجهای نصب شده رو هم میتونید ببینید
2- pip install PackName
3- conda update PackName
۲-و یا یک فایل حاوی ادرسهای آن جهت نصب بسازید
۳-و یا بصورت yaml براتون قرار میده که از دو بخش تشکیل شده پکیجهایی که خودش نصب کرده و پکیجهایی که با pip نصب شده
1- conda listکه بالطبع میتونید اون رو هم در یک محیط دیگه نصب کنید
2- conda list --explicit
3- conda env --export > requirements.yml
conda create -f requirements.ymlگفتیم همه محیطها رو در یک مسیر قرار میده که با دستور زیر هم میتونید لیست همه محیط هاتون رو ببینید
conda create -n MyENV -f requirements.yml
conda env list۱- اگه بخواید یکمحیط روحذف کنید ۲-یا یک پکیج رو حذف کنید
1- conda env remove -n MyENV --allبرای دیدن اطلاعات مربوط به محیط تون
2- conda remove PackName
conda infoجهت تست و بررسی سلامت محیط
conda doctorجهت تغییر نام محیط با شرط فعال نبودن محیط تون
conda rename۱-جستجوی پکیج با نمایش تاریخچه تگ آن
۲-مشاهده وابستگی های آن
۳-مشاهده پکیجها استفاده کننده آن
1- conda search PackNameادغام محیط شل با conda
2- conda repoquery depends PackName
3- conda repoquery whoneeds PackName
conda init bashپاک کردن پکیجهای نا استفاده
conda cleanبرای کانفیگ از قبیل محیط نصب، پکیجها محدودیت دانلود و ...
conda config
conda config --help
موضوع جالب اینکه هنگام نصب پکیج تمام وابستگیها رو اجرایی میکنه و نصب و حتی اگه نیاز به نسخه دیگری از پایتون باشه اون رو downgraid میکنه که منجر میشه تا حد ممکن براتون خطایی رخ نده و دردسر نکشید
📌 چند سخن در حوزه برنامه نویسی
#تلنگر
شاید من بی عیب نباشم
قطعا تو هم نیستی ...
پس برو و به جای شماردن و مسخره کردن
عیب های من ...
به عیب های خودت رسیدگی کن ...
( مخصوص کسایی که فقط بلدن از بقیه سوتی بگیرن و هر هر بهش بخندن )
#تلنگر
صحبت کردن ساده است.
اما ....
کدت رو نشون بده!
#تلنگر
هر کسی میتواند کدی بنویسد که یک کامپیوتر آنرا درک کند. یک برنامه نویس خوب کدی را مینویسد که برای سایر همکارانش قابل درک باش
#فان
شازده کوچولو: چکار کنم که هیچ وقت کدم باگ نده ؟!
روباه: برو زبان HTML کار کن.
#فان
اگر درست کار نکرد نگران نباشید. اگر همه چیز درست بود، بیکار بودید.
#فان
تفوات جاوا و جاوا اسکریپت همان چیزی است که ماشین برای فرش است.
#فان
سنجش پیشرفت برنامه نویسی با خطوط کد مانند اندازه گیری پیشرفت ساخت هواپیما بر اساس وزن آن است.
#تجربه
ناراضی ترین مشتریان شما بزرگترین منبع یادگیری شما هستند.
#تجربه
یک راه آسان و یک راه سخت وجود دارد. بخش سخت، یافتن راه آسان است.
#تجربه
برنامه نویسی مانند هرکار دیگری در ظاهر آسان، در باطن سخت است.
#آزار_دهنده
کم ارزش و بی ارزش نشان دادن کار شما با جملاتی مانند: این کار سختی نیست! کار خاصی انجام ندادید! یک پروژه ساده و آسان میخواهم(با سه صفحه توضیحات کارفرما)
#آزار_دهنده
یک پروژه ای دارم با این مشخصات( دو صفحه شرح پروژه ) با این مقدار بودجه ( 1/10 قیمت واقعی )
#آزار_دهنده
کسانی که پروژه ها را با 1/3 قیمت واقعی انجام میدهند.
#تلنگر
شاید من بی عیب نباشم
قطعا تو هم نیستی ...
پس برو و به جای شماردن و مسخره کردن
عیب های من ...
به عیب های خودت رسیدگی کن ...
( مخصوص کسایی که فقط بلدن از بقیه سوتی بگیرن و هر هر بهش بخندن )
#تلنگر
صحبت کردن ساده است.
اما ....
کدت رو نشون بده!
#تلنگر
هر کسی میتواند کدی بنویسد که یک کامپیوتر آنرا درک کند. یک برنامه نویس خوب کدی را مینویسد که برای سایر همکارانش قابل درک باش
#فان
شازده کوچولو: چکار کنم که هیچ وقت کدم باگ نده ؟!
روباه: برو زبان HTML کار کن.
#فان
اگر درست کار نکرد نگران نباشید. اگر همه چیز درست بود، بیکار بودید.
#فان
تفوات جاوا و جاوا اسکریپت همان چیزی است که ماشین برای فرش است.
#فان
سنجش پیشرفت برنامه نویسی با خطوط کد مانند اندازه گیری پیشرفت ساخت هواپیما بر اساس وزن آن است.
#تجربه
ناراضی ترین مشتریان شما بزرگترین منبع یادگیری شما هستند.
#تجربه
یک راه آسان و یک راه سخت وجود دارد. بخش سخت، یافتن راه آسان است.
#تجربه
برنامه نویسی مانند هرکار دیگری در ظاهر آسان، در باطن سخت است.
#آزار_دهنده
کم ارزش و بی ارزش نشان دادن کار شما با جملاتی مانند: این کار سختی نیست! کار خاصی انجام ندادید! یک پروژه ساده و آسان میخواهم(با سه صفحه توضیحات کارفرما)
#آزار_دهنده
یک پروژه ای دارم با این مشخصات( دو صفحه شرح پروژه ) با این مقدار بودجه ( 1/10 قیمت واقعی )
#آزار_دهنده
کسانی که پروژه ها را با 1/3 قیمت واقعی انجام میدهند.
🔰 12 نکته برای تبدیل شدن به یک برنامهنویس حرفهای پایتون
💠 نکته 1: مخزن گیتهاب خودتان را بسازید
مخزن گیتهاب شما ضمن آنکه به عنوان رزومه قدرتمند در زمان مصاحبههای شغلبی به یاریتان میآید، به تمامی کاربران و شرکتهای عضو گیتهاب نشان میدهد که شما در برنامهنویسی به چه اندازهای مهارت دارید. در این حالت آگهیدهندگان فرصتهای شغلی به جای آنکه از شما درخواست نمونه کار کنند به راحتی به مخزن گیتهابتان مراجعه میکنند و با ارزیابی نمونه کدهایتان متوجه میشوند که یک برنامهنویس حرفهای هستید یا خیر. بنابراین بهتر است پروژههای پایتون خود را به یک مخزن معتبر نظیر گیتهاب اضافه کنید. حتی اگر این فقط یک کد ساده نوشتهای یا تغییر جزیی در کدهایی به وجود آورید بازهم آپلود این کدها در مخزن شخصیتان اهمیت زیادی دارد.
💠 نکته 2: کدهای با خوانایی بالا بنویسید
اگرچه این امر بدیهی به نظر میرسد، اما به هر حال ذکر این نکته مهم است. هنگام نوشتن کدها، اطمینان حاصل کنید که دیگران میتوانند آنرا بخوانند و درک کنند. از این گذشته، اگر استخدامکنندگان کدهای شما در گیتهاب را مشاهده کنند و توانایی درک آنها را داشته باشند، شانس استخدامتان دوچندان میشود. خوشبختانه، دستورالعملهایی برای نوشتن کدهای خوانا وجود دارد که از مهمترین آنها به موارد زیر باید اشاره کرد:
➕ تورفتگی
➕ زبانهها و فضاها
➕ حداکثر طول خط
➕ چگونگی شکستن خطوط
➕ خطوط خالی
➕ کدگذاری فایل منبع
➕ نقل قولهای رشتهای
➕ فضاهای سفید در عبارات
➕ بهکارگیری درست ویرگول
➕ قراردادهای نامگذاری
💠 نکته 3: مستندات مناسب ایجاد کنید
مستندات مناسب به بهبود خوانایی کدها کمک میکنند. به خاطر داشته باشید که باید یک فایل README را در مخزن گیتهاب خود قرار دهید. فایل README باید حاوی اطلاعات مقدماتی در مورد پروژه شما باشد. بهطور مثال، پروژه چه کاری انجام میدهد، از چه کتابخانههایی در پروژه استفاده کردهاید و غیره. فایل README برای خوانندگانی مفید است که میخواهند از کدهای شما نکات جدیدی یاد بگیرند یا سعی کنند کدها را به شکل دیگری اجرا کنند.
💠 نکته 4: کدهای دیگران را با مهارتی که دارید مطالعه کنید
افراد زیادی در گیتهاب هستند که از سبک برنامهنویسی منحصر به فرد و منظمی برخوردار هستند. یکی از بهترین راهها برای توسعه سبک کدنویسی شخصی، مطالعه و بررسی کدهایی است که سایر توسعهدهندگان پایتون نوشتهاند. به کدهایی که توسط دیگران نوشته شده دقت کنید تا در مورد سبکهای مختلف موجود ایدههال خلاقانهای ارائه کنید.
💠 نکته 5: کتابهای منتشر شده در مورد پایتون را مطالعه کنید
حتا اگر یک برنامهنویس حرفهای پایتون هستید، بازهم نکات جدیدی برای یادگیری وجود دارد. بهطور معمول، کتابهایی که در این زمینه منتشر میشوند نویسندگانی دارند که برای سالیان متمادی از پایتون استفاده کردهاند. بنابراین خالی از لطف نیست که کتابهای مختلف پایتون را مطالعه کنید.
💠 نکته 6: سطح مهارتهای خود در مورد پایتون را ارتقا دهید
اگر میخواهید روشی قابل اعتماد برای افزایش تجربه در برنامهنویسی پایتون به دست آورید و مزیت رقابتی خود را حفظ کنید باید مهارتهای خود را رشد دهید. علاوه بر مطالعه کتاب در این زمینه، شما باید نحوه کار با برخی از کتابخانههای پایتون را نیز بفهمید.
اگرچه یادگیری همه کتابخانهها ایدهآل است، اما با تسلط بر حداقل یک چند کتابخانه مهم پیشرفت قابل توجهی را تجربه میکنید. براساس آنچه در این کتابخانهها یاد میگیرید، قادر به کدنویسی پروژههایی هستید که امکان بارگذاری آنها در مخازن گیتهاب برای استفاده عموم توسعهدهندگان فراهم میشود. رویکرد فوق ضمن آنکه اجازه میدهد مخزن گیتهاب خود را بهبود بخشید به شما کمک میکند دانش جدید خود را حفظ کنید، زیرا بهترین راه برای به خاطر سپردن اطلاعات بیشتر، استفاده مستمر از آنها در قالب پروژه است.
💠 نکته 7: سعی کنید در زمینه هوش مصنوعی و یادگیری ماشین با پایتون به سطح بالایی از دانش برسید
یادگیری زبان به تنهایی کافی نیست. برای آنکه ترکیب نحوی و دستورات آنرا به خوبی کار ببرید به تمرین زیاد نیاز دارید. علاوه بر این باید به شکل کاربردی از آن استفاده کنید. برخی از مهمترین کاربردهای پایتون در زمینههای هوش مصنوعی (AI) و یادگیری ماشین است. الگوریتمهای مختلف مورد استفاده در این زمینهها را بیاموزید و پروژهها را با استفاده از آنها پیادهسازی کنید. هر مهارتی که کسب میکنید را درون مخزن گیتهاب قرار دهید تا ارزش کاری خود به عنوان یک برنامهنویس پایتون را افزایش دهید.
♾ ادامه مطلب ... 👇👇👇
💠 نکته 1: مخزن گیتهاب خودتان را بسازید
مخزن گیتهاب شما ضمن آنکه به عنوان رزومه قدرتمند در زمان مصاحبههای شغلبی به یاریتان میآید، به تمامی کاربران و شرکتهای عضو گیتهاب نشان میدهد که شما در برنامهنویسی به چه اندازهای مهارت دارید. در این حالت آگهیدهندگان فرصتهای شغلی به جای آنکه از شما درخواست نمونه کار کنند به راحتی به مخزن گیتهابتان مراجعه میکنند و با ارزیابی نمونه کدهایتان متوجه میشوند که یک برنامهنویس حرفهای هستید یا خیر. بنابراین بهتر است پروژههای پایتون خود را به یک مخزن معتبر نظیر گیتهاب اضافه کنید. حتی اگر این فقط یک کد ساده نوشتهای یا تغییر جزیی در کدهایی به وجود آورید بازهم آپلود این کدها در مخزن شخصیتان اهمیت زیادی دارد.
💠 نکته 2: کدهای با خوانایی بالا بنویسید
اگرچه این امر بدیهی به نظر میرسد، اما به هر حال ذکر این نکته مهم است. هنگام نوشتن کدها، اطمینان حاصل کنید که دیگران میتوانند آنرا بخوانند و درک کنند. از این گذشته، اگر استخدامکنندگان کدهای شما در گیتهاب را مشاهده کنند و توانایی درک آنها را داشته باشند، شانس استخدامتان دوچندان میشود. خوشبختانه، دستورالعملهایی برای نوشتن کدهای خوانا وجود دارد که از مهمترین آنها به موارد زیر باید اشاره کرد:
➕ تورفتگی
➕ زبانهها و فضاها
➕ حداکثر طول خط
➕ چگونگی شکستن خطوط
➕ خطوط خالی
➕ کدگذاری فایل منبع
➕ نقل قولهای رشتهای
➕ فضاهای سفید در عبارات
➕ بهکارگیری درست ویرگول
➕ قراردادهای نامگذاری
💠 نکته 3: مستندات مناسب ایجاد کنید
مستندات مناسب به بهبود خوانایی کدها کمک میکنند. به خاطر داشته باشید که باید یک فایل README را در مخزن گیتهاب خود قرار دهید. فایل README باید حاوی اطلاعات مقدماتی در مورد پروژه شما باشد. بهطور مثال، پروژه چه کاری انجام میدهد، از چه کتابخانههایی در پروژه استفاده کردهاید و غیره. فایل README برای خوانندگانی مفید است که میخواهند از کدهای شما نکات جدیدی یاد بگیرند یا سعی کنند کدها را به شکل دیگری اجرا کنند.
💠 نکته 4: کدهای دیگران را با مهارتی که دارید مطالعه کنید
افراد زیادی در گیتهاب هستند که از سبک برنامهنویسی منحصر به فرد و منظمی برخوردار هستند. یکی از بهترین راهها برای توسعه سبک کدنویسی شخصی، مطالعه و بررسی کدهایی است که سایر توسعهدهندگان پایتون نوشتهاند. به کدهایی که توسط دیگران نوشته شده دقت کنید تا در مورد سبکهای مختلف موجود ایدههال خلاقانهای ارائه کنید.
💠 نکته 5: کتابهای منتشر شده در مورد پایتون را مطالعه کنید
حتا اگر یک برنامهنویس حرفهای پایتون هستید، بازهم نکات جدیدی برای یادگیری وجود دارد. بهطور معمول، کتابهایی که در این زمینه منتشر میشوند نویسندگانی دارند که برای سالیان متمادی از پایتون استفاده کردهاند. بنابراین خالی از لطف نیست که کتابهای مختلف پایتون را مطالعه کنید.
💠 نکته 6: سطح مهارتهای خود در مورد پایتون را ارتقا دهید
اگر میخواهید روشی قابل اعتماد برای افزایش تجربه در برنامهنویسی پایتون به دست آورید و مزیت رقابتی خود را حفظ کنید باید مهارتهای خود را رشد دهید. علاوه بر مطالعه کتاب در این زمینه، شما باید نحوه کار با برخی از کتابخانههای پایتون را نیز بفهمید.
اگرچه یادگیری همه کتابخانهها ایدهآل است، اما با تسلط بر حداقل یک چند کتابخانه مهم پیشرفت قابل توجهی را تجربه میکنید. براساس آنچه در این کتابخانهها یاد میگیرید، قادر به کدنویسی پروژههایی هستید که امکان بارگذاری آنها در مخازن گیتهاب برای استفاده عموم توسعهدهندگان فراهم میشود. رویکرد فوق ضمن آنکه اجازه میدهد مخزن گیتهاب خود را بهبود بخشید به شما کمک میکند دانش جدید خود را حفظ کنید، زیرا بهترین راه برای به خاطر سپردن اطلاعات بیشتر، استفاده مستمر از آنها در قالب پروژه است.
💠 نکته 7: سعی کنید در زمینه هوش مصنوعی و یادگیری ماشین با پایتون به سطح بالایی از دانش برسید
یادگیری زبان به تنهایی کافی نیست. برای آنکه ترکیب نحوی و دستورات آنرا به خوبی کار ببرید به تمرین زیاد نیاز دارید. علاوه بر این باید به شکل کاربردی از آن استفاده کنید. برخی از مهمترین کاربردهای پایتون در زمینههای هوش مصنوعی (AI) و یادگیری ماشین است. الگوریتمهای مختلف مورد استفاده در این زمینهها را بیاموزید و پروژهها را با استفاده از آنها پیادهسازی کنید. هر مهارتی که کسب میکنید را درون مخزن گیتهاب قرار دهید تا ارزش کاری خود به عنوان یک برنامهنویس پایتون را افزایش دهید.
♾ ادامه مطلب ... 👇👇👇
💠 نکته 8: پروژههای مستقل را بپذیرید
کدنویسی و ساخت پروژه به تنهایی کافی نیست. اگر میخواهید به یک برنامهنویس حرفهای پایتون تبدیل شوید به کار بیشتری نیاز دارید. شما باید پروژههای آزاد را از دیگران بپذیرید. این پروژهها میتوانند به شکل پولی باشند یا در قالب کمک به دیگران دریافت شوند. هرچه تعداد پروژههایی که درون مخزن گیتهاب قرار میدهید بیشتر باشند نشان میدهند تجربه و سابقه شما در کدنویسی بیشتر است. شما میتوانید به عنوان یک برنامهنویس پایتون به فکر فریلنسری باشید و حتما پروژههای آزاد را قبول کنید.
💠 نکته 9: در پروژههای متنباز مشارکت کنید
به عنوان یک برنامهنویس پایتون میتوانید جستوجویی در مخازن گیتهاب دیگران انجام دهید و در پروژههای مرتبط مشارکت کنید. این تمرین نشان میدهد که شما علاقهمند هستید تجارب و تخصص خود را در اختیار دیگران قرار دهید. برخی از پروژههای معروف منبع باز پایتون که میتوانید در آنها مشارکت کنید به موارد زیر باید اشاره کرد:
🔸ا Pipenv: گردش کار توسعه پایتون
🔸ا Chatistics: اسکریپتهای پایتون برای تجزیه و تحلیل ورود به Messenger، Hangouts و چت تلگرام در DataFrames
🔸ا Som-tcp: حل مسئله فروشنده دورهگرد با استفاده از نقشههای خودتنظیم
🔸ا Py2bpf: مبدل پایتون به bpf (بایت کد فیلتر بسته برکلی)
💠 نکته 10: یک بلاگ راهاندازی کنید و در مورد آنچه آموختهاید، بنویسید
یک وبلاگ به شخصیت کاری شما اعتبار میبخشد. شما میتوانید درباره چگونگی شروع کار خود به عنوان یک مبتدی، مسیر آغاز کار خود و جایگاهی که به عنوان برنامهنویس پایتون در آن قرار دارید، نکاتی که در طول سالها آموختهاید، پروژههایی که کار کردهاید و مواردی از این دست مطالبی را بنویسید. این موضوع باعث میشود تا استخدامکنندگان با نگاه کردن به نمایه شما به سرعت با سبک کدنویسی که انجام میدهید آشنا شوند.
💠 نکته 11: یک روزانهای برای تمرین آماده کنید
تسلط بر یک زبان برنامهنویسی به این معنا نیست که باید کدگذاری را متوقف کنید. برای تبدیل شدن به یک برنامهنویس پایتون باید هر روز وقت کافی را برای نوشتن کد اختصاص دهید تا همه جنبههای پایتون را کاملا یاد بگیرید. این کدها میتوانند ساده یا پیچیده باشند، اما مهم این است که هر روز کدنویسی کنید. تنها در این صورت است که پایتون برای شما به یک ابزار کاربردی و ساده تبدیل میشود.
💠 نکته 12: رزومه و مشخصات خود را در پورتالهای شغلی بهروز کنید
اطمینان حاصل کنید که اطلاعات شما در مورد پورتالهای شغلی نظیر لینکدین، سایتهای کاریابی ایرانی و خارجی نظیر Glassdoor و CareerBuilder بهروز هستند. بنابراین بهتر است هر زمان اطلاعات کاربردی مرتبط با پایتون کسب کردید، این اطلاعات را درون رزومه خود قرار دهید تا استخدامکنندگان با جدیت بیشتری به رزومه شما توجه کنند.
کدنویسی و ساخت پروژه به تنهایی کافی نیست. اگر میخواهید به یک برنامهنویس حرفهای پایتون تبدیل شوید به کار بیشتری نیاز دارید. شما باید پروژههای آزاد را از دیگران بپذیرید. این پروژهها میتوانند به شکل پولی باشند یا در قالب کمک به دیگران دریافت شوند. هرچه تعداد پروژههایی که درون مخزن گیتهاب قرار میدهید بیشتر باشند نشان میدهند تجربه و سابقه شما در کدنویسی بیشتر است. شما میتوانید به عنوان یک برنامهنویس پایتون به فکر فریلنسری باشید و حتما پروژههای آزاد را قبول کنید.
💠 نکته 9: در پروژههای متنباز مشارکت کنید
به عنوان یک برنامهنویس پایتون میتوانید جستوجویی در مخازن گیتهاب دیگران انجام دهید و در پروژههای مرتبط مشارکت کنید. این تمرین نشان میدهد که شما علاقهمند هستید تجارب و تخصص خود را در اختیار دیگران قرار دهید. برخی از پروژههای معروف منبع باز پایتون که میتوانید در آنها مشارکت کنید به موارد زیر باید اشاره کرد:
🔸ا Pipenv: گردش کار توسعه پایتون
🔸ا Chatistics: اسکریپتهای پایتون برای تجزیه و تحلیل ورود به Messenger، Hangouts و چت تلگرام در DataFrames
🔸ا Som-tcp: حل مسئله فروشنده دورهگرد با استفاده از نقشههای خودتنظیم
🔸ا Py2bpf: مبدل پایتون به bpf (بایت کد فیلتر بسته برکلی)
💠 نکته 10: یک بلاگ راهاندازی کنید و در مورد آنچه آموختهاید، بنویسید
یک وبلاگ به شخصیت کاری شما اعتبار میبخشد. شما میتوانید درباره چگونگی شروع کار خود به عنوان یک مبتدی، مسیر آغاز کار خود و جایگاهی که به عنوان برنامهنویس پایتون در آن قرار دارید، نکاتی که در طول سالها آموختهاید، پروژههایی که کار کردهاید و مواردی از این دست مطالبی را بنویسید. این موضوع باعث میشود تا استخدامکنندگان با نگاه کردن به نمایه شما به سرعت با سبک کدنویسی که انجام میدهید آشنا شوند.
💠 نکته 11: یک روزانهای برای تمرین آماده کنید
تسلط بر یک زبان برنامهنویسی به این معنا نیست که باید کدگذاری را متوقف کنید. برای تبدیل شدن به یک برنامهنویس پایتون باید هر روز وقت کافی را برای نوشتن کد اختصاص دهید تا همه جنبههای پایتون را کاملا یاد بگیرید. این کدها میتوانند ساده یا پیچیده باشند، اما مهم این است که هر روز کدنویسی کنید. تنها در این صورت است که پایتون برای شما به یک ابزار کاربردی و ساده تبدیل میشود.
💠 نکته 12: رزومه و مشخصات خود را در پورتالهای شغلی بهروز کنید
اطمینان حاصل کنید که اطلاعات شما در مورد پورتالهای شغلی نظیر لینکدین، سایتهای کاریابی ایرانی و خارجی نظیر Glassdoor و CareerBuilder بهروز هستند. بنابراین بهتر است هر زمان اطلاعات کاربردی مرتبط با پایتون کسب کردید، این اطلاعات را درون رزومه خود قرار دهید تا استخدامکنندگان با جدیت بیشتری به رزومه شما توجه کنند.
اقا اومدیم تست نویسیو تو جنگو شروع کنیم رسیدیم به داکیومنت خوندن و اینا
و خب یجایی ب این برخوردیم که خب الان من یه تست برای مدلم میخوام بنویسم با TestCase
و خب یه آبجکت به مدل بخوام اضافه کنم تو تستم به کار ببرم یکم مشکله ! حالا مشکلش کجاست؟
شما فکر کن مدل من ۵۰ تا فیلد داره من باید بیام این ۵۰ تارو خودم مقدار دهی کنم 😐 خب چیکار کنم؟
یه کتابخونه هست به اسم " model bakery" که براتون اینکارو انجام میده!
دستور نصب 👇
میتونیم به مقادیر هم دسترسی پیدا کنیم مثال اگر فیلد name داخل مدل ما باشه
todo.name
میتونیم اینطوری بهش دسترسی پیدا کنیم!
خب این گذشت حالا بعضی وقتا هست ما میخوایم یک فیلدی رو خودمون مقدار دهی کنیم و بقیه فیلد هارو رو بزاریم خودش مقدار دهی کنه ! چطوریه؟
اینطوری فیلد دلخواه رو خودمون مقدار دهی کردیم و مابقیش رو خودش مقدار میده! #تمام
اینم بگم منوقتی با این کتابخونه اشنا شدم و خب یکمی داخل تست نویسی داخل جنگو جلو که رفتم یه سری هم به مونگارد زدم و دوره اون رو شروع کردم و داخل دوره تست نویسی مونگارد هم دیدم این رو توضیح داده :)
#تست_نویسی
#تست_نویسی_در_جنگو
#جنگو
و خب یجایی ب این برخوردیم که خب الان من یه تست برای مدلم میخوام بنویسم با TestCase
و خب یه آبجکت به مدل بخوام اضافه کنم تو تستم به کار ببرم یکم مشکله ! حالا مشکلش کجاست؟
شما فکر کن مدل من ۵۰ تا فیلد داره من باید بیام این ۵۰ تارو خودم مقدار دهی کنم 😐 خب چیکار کنم؟
یه کتابخونه هست به اسم " model bakery" که براتون اینکارو انجام میده!
دستور نصب 👇
pip install model-bakery____
from model_bakery import bakeryخب الان بهش گفتیم مدلمون Todo هست و میاد خودش مقدار دهیش میکنه و یک ابجکت برامون میسازه !
from .models import Todo
todo = bakery.make(Todo)
میتونیم به مقادیر هم دسترسی پیدا کنیم مثال اگر فیلد name داخل مدل ما باشه
todo.name
میتونیم اینطوری بهش دسترسی پیدا کنیم!
خب این گذشت حالا بعضی وقتا هست ما میخوایم یک فیلدی رو خودمون مقدار دهی کنیم و بقیه فیلد هارو رو بزاریم خودش مقدار دهی کنه ! چطوریه؟
from model_bakery import bakery
from .models import Todo
todo = bakery.make(Todo, name="Benyamin")
اینطوری فیلد دلخواه رو خودمون مقدار دهی کردیم و مابقیش رو خودش مقدار میده! #تمام
اینم بگم منوقتی با این کتابخونه اشنا شدم و خب یکمی داخل تست نویسی داخل جنگو جلو که رفتم یه سری هم به مونگارد زدم و دوره اون رو شروع کردم و داخل دوره تست نویسی مونگارد هم دیدم این رو توضیح داده :)
#تست_نویسی
#تست_نویسی_در_جنگو
#جنگو
یک موضوع کوچیک رو باهم بررسی کنیم
واسه بچههایی که با داکر کار میکنن گرفتن ایمیجهای داکر همیشه براشون یک چالش و دردسر هست تو ایران
سوا ازینکه داکر مارو تحریم کرده بحث فیلترینگ هم گاها اذیت کننده میشه و موارد مربوط اذیت کننده میشه
راهکار بچهها چیه راه اندازی فیلترشکن یا استفاده از سرویس شکن و 403 و docker.ir هستش که بازم دردسرهای خاص خود مثه پایین بودن سرعت این وسط رخ میده یا سردرگم کننده بودن اذیت شدن واسه کانفیگ کردنشون
راهکار بهتر که همه موارد بالا رو هندل میکنه این هست که ایمیجها رو از یک منبع داخلی بگیریم که اینجا ابرآروان گزینه بهتری به نظر میاد چرا؟؟؟
اول اینکه فیلتر نیست و حمایت خوبی داره
نیاز به کانفیگ چیز خاصی نداریم
سرعتش بالاست
نرخ مصرف اینترنت هم داخلی محسوب میشه
فقط کافیه به قبل از اسم ایمیجتون عبارت زیر رو اضافه کنید
واسه بچههایی که با داکر کار میکنن گرفتن ایمیجهای داکر همیشه براشون یک چالش و دردسر هست تو ایران
سوا ازینکه داکر مارو تحریم کرده بحث فیلترینگ هم گاها اذیت کننده میشه و موارد مربوط اذیت کننده میشه
راهکار بچهها چیه راه اندازی فیلترشکن یا استفاده از سرویس شکن و 403 و docker.ir هستش که بازم دردسرهای خاص خود مثه پایین بودن سرعت این وسط رخ میده یا سردرگم کننده بودن اذیت شدن واسه کانفیگ کردنشون
راهکار بهتر که همه موارد بالا رو هندل میکنه این هست که ایمیجها رو از یک منبع داخلی بگیریم که اینجا ابرآروان گزینه بهتری به نظر میاد چرا؟؟؟
اول اینکه فیلتر نیست و حمایت خوبی داره
نیاز به کانفیگ چیز خاصی نداریم
سرعتش بالاست
نرخ مصرف اینترنت هم داخلی محسوب میشه
فقط کافیه به قبل از اسم ایمیجتون عبارت زیر رو اضافه کنید
docker.arvancloud.ir/چندتا نمونه بهتون بگم
docker pull docker.arvancloud.ir/python:3.10حالا اگه ایمیجهاتون رو نگاه کنید اون هارو میبینید اگه بخوایم اسمشون تغییر بدیم هم دستور زیر رو بزنید
docker pull docker.arvancloud.ir/postgres:latest
docker tag docker.arvancloud.ir/python:3.10 python:3.10حالا اگه ایمیجهاتون رو نگاه کنید یک نسخه python:3.10 هم دارید
docker images
🖥 اعلان های لپ تاپ با پایتون
‼️این کد از ماژولهای time و plyer.notification استفاده میکند. ماژول time برای کنترل زمان استفاده میشود و plyer.notification برای نمایش هشدارها استفاده میشود.
‼️در اینجا یک حلقه بینهایت (while True) استفاده شده است تا به طور مداوم هشدارها را نمایش دهد. داخل حلقه، تابع notification.notify() فراخوانی شده است تا هشدار را نمایش دهد. سپس با استفاده از تابع time.sleep(3600)، برنامه به مدت یک ساعت (3600 ثانیه) منتظر میماند و سپس دوباره هشدار را نمایش میدهد.
❌برای اجرای این کد، اطمینان حاصل کنید که پکیج plyer را نصب کردهاید. میتوانید از مدیر بسته pip برای نصب آن استفاده کنید با اجرای دستور زیر:
pip install plyer
سپس کد را در یک فایل Python با پسوند .py ذخیره کنید و برنامه را اجرا کنید. برنامه شروع به نمایش هشدارها پس از گذشت یک ساعت میکند.
لطفاً توجه داشته باشید که برای استفاده از ماژول plyer، سیستم عامل شما باید از آن پشتیبانی کند و تنظیمات مربوط به نمایش هشدارها باید مجاز باشد.
#code
#python
‼️این کد از ماژولهای time و plyer.notification استفاده میکند. ماژول time برای کنترل زمان استفاده میشود و plyer.notification برای نمایش هشدارها استفاده میشود.
‼️در اینجا یک حلقه بینهایت (while True) استفاده شده است تا به طور مداوم هشدارها را نمایش دهد. داخل حلقه، تابع notification.notify() فراخوانی شده است تا هشدار را نمایش دهد. سپس با استفاده از تابع time.sleep(3600)، برنامه به مدت یک ساعت (3600 ثانیه) منتظر میماند و سپس دوباره هشدار را نمایش میدهد.
❌برای اجرای این کد، اطمینان حاصل کنید که پکیج plyer را نصب کردهاید. میتوانید از مدیر بسته pip برای نصب آن استفاده کنید با اجرای دستور زیر:
pip install plyer
سپس کد را در یک فایل Python با پسوند .py ذخیره کنید و برنامه را اجرا کنید. برنامه شروع به نمایش هشدارها پس از گذشت یک ساعت میکند.
لطفاً توجه داشته باشید که برای استفاده از ماژول plyer، سیستم عامل شما باید از آن پشتیبانی کند و تنظیمات مربوط به نمایش هشدارها باید مجاز باشد.
#code
#python
🧑💻PythonDev🧑💻
🖥 اعلان های لپ تاپ با پایتون ‼️این کد از ماژولهای time و plyer.notification استفاده میکند. ماژول time برای کنترل زمان استفاده میشود و plyer.notification برای نمایش هشدارها استفاده میشود. ‼️در اینجا یک حلقه بینهایت (while True) استفاده شده است تا به…
import time
from plyer import notification
if name == "main":
while True:
notification.notify(
title = "ALERT!!",
message = "take a braek ! it has been an hour!",
timeout = 10
)
time.sleep(3600)
🖥 کد ساخت دوربین امنیتی OpenCV Python :
🔹این کد یک برنامه است که دوربین را فعال میکند و تشخیص چهره و بدن انسان را در ویدیویی که توسط دوربین ضبط میشود، انجام میدهد.
اگر تشخیص داده شود که چهره یا بدنی در ویدیو وجود دارد، برنامه شروع به ضبط ویدیو میکند. پس از تشخیص از بین رفتن چهره یا بدن، برنامه تا 5 ثانیه دیگر ادامه میدهد و سپس ضبط را متوقف میکند.
🔹 ویدیوهای ضبط شده با فرمت mp4 و با نامهای مختلف برای هر زمان ضبط شدهاند.
🔺به طور خلاصه، این برنامه قابلیت تشخیص چهره و بدن انسان را در ویدیو فراهم میکند و در صورت تشخیص، ویدیویی را ضبط میکند.
#code
#python
🔹این کد یک برنامه است که دوربین را فعال میکند و تشخیص چهره و بدن انسان را در ویدیویی که توسط دوربین ضبط میشود، انجام میدهد.
اگر تشخیص داده شود که چهره یا بدنی در ویدیو وجود دارد، برنامه شروع به ضبط ویدیو میکند. پس از تشخیص از بین رفتن چهره یا بدن، برنامه تا 5 ثانیه دیگر ادامه میدهد و سپس ضبط را متوقف میکند.
🔹 ویدیوهای ضبط شده با فرمت mp4 و با نامهای مختلف برای هر زمان ضبط شدهاند.
🔺به طور خلاصه، این برنامه قابلیت تشخیص چهره و بدن انسان را در ویدیو فراهم میکند و در صورت تشخیص، ویدیویی را ضبط میکند.
#code
#python
🧑💻PythonDev🧑💻
🖥 کد ساخت دوربین امنیتی OpenCV Python : 🔹این کد یک برنامه است که دوربین را فعال میکند و تشخیص چهره و بدن انسان را در ویدیویی که توسط دوربین ضبط میشود، انجام میدهد. اگر تشخیص داده شود که چهره یا بدنی در ویدیو وجود دارد، برنامه شروع به ضبط ویدیو میکند.…
import cv2
import time
import datetime
cap = cv2.VideoCapture(0)
face_cascade = cv2.CascadeClassifier(
cv2.data.haarcascades + "haarcascade_frontalface_default.xml")
body_cascade = cv2.CascadeClassifier(
cv2.data.haarcascades + "haarcascade_fullbody.xml")
detection = False
detection_stopped_time = None
timer_started = False
SECONDS_TO_RECORD_AFTER_DETECTION = 5
frame_size = (int(cap.get(3)), int(cap.get(4)))
fourcc = cv2.VideoWriter_fourcc(*"mp4v")
while True:
_, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
bodies = face_cascade.detectMultiScale(gray, 1.3, 5)
if len(faces) + len(bodies) > 0:
if detection:
timer_started = False
else:
detection = True
current_time = datetime.datetime.now().strftime("%d-%m-%Y-%H-%M-%S")
out = cv2.VideoWriter(
f"{current_time}.mp4", fourcc, 20, frame_size)
print("Started Recording!")
elif detection:
if timer_started:
if time.time() - detection_stopped_time >= SECONDS_TO_RECORD_AFTER_DETECTION:
detection = False
timer_started = False
out.release()
print('Stop Recording!')
else:
timer_started = True
detection_stopped_time = time.time()
if detection:
out.write(frame)
# for (x, y, width, height) in faces:
# cv2.rectangle(frame, (x, y), (x + width, y + height), (255, 0, 0), 3)
cv2.imshow("Camera", frame)
if cv2.waitKey(1) == ord('q'):
out.release()
cap.release()
break
cv2.destroyAllWindows()
#@Syntax_fa
Numpy Cheat Sheet0.pdf
3.2 MB
برگه تقلب شماره ۱ پایتون ، کتابخانه Numpy
Cheat Sheet 1 : Numpy
#کتابخانه #cheat_sheet #pdf
#python
➖➖➖➖
Cheat Sheet 1 : Numpy
#کتابخانه #cheat_sheet #pdf
#python
➖➖➖➖
♦️ لیست توابع و نوع های داخلی پایتون.
🔻A
abs() - aiter() - all() - any() - anext() - ascii()
🔹B
bin() - bool() - breakpoint() - bytearray() - bytes()
🔻C
callable() - chr() - classmethod() - compile() - complex()
🔹D
delattr() - dict() - dir() - divmod()
🔻E
enumerate()- eval() - exec()
🔹F
filter() - float() - format() - frozenset()
🔻G
getattr() - globals()
🔹H
hasattr() - hash() - help() - hex()
🔻I
id() - input() - int() - isinstance() - issubclass() - iter()
🔹L
len() - list() - locals()
🔻M
map()- max()- memoryview() - min()
🔹N
next()
🔻O
object() - oct() - open() - ord()
🔹P
pow() - print() - property()
🔻R
range() - repr() - reversed() - round()
🔹S
set() - setattr() - slice() - sorted() - staticmethod() - str() - sum() - super()
🔻T
tuple() - type()
🔹V
vars()
🔻Z
zip()
🔹_
import()
🔻A
abs() - aiter() - all() - any() - anext() - ascii()
🔹B
bin() - bool() - breakpoint() - bytearray() - bytes()
🔻C
callable() - chr() - classmethod() - compile() - complex()
🔹D
delattr() - dict() - dir() - divmod()
🔻E
enumerate()- eval() - exec()
🔹F
filter() - float() - format() - frozenset()
🔻G
getattr() - globals()
🔹H
hasattr() - hash() - help() - hex()
🔻I
id() - input() - int() - isinstance() - issubclass() - iter()
🔹L
len() - list() - locals()
🔻M
map()- max()- memoryview() - min()
🔹N
next()
🔻O
object() - oct() - open() - ord()
🔹P
pow() - print() - property()
🔻R
range() - repr() - reversed() - round()
🔹S
set() - setattr() - slice() - sorted() - staticmethod() - str() - sum() - super()
🔻T
tuple() - type()
🔹V
vars()
🔻Z
zip()
🔹_
import()
توی گیت، objectها یک سری موجودیتهای پایهای هستن که میتونن دیتاهای مختلف رو توی repository ذخیره کنن. مثلا:
blob object, tree object, commit object . . .
برای اینکه بهتر بدونیم گیت چطوری داره اون پشت کار میکنه، توی این مقاله دربارهی git objects صحبت میکنیم.
https://medium.com/@AG1380/mastering-git-git-objects-cc4fbf0a9bcd
blob object, tree object, commit object . . .
برای اینکه بهتر بدونیم گیت چطوری داره اون پشت کار میکنه، توی این مقاله دربارهی git objects صحبت میکنیم.
https://medium.com/@AG1380/mastering-git-git-objects-cc4fbf0a9bcd
Medium
Mastering Git: Git Objects
In Git, objects are fundamental entities that represent different types of data in the repository. For example blobs, trees, commits …
کتاب هایی برای پایتون:
1. "Python Crash Course" نوشته Eric Matthes: این کتاب برای مبتدیان بسیار مناسب است و به شما اصول پایه و مفاهیم اساسی پایتون را آموزش میدهد. همچنین، با استفاده از پروژههای عملی، شما را با کاربردهای واقعی زبان آشنا میکند.
2. "Python for Data Analysis" نوشته Wes McKinney: اگر به تجزیه و تحلیل دادهها علاقهمند هستید، این کتاب برای شما مناسب است. در این کتاب، شما را با استفاده از کتابخانههای محبوب مانند NumPy و Pandas در پایتون آشنا میکند.
3. "Automate the Boring Stuff with Python" نوشته Al Sweigart: این کتاب به شما نشان میدهد که چگونه با استفاده از پایتون کارهای روزمره و خسته کننده را به صورت خودکار انجام دهید. این کتاب مفید برای افرادی است که میخواهند پایتون را برای اتوماسیون و خودکارسازی استفاده کنند.
4. "Fluent Python" نوشته Luciano Ramalho: این کتاب برای افرادی که قصد تسلط بیشتر بر روی زبان پایتون را دارند مناسب است. در این کتاب، مفاهیم پیشرفتهتری مانند توابع فراخوانی، توابع مولد، مدیریت استثناها و غیره را مورد بررسی قرار میدهد.
5. "Python Cookbook" نوشته David Beazley و Brian K. Jones: این کتاب به شما تکنیکها و الگوهای مختلف برنامهنویسی در پایتون را آموزش میدهد. با استفاده از مثالهای عملی، شما را با روشهای بهینهتر برنامهنویسی در پایتون آشنا میکند.
1. "Python Crash Course" نوشته Eric Matthes: این کتاب برای مبتدیان بسیار مناسب است و به شما اصول پایه و مفاهیم اساسی پایتون را آموزش میدهد. همچنین، با استفاده از پروژههای عملی، شما را با کاربردهای واقعی زبان آشنا میکند.
2. "Python for Data Analysis" نوشته Wes McKinney: اگر به تجزیه و تحلیل دادهها علاقهمند هستید، این کتاب برای شما مناسب است. در این کتاب، شما را با استفاده از کتابخانههای محبوب مانند NumPy و Pandas در پایتون آشنا میکند.
3. "Automate the Boring Stuff with Python" نوشته Al Sweigart: این کتاب به شما نشان میدهد که چگونه با استفاده از پایتون کارهای روزمره و خسته کننده را به صورت خودکار انجام دهید. این کتاب مفید برای افرادی است که میخواهند پایتون را برای اتوماسیون و خودکارسازی استفاده کنند.
4. "Fluent Python" نوشته Luciano Ramalho: این کتاب برای افرادی که قصد تسلط بیشتر بر روی زبان پایتون را دارند مناسب است. در این کتاب، مفاهیم پیشرفتهتری مانند توابع فراخوانی، توابع مولد، مدیریت استثناها و غیره را مورد بررسی قرار میدهد.
5. "Python Cookbook" نوشته David Beazley و Brian K. Jones: این کتاب به شما تکنیکها و الگوهای مختلف برنامهنویسی در پایتون را آموزش میدهد. با استفاده از مثالهای عملی، شما را با روشهای بهینهتر برنامهنویسی در پایتون آشنا میکند.
کتابخانه اوپنسورس پایتون برای تولید طرحوارههایی با هوش مصنوعی و در عین حال نزدیک به واقعیت که در پروژه های مختلف میتونه به کارتون بیاد.
https://github.com/nicolas-hbt/pygraft
https://github.com/nicolas-hbt/pygraft
#تجربه
فریمورک برای یادگیری core python نیست،
سورس کد خوندن برای بهتر شدن هست نه یادگیری.
چندروز قبل منتظر بودم یکی از بچهها بیاد ازش یک وسیلهای رو تحویل بگیرم، دیدم زود رسیدم گفتم بد نیست برم یکجا بشینم ی قهوه بخورم.
نشسته بودم سفارشم آماده بشه (قهوه نخوردم، چون dark roast داشت فقط) دیدم توی فضایی جداگانه کنار من (مثل بخش vip) یکنفر درحال آموزش دادن
هست، البته برای دیپ لرنینگ و از روی فریمورک، متوجه شدم خیلی داشت اشتباه توضیح میداد.
بعد از چند دقیقه که حواسم به کلاس اونها بود و مدرس حواسش به من، کلاس ۵ دقیقه استراحت داد و متوجه شدم از اون ۱۲-۱۵ نفر ۳-۴ نفر عضو همین کانال هستند و مدرس و باقی اعضا همه رفیق هستند که دارند تلاش میکنند باهم یاد بگیرند.
خداییش خیلی خیلی لذت بردم (کامیونیتی اینجوری لذت بخش هست) و توی این بحث و اینکه چطوری
چندتاشون سوال پرسیدند و براشون توضیح دادم، بعد دعوت کردن این مبحث رو توی کلاس آموزش بدم.
منم که منتظر تماس بودم، شروع کردم با پایتون کد زدن و آموزش دادن و تأکید کردم این چیزا رو نباید با فریمورک یادگرفت هدف هرچی که باشه
ولی واقعاً دیدن همچین کامیونیتیهایی لذت بسیار زیادی داره، یادگیری رایگان و دردسترس برای همه.
فریمورک برای یادگیری core python نیست،
سورس کد خوندن برای بهتر شدن هست نه یادگیری.
چندروز قبل منتظر بودم یکی از بچهها بیاد ازش یک وسیلهای رو تحویل بگیرم، دیدم زود رسیدم گفتم بد نیست برم یکجا بشینم ی قهوه بخورم.
نشسته بودم سفارشم آماده بشه (قهوه نخوردم، چون dark roast داشت فقط) دیدم توی فضایی جداگانه کنار من (مثل بخش vip) یکنفر درحال آموزش دادن
generator, yield, yield from
هست، البته برای دیپ لرنینگ و از روی فریمورک، متوجه شدم خیلی داشت اشتباه توضیح میداد.
بعد از چند دقیقه که حواسم به کلاس اونها بود و مدرس حواسش به من، کلاس ۵ دقیقه استراحت داد و متوجه شدم از اون ۱۲-۱۵ نفر ۳-۴ نفر عضو همین کانال هستند و مدرس و باقی اعضا همه رفیق هستند که دارند تلاش میکنند باهم یاد بگیرند.
خداییش خیلی خیلی لذت بردم (کامیونیتی اینجوری لذت بخش هست) و توی این بحث و اینکه چطوری
data loading, batching, ...
توی فریمورکهای هوش مصنوعی کار میکنه مونده بودند و اشتباه این بود که بجای درک مطالب اصلی و عملکردشون سعی داشتند از framework
این موضوع رو یاد بگیرند.چندتاشون سوال پرسیدند و براشون توضیح دادم، بعد دعوت کردن این مبحث رو توی کلاس آموزش بدم.
منم که منتظر تماس بودم، شروع کردم با پایتون کد زدن و آموزش دادن و تأکید کردم این چیزا رو نباید با فریمورک یادگرفت هدف هرچی که باشه
ولی واقعاً دیدن همچین کامیونیتیهایی لذت بسیار زیادی داره، یادگیری رایگان و دردسترس برای همه.
@MachineLearning_ir - ML in Production.pdf
6.8 MB
📕 جزوه آموزشی MLOps
🏛 دانشگاه صنعتی شریف
📑 در 122 صفحه!
👨🏻💻 سید عباس حسینی استادیار پژوهشکده AICT دانشگاه شریف، جزوه آموزش MLOps رو در 122 صفحه منتشر کرد.
✅ هدف اصلی MLOps، ایجاد یه جریان کاری یکپارچه و مدیریت مداوم برای مدلهای یادگیری ماشین در محیطهای تولیدی است تا عملکرد بهینه و پایداری را به همراه داشته باشیم.💯
🏛 دانشگاه صنعتی شریف
📑 در 122 صفحه!
👨🏻💻 سید عباس حسینی استادیار پژوهشکده AICT دانشگاه شریف، جزوه آموزش MLOps رو در 122 صفحه منتشر کرد.
✅ هدف اصلی MLOps، ایجاد یه جریان کاری یکپارچه و مدیریت مداوم برای مدلهای یادگیری ماشین در محیطهای تولیدی است تا عملکرد بهینه و پایداری را به همراه داشته باشیم.💯
با سلام و وقت بخیر با توجه به اینکه بنده برای یک ارائه و سمینار در حوزه تکنولوژی دارم در صورتی که علاقه مند به یادگیری برنامه نویسی هستید یا در حوزه های برنامه نویسی فعالیت دارید در این پرسشنامه برای ارزیابی شرکت کنید موفق باشید https://survey.porsline.ir/s/KW3s395M
Porsline
ارزیابی حوزه های تکنولوژی
با پُرسلاین به راحتی پرسشنامه خود را طراحی و ارسال کنید و با گزارشهای لحظهای آن به سرعت تصمیم بگیرید.
نشستم با
زمان بندیهاش بسیار جالب شد،
توی پایتون هموار ه حدود ۷ دقیقه زمان میبره
از
و پیادهسازی توی
حتی اگر تفاوت محاسبات بین
دلیلش رو نمیدونم ولی حتماً دنبالش میگردم.
Rust
یک تابع محاسباتی رو که جزو فرمولهای شرکت بود پیادهسازی کردم، و آوردمش توی پایتون؛ زمان بندیهاش بسیار جالب شد،
توی پایتون هموار ه حدود ۷ دقیقه زمان میبره
از
numpy
که استفاده میکنم، به ۱ دقیقه هم میرسید و پیادهسازی توی
Rust
؛ کمتر از ۵ ثانیه شد.حتی اگر تفاوت محاسبات بین
Rust
, Python
رو درک کنم موضوع و اختلاف سرعت بالای بین Numpy
, Rust
هنوز برای خودم عجیب هست.دلیلش رو نمیدونم ولی حتماً دنبالش میگردم.
به بهانه معرفی فریمورک <جایخالی> با ۳ برابر سرعت در پاسخگویی نسبت به
وقتی صحبت از بکند توی پایتون میشه تا همین چندسال قبل تنها گزینه خوب فقط و فقط
گفت که پایتون فقط یک جو هست و خیلی زود هم تموم میشه؛ بعد هم ادعا کرد به همین دلیل مطالبش رو نیاورده و ترجیح میده راجب مطالب مهمتر صحبت کنه (سخنرانی به شوخی گذشت و تنها کسی که اعتراض کرد توی سالن ۳۰۰-۴۰۰ نفری من بودم) الان شنیدم همون بنده خدا داره از پایتون نون میخوره و دوره هم میذاره.
بگذریم اومد جلوتر و
دپلوی رو
حتی جوگیری زیاد شد مدل هارو سمت وب و موبایل و ... هم بردند که صحبتی نیست.
یادی کنم از شب زنده داریها و دپلوی کدها و مدلها با
۲ نسخه اول مدلهای پردازش تصویرمون روی کلاستر رزپبری پای و نسخه آخر روی لپتاپ شخصی بنده بود.
ازین دوران گذشتیم
البته اضافه کنم سرویسهایی مثل
بعد از این زمان
به لطف همهی دولوپرهای پروژههای قبلی
دولوپرهای پروژههای قبلی نشون دادند که توسعه پکیجهایی با ایدههایی حتی کمی بهتر بسیار ارزش داره و جامعه پایتون همیشه قدردان این زحمات خواهد بود.
تا اینجا که حالا
توی مطالبی که داشتم میخوندم و بنچمارکهایی که از باقی شنیدم اکثرا اشاره میکنند که به راحتی سرعتی
از نظر کدهم شخصا یک نگاهی انداختم به همون سادگی هست؛ خلاصه که شمارو نمیدونم اما شخصا فکر کردم باید قدردان زحمات تیمهای توسعه
FastAPI
و البته باهدف battery included
بودن مثل django
وقتی صحبت از بکند توی پایتون میشه تا همین چندسال قبل تنها گزینه خوب فقط و فقط
django
بود و مرسی دولوپرهاش؛ تو زمانی که همه غر میزدند پایتون کند هست و نباید و ... (تو ایرانم ازین حرفا زیاد بود) قشنگ یادمه ی بنده خدایی اسم نمیبرم ولی معروفم هست توی یکی از دانشگاها پنل سخنرانی داشت.گفت که پایتون فقط یک جو هست و خیلی زود هم تموم میشه؛ بعد هم ادعا کرد به همین دلیل مطالبش رو نیاورده و ترجیح میده راجب مطالب مهمتر صحبت کنه (سخنرانی به شوخی گذشت و تنها کسی که اعتراض کرد توی سالن ۳۰۰-۴۰۰ نفری من بودم) الان شنیدم همون بنده خدا داره از پایتون نون میخوره و دوره هم میذاره.
بگذریم اومد جلوتر و
async
معرفی شد؛ هوش مصنوعی از فقط ریسرچ بودن داشت خارج میشد و تجریه دپلوی مهم شد.دپلوی رو
django
انقدر سخت و غیر بهینه بود که عملا خیلی از تیمهایی که پروژههاشون مشتری کافی رو داشت مجبور به توسعه بکند توی زبانهای برنامه نویسی دیگه بودند؛ خیلی از بچه ها رفتند سراغ C, C++
, Go-lang
و ...حتی جوگیری زیاد شد مدل هارو سمت وب و موبایل و ... هم بردند که صحبتی نیست.
یادی کنم از شب زنده داریها و دپلوی کدها و مدلها با
Majid A.M
(آیدی نمیزارم ولی احتمالا هرکی django
کار میکنه میشناسه) عزیز و حجم اپتیمایزهای بالا جزو اولین نفرات و تیمهایی بودیم که کل مدل هوش مصنوعی و اپتیمایز و وب و ... همه روی پایتون بود و البته دسترسی و درخواست رایگان (این برای زمانی بود که همه میرفتن سراغ C, ...
برای دپلوی و کسی باورش نمیشد بشه مدلهای سنگین رو روی سرور بیاری و اون تعداد ریکوست رو با پایتون جواب بده) اون زمان همه فکر میکردند روی سرورهای خفن و ...هستیم ولی این موضوع رو اولین بار هست دارم اعلام میکنم؛۲ نسخه اول مدلهای پردازش تصویرمون روی کلاستر رزپبری پای و نسخه آخر روی لپتاپ شخصی بنده بود.
ازین دوران گذشتیم
flask
با ایدههای جدید اومد و خوبیش این بود که دیگه به اندازه django
سنگین نبود (برای تستهای کوچیک خیلی جواب بود ولی بازم همون مشکلات رو داشت)البته اضافه کنم سرویسهایی مثل
Celery, ...
خیلی از مشکلات رو توی django
حل میکردندبعد از این زمان
FastAPI
معرفی شد؛ روی همون کامیتهای اولیه که عمومی شد چون از بچهها و همکارای بکندم توی شرکتهای سیلیکونولی و ... بسیار راجبش شنیدم به خیلی از دوستان بکند دولوپرم پیشنهاد کردم که وقتش هست یاد بگیرند و بهش کد donate
کنند (کاش خودم اینکارو میکردم) خیلی هم مسخره میکردند. همون Majid A.M
جزوشون بود.به لطف همهی دولوپرهای پروژههای قبلی
django - flask - fastapi
حالا خیلیها باور دارند پایتون میتونه توی پروداکشن و برای پروژههای بزرگ استفاده بشه؛ خیلیها قبول دارند که میشه با پایتون کد زد و از پکیجهایی استفاده کرد که سرعت پردازش بسیار بیشتر بشه .دولوپرهای پروژههای قبلی نشون دادند که توسعه پکیجهایی با ایدههایی حتی کمی بهتر بسیار ارزش داره و جامعه پایتون همیشه قدردان این زحمات خواهد بود.
تا اینجا که حالا
community
زبانی مثل Rust
برای توسعه یک web framework
با سرعت بیشتر و البته به راحتی موارد قبلی برای Python
وارد شده و پروژه Robyn رو به حد خوبی رسونده بطوری که امروز توی چندین جلسه مختلف با دوستان و همکاران بسیار درمورد این پروژه شنیدم.توی مطالبی که داشتم میخوندم و بنچمارکهایی که از باقی شنیدم اکثرا اشاره میکنند که به راحتی سرعتی
۳
برابر fastapi
رو ارائه میده.از نظر کدهم شخصا یک نگاهی انداختم به همون سادگی هست؛ خلاصه که شمارو نمیدونم اما شخصا فکر کردم باید قدردان زحمات تیمهای توسعه
django, flask, fastapi
و برو بچه هایی که توی دوران سخنرانی ضد سرعت و ... پایتون با این زبان برنامه نویسی ادامه دادند باشم.Robyn Framework
Robyn - A Fast, Innovator Friendly, and Community Driven Python Web Framework.
Robyn is a fast, innovator-friendly, and community-driven Python web framework.