دسته: پایتون

برنامه نویسی پایتون

جدید کدنویسی تمیز در پایتون با دستورالعمل PEP 8

PEP 8 یا PEP8 یا PEP-8 سندی است که دستورالعمل ها و بهترین شیوه ها را در مورد نحوه نوشتن کد پایتون ارائه می دهد. تمرکز اصلی PEP 8 بهبود خوانایی و سازگاری کد پایتون است. PEP مخفف Python Enhancement Proposal است و چندین نسخه از آنها وجود دارد. در این آموزش دستورالعمل های کلیدی ارائه شده در PEP 8 معرفی می شوند. اصلا چرا به PEP8 نیاز داریم؟ یک کد بیشتر از آنچه نوشته می شود خوانده می شود. مثلا ممکن است چند دقیقه یا یک روز کامل را صرف نوشتن یک کد کنید. وقتی آن را نوشتید، دیگر هرگز آن را نخواهید نوشت. اما مطمئناً باید دوباره آن را بخوانید. آن قطعه کد ممکن است بخشی از پروژه ای باشد که روی آن کار می کنید. هر بار که به آن فایل برمی‌گردید، باید به خاطر داشته باشید که آن کد چه کاری انجام می‌دهد و چرا آن را نوشته‌اید، بنابراین خوانا بودن کد مهم است. همچنین اگر به عنوان یک توسعه دهنده دنبال شغل هستید پیروی از PEP 8 بسیار مهم است. نوشتن کد واضح و خوانا، حرفه ای بودن شما را نشان می دهد و به کارفرما می گوید که می [ . . . ]

  • 258 بازدید
  • 0
  • 6 ژانویه, 2024
ادامه مطلب

جدید ارتباط سریال در پایتون با استفاده از کتابخانه PySerial

PySerial یک کتابخانه کراس پلتفرم است که یک ارتباط سریال برای پایتون فراهم می کند. این کتابخانه به شما امکان می دهد داده ها را از برنامه های پایتون خود در پورت های سریال بخوانید و بنویسید. پورت های سریال معمولاً برای اتصال رایانه ها به تجهیزات جانبی مانند بردهای آردوینو، ماژول های GPS و اسکنر بارکد استفاده می شوند. ماژول pySerial با دستور pip به این صورت نصب می شود: پیدا کردن پورتهای COM برای فهرست کردن پورت های COM موجود با استفاده از Pyserial، می توانید از کد پایتون زیر استفاده کنید: ابتدا ماژول serial.tools.list_ports را وارد می کنیم، که توابعی را برای کار با پورت های سریال ارائه می دهد. تابع list_ports.comports لیستی از پورت های سریال موجود را برمی گرداند. حلقه لیست را پیمایش می کند و نام هر پورت موجود در لیست را چاپ می کند (به عنوان مثال، ‘COM1’، ‘COM2’، و غیره). باز کردن یک پورت: همیشه باید در ابتدای برنامه ماژول را import کنیم: برای باز کردن یک پورت از دستور زیر استفاده می کنیم: پارامترهای مختلفی را می توانیم در این تابع تنظیم کنیم. این پارامترها را در زیر بررسی می کنیم:  port نام پورت می‌تواند رشته‌ای [ . . . ]

  • 594 بازدید
  • 0
  • 30 دسامبر, 2023
ادامه مطلب

جدید نمایش ویژگی های یک شی در پایتون با استفاده از __repr__

فرض کنید که بخواهیم ویژگی های یک شی را که از روی یک کلاس ایجاد کرده ایم نمایش دهیم. کلاس Person را که در مطالب قبلی استفاده کردیم در نظر بگیرید: اگر یک کارمند جدید با این کلاس ایجاد کنیم و با دستور print بخواهیم مقدارش را نمایش دهیم خروجی به این شکل نمایش داده می شود: <__main__.Person object at 0x000001F327211370> اما این نمایش چیزی از خصوصیات شی Kamran ارایه نمی دهد. اما برای این کار می توانیم از متد خاصی به نام __repr__ استفاده کنیم. متد __repr__ یک متد خاص در کلاس‌های پایتون است که نمایش رشته‌ای از یک شی را برمی‌گرداند. توسط تابع ()repr داخلی فراخوانی می شود و برای ارائه یک نمایش رشته دقیق تر و رسمی از یک شی استفاده می شود. در اینجا مثالی از نحوه تعریف متد __repr__ در کلاس Person آورده شده است: در این مثال، متد __repr__ رشته‌ای را برمی‌گرداند که می‌توان از آن برای ایجاد مجدد شی Person استفاده کرد. این رشته حاوی مقادیر first_name، last_name و IDnumber شیء است. برنامه کامل را در زیر می بینید: این بار با اجرای برنامه خروجی را به این صورت مشاهده خواهید نمود: Person(‘Kamran’, ‘Hamidi’, 1257148) که مقادیر ویژگی [ . . . ]

  • 315 بازدید
  • 0
  • 2 دسامبر, 2023
ادامه مطلب

جدید چند ریختی یا polymorphism در کلاس های پایتون

اصطلاح “چند شکلی” یا “چند ریختی” یا polymorphism از زبان یونانی گرفته شده و به معنای چیزی است که چندین شکل به خود می گیرد.چند ریختی به توانایی یک زیر کلاس برای انطباق متدی که قبلاً در سوپرکلاس آن وجود دارد برای رفع نیازهایش اشاره دارد. به بیان دیگر، یک زیر کلاس می تواند از متدی از سوپرکلاس خود استفاده کند یا در صورت نیاز آن را تغییر دهد.همان کلاس Person که در مطالب قبلی استفاده کردیم را در نظر بگیرید: با استفاده از این کلاس می توان اعضای شاغل در یک شرکت را تعریف نمود و نام و نام خانوادگی و شماره پرسنلی آنها را مشخص کرد. همچنین از طریق متد set_salary می توان در زمان لزوم حقوق هر شخص را نیز معین کرد. حالا فرض کنیم که بعضی کارمندها رتبه بالاتری دارند و حقوق آنها 10 درصد بیشتر از سایر کارمندان است و قصد داریم یک کلاس فرزند برای آنها ایجاد کنیم و بتوانیم حقوق آنها را جداگانه مشخص کنیم. برای ایجاد یک زیر کلاس که از چند شکلی استفاده می کند، می توانیم یک کلاس جدید تعریف کنیم که از کلاس Person به ارث می برد و متد set_salary را دوباره در [ . . . ]

  • 151 بازدید
  • 0
  • 2 دسامبر, 2023
ادامه مطلب

جدید وراثت کلاس ها در پایتون

مانند هر زبان شی گرای دیگر، پایتون نیز از مفهوم وراثت کلاس پشتیبانی می کند. وراثت به ما اجازه می دهد تا یک کلاس جدید را از دل یک کلاس موجود ایجاد کنیم.کلاس جدیدی که ایجاد می شود به عنوان زیر کلاس (کلاس فرزند یا مشتق شده) و کلاس موجود که کلاس فرزند از آن مشتق شده است به عنوان سوپرکلاس (کلاس والد یا پایه) شناخته می شود.زیر کلاس یا کلاس فرزند کلاسی است که ارث می برد. سوپرکلاس یا کلاس والد کلاسی است که متدها و/یا ویژگی ها از آن به ارث برده می شوند.بگذارید برای بررسی این مفهوم به سراغ مثال قبلی برویم. کلاس Person می تواند اعضای شاغل در یک شرکت را تولید کند و بعضی ویژگی های مربوط به انها را مشخص کند. مثل نام و نام خانوادگی و شماره پرسنلی و حقوق. اما همه اعضای یک شرکت لزوما موقعیت های مشابهی ندارند. فرض کنید قصد داریم اعضای یک شرکت را به دو دسته کارمند و سهامدار تقسیم کنیم. بنابراین لازم است برای هر کدام یک کلاس جداگانه تعریف نماییم. اما بعضی خصوصیات هر دو دسته مشابه هم است. مثلا هر دو نام و نام خانوادگی دارند. بازنویسی همه آن کد [ . . . ]

  • 145 بازدید
  • 0
  • 2 دسامبر, 2023
ادامه مطلب

جدید کپسوله سازی یا Encapsulation در پایتون

کپسوله‌سازی فرآیندی است برای جلوگیری از دسترسی مشتریان به بعضی ویژگی‌های ، که فقط از طریق روش‌های خاص قابل دسترسی است. ویژگی‌های خصوصی ویژگی‌های غیرقابل دسترسی هستند و ما از دو underscore  (__) برای اعلام ویژگی های خصوصی استفاده می کنیم. مثال قبلی را در نظر بگیرید. فرض کنید می خواهیم در کلاس Person متدی داشته باشیم که تعداد ساعت اضافه کار کارمند در یک ماه را بگیرد و اضافه حقوق این ماه او را به ما بدهد. ابتدا لازم است یک ویژگی خصوص در __init__ اضافه کنیم که دستمزد اضافه کاری به ازای هر یک ساعت را در آن ذخیره کنیم: همچنین باید یک متد به کلاس اضافه کنیم که تعداد ساعت اضافه کار را بگیرد و اضافه حقوق را محاسبه نماید و برگرداند: کلاس را به طور کامل می توانید در زیر مشاهده کنید: حالا یک عضو تعیین می کنیم و سپس مقدار اضافه حقوق او را دریافت می نماییم: با توجه به اینکه دستمزد یک ساعت اضافه حقوق را از طریق self.__extraperhour معادل 500000 ریال تعریف کرده بودیم، این کارمند به ازای 9 ساعت اضافه کار مبلغ 4500000 ریال اضافه حقوق دریافت خواهد کرد. حالا اگر تلاش کنید که با دستور زیر [ . . . ]

  • 143 بازدید
  • 0
  • 2 دسامبر, 2023
ادامه مطلب

جدید کلاسها و اشیا در پایتون

در برنامه نویسی شی گرا (OOP)، یک کلاس یک طرح یا قالب است که متغیرها و روش های مشترک برای همه اشیاء از یک نوع خاص را تعریف می کند. این یک نوع داده تعریف شده توسط کاربر است که اعضای داده و توابع عضو خود را دارد که با ایجاد نمونه ای از آن کلاس قابل دسترسی و استفاده است. کلاس یک موجودیت منطقی است که گروهی از اشیاء را با خواص و رفتار مشابه نشان می دهد.از طرف دیگر، یک شی نمونه ای از یک کلاس است. شی یک موجود فیزیکی است که نمونه خاصی از یک کلاس را نشان می دهد. هنگامی که یک کلاس تعریف می شود، هیچ حافظه ای به آن تخصیص نمی یابد، اما زمانی که یک شی نمونه سازی می شود (یعنی ایجاد می شود) به آن حافظه تخصیص می یابد. یک شی می تواند چندین بار بنا بر نیاز ایجاد شود.برای نشان دادن این موضوع، اجازه دهید کلاسی به نام ماشین را در نظر بگیریم. کلاس ماشین طرحی است که متغیرها و روش های مشترک برای همه خودروها مانند رنگ، مدل و سال ساخت را تعریف می کند. یک شی از کلاس  نشان دهنده یک ماشین خاص [ . . . ]

  • 173 بازدید
  • 0
  • 2 دسامبر, 2023
ادامه مطلب

جدید معرفی برنامه نویسی شی گرا یا oop

برنامه نویسی شی گرا (OOP) یک الگوی برنامه نویسی است که می توانید از آن برای مدل سازی دنیای واقعی در کد استفاده کنید. استفاده از این پارادایم مزایای متعددی دارد. با OOP، می‌توانید پیاده‌سازی‌هایی ایجاد کنید که به راحتی قابل تغییر و گسترش با کد کمتر هستند. این بر اساس ایده گروه بندی داده ها و توابع مرتبط به گروه های اطلاعات است. این گروه ها به عنوان اجسام شناخته می شوند. برنامه نویسی شی گرا (OOP) یک الگوی برنامه نویسی است که بر مفهوم کلاس ها و اشیاء تکیه دارد. برای ایجاد ساختار یک برنامه نرم افزاری به قطعات ساده و قابل استفاده مجدد از قطعه های کد (معمولاً کلاس ها) استفاده می شود که برای ایجاد نمونه های جداگانه از اشیاء استفاده می شود. OOP به گونه ای طراحی شده است که هنگام برنامه نویسی باید روی یک شی تمرکز کرد نه بر روی رویه ها. یک شی می تواند هر چیزی باشد که در اطراف خود می بینیم. مثلا می تواند یک انسان باشد که دارای برخی ویژگی ها است مانند – نام، آدرس، کد ملی و غیره، یا یک صندلی که بر اساس اندازه، رنگ، مواد به کار رفته، قیمت [ . . . ]

  • 125 بازدید
  • 0
  • 2 دسامبر, 2023
ادامه مطلب

جدید ساخت فایل gif با استفاده از pillow در پایتون

ما می توانیم از Pillow برای ایجاد یک GIF از چندین تصویر استفاده کنیم. در اینجا یک نمونه کد ارایه شده که نحوه ایجاد یک GIF از سه تصویر با استفاده از Pillow را نشان می دهد: در این مثال، ابتدا لیستی از اشیاء Image از سه فایل تصویری با استفاده از متد Image.open از Pillow ایجاد می کنیم. سپس فریم ها را به عنوان یک فایل GIF با استفاده از متد save با آرگومان format=’GIF’ و پارامتر append_images ذخیره می کنیم تا فریم های باقی مانده را به فریم اول اضافه کنیم. پارامتر duration فاصله زمان بین فریم ها را بر حسب میلی ثانیه مشخص می کند و پارامتر loop تعداد دفعاتی را که انیمیشن باید حلقه بزند (0 به معنای حلقه بی نهایت است) را مشخص می کند.

  • 248 بازدید
  • 0
  • 27 نوامبر, 2023
ادامه مطلب

جدید پیدا کردن لبه های یک تصویر با استفاده از pillow در پایتون

تشخیص لبه شامل انواع روش های ریاضی با هدف شناسایی لبه ها است که به عنوان منحنی هایی در یک تصویر دیجیتالی تعریف می شود که در آن روشنایی تصویر به شدت تغییر می کند یا به طور علمی تر، ناپیوستگی دارد. تشخیص لبه در تصاویر یک ابزار اساسی در پردازش تصویر، بینایی ماشین و بینایی کامپیوتری است، به ویژه در زمینه‌های تشخیص ویژگی و استخراج ویژگی. در پایتون ما می توانیم از Pillow برای یافتن لبه های یک تصویر استفاده کنیم. به این منظور برنامه زیر به عنوان نمونه نوشته شده است: نتیجه را در شکل زیر می توانید مشاهده کنید:

  • 139 بازدید
  • 0
  • 27 نوامبر, 2023
ادامه مطلب