جدید چطور نسخه های پایتون نصب شده در ویندوز را تشخیص دهیم؟
کافی است در ترمینال ادیتور این دستور را اجرا کنید: نتیجه مشابه زیر نمایش داده خواهد شد:
برنامه نویسی پایتون
کافی است در ترمینال ادیتور این دستور را اجرا کنید: نتیجه مشابه زیر نمایش داده خواهد شد:
پایتون به شما امکان می دهد تا نصب بسته های جداگانه را برای پروژه های مختلف مدیریت کنید. venv یک فضای نصب پایتون ایزوله “مجازی” ایجاد می کند. هنگامی که روی پروژه های مختلف کار می کنید، می توانید یک محیط مجازی جدید ایجاد کنید که از سایر محیط های مجازی جدا شده است. فایده محیط مجازی این است که ماژول ها و کتابخانه ها و بسته ها را می توانید با اطمینان نصب کرد و با محیط پروژه دیگر تداخلی نخواهد داشت. همچنین اگر پروژه ای را برای شخص یا مشتری دیگری انجام دهید برای اطمینان از اینکه پروژه قطعا روی کامپیوتر او نیز بدون مشکل کار خواهد کرد بهترین راه استفاده از محیط مجازی است. فرض کنید شما برنامه را با یک نسخه خاص از پایتون می نویسید و کتابخانه ها و بسته های ثالث را دانلود و نصب می کنید. برنامه شما با ورژن های فعلی کتابخانه هایی که نصب کرده اید به خوبی روی کامپیوتر شما اجرا می شوند. اما چه اطمینانی وجود دارد که اگر برنامه را برای شخص دیگری ارسال کنید بدون مشکل و خطا روی کامپیوتر او نیز اجرا شود؟ بنابراین باید راهی پیدا کنید که او هم [ . . . ]
در قسمت قبل دیدیم که چطور می توانیم یک دیتابیس ایجاد کنیم، در دیتابیس جدول درست کنیم و داده هایمان را به جدول اضافه نماییم. حالا قصد داریم که داده های موجود را از جدول استخراج کنیم. کد زیر را ببینید: کد با وارد کردن دو ماژول پایتون شروع می شود: os و sqlite3. خطوط بعدی مسیر فایل پایگاه داده SQLite را تعیین می کند: os.path.abspath(__file__) مسیر مطلق اسکریپت فعلی (فایلی که این کد در آن قرار دارد) را برمی گرداند. os.path.dirname نام دایرکتوری را از مسیر مطلق استخراج می کند. os.path.join مسیر دایرکتوری را با نام فایل ‘library.db’ ترکیب می کند تا مسیر کامل فایل پایگاه داده را ایجاد کند. حالا باید یک اتصال یا connection به پایگاه داده برقرار کنیم. sqlite3.connect(db_path) یک اتصال به پایگاه داده SQLite واقع در db_path برقرار می کند. اکنون می توانیم یک Query یا پرس و جو اجرا کنیم: خط بالا تمام سطرهای جدول با نام “books” را بازیابی می کند و نتیجه پرس و جو در متغیر query ذخیره می شود. بعد از ذخیره محتوای جدول می توانیم داده ها را با استفاده از fetchall استخراج کنیم و در متغیر data ذخیره و آن را چاپ کنیم. [ . . . ]
در این بخش از آموزش قصد داریم که نحوه کار کردن با این SQLite را در پایتون با استفاده از یک مثال ساده شروع کنیم. قبل از هر چیز بهترین خبری که میتوان داد این است که این بسته نیازی به نصب ندارد و از قبل در پایتون گنجانده شده است. ما در این مثال قصد داریم که یک دیتابیس برای کتابهایمان ایجاد کنیم. پس به طور مستقیم sqlite3 را به برنامه وارد میکنیم. حالا باید یک کانکشن به دیتابیس اضافه کنیم. دقت کنید که لازم نیست از قبل دیتابیس را ساخته باشید. حالا باید دستورهای اولیه را به sqlite بدهیم تا یک جدول در دیتابیس ایجاد کند و یژگیهای مورد نظر را به آن اضافه نماید. اولین خط دستور این است که اگر جدولی با نام books در دیتابیس وجود ندارد آن را ایجاد کند. سپس کلید اولیه را با نام id ایجاد میکنیم که یک عدد صحیح است. در خطوط بعد موارد مورد نیاز را به جدول اضافه می کنیم. این موارد عبارت هستند از عنوان کتاب، نویسنده، ژانر، سال و تعداد صفحات. اما اگر دقت کنید دیتابیس در پوشه برنامه شما ایجاد نشده است. بلکه در مسیر پیش فرض ایجاد گشته است. [ . . . ]
پایگاه داده یا دیتابیس چیست؟ پایگاه داده مجموعه ای سازمان یافته از اطلاعات است که می تواند جستجو، مرتب شده و به روز شود. نکات کلیدی پایگاه های داده را در زیر مشاهده می کنید: داده های ساختاریافته: پایگاه های داده داده ها را به صورت سازماندهی شده ذخیره می کنند. هر بخش از اطلاعات با سایر نقاط داده مرتبط است. می توانید به آن به عنوان یک سیستم بایگانی دیجیتال فکر کنید که در آن داده ها به طور مرتب طبقه بندی می شوند. سیستم مدیریت پایگاه داده (DBMS): پایگاه های داده معمولاً توسط نرم افزاری به نام DBMS مدیریت می شوند. این سیستم ذخیره سازی، بازیابی و دستکاری داده ها را مدیریت می کند. نمونه هایی از DBMS عبارتند از MySQL، PostgreSQL و SQLite2. سطرها و ستون ها: پایگاه های داده داده ها را در ردیف ها (record) و ستون ها (attribute) سازماندهی می کنند. این ساختار جدولی امکان پردازش و بازیابی کارآمد اطلاعات را فراهم می کند. چه در حال ساخت یک برنامه کوچک باشید یا مدیریت داده های پیچیده سازمانی، درک پایگاه های داده ضروری است. آنها ستون فقرات برنامه های مدرن را تشکیل می دهند! پایگاه های داده رابطه ای [ . . . ]
PEP 8 یا PEP8 یا PEP-8 سندی است که دستورالعمل ها و بهترین شیوه ها را در مورد نحوه نوشتن کد پایتون ارائه می دهد. تمرکز اصلی PEP 8 بهبود خوانایی و سازگاری کد پایتون است. PEP مخفف Python Enhancement Proposal است و چندین نسخه از آنها وجود دارد. در این آموزش دستورالعمل های کلیدی ارائه شده در PEP 8 معرفی می شوند. اصلا چرا به PEP8 نیاز داریم؟ یک کد بیشتر از آنچه نوشته می شود خوانده می شود. مثلا ممکن است چند دقیقه یا یک روز کامل را صرف نوشتن یک کد کنید. وقتی آن را نوشتید، دیگر هرگز آن را نخواهید نوشت. اما مطمئناً باید دوباره آن را بخوانید. آن قطعه کد ممکن است بخشی از پروژه ای باشد که روی آن کار می کنید. هر بار که به آن فایل برمیگردید، باید به خاطر داشته باشید که آن کد چه کاری انجام میدهد و چرا آن را نوشتهاید، بنابراین خوانا بودن کد مهم است. همچنین اگر به عنوان یک توسعه دهنده دنبال شغل هستید پیروی از PEP 8 بسیار مهم است. نوشتن کد واضح و خوانا، حرفه ای بودن شما را نشان می دهد و به کارفرما می گوید که می [ . . . ]
PySerial یک کتابخانه کراس پلتفرم است که یک ارتباط سریال برای پایتون فراهم می کند. این کتابخانه به شما امکان می دهد داده ها را از برنامه های پایتون خود در پورت های سریال بخوانید و بنویسید. پورت های سریال معمولاً برای اتصال رایانه ها به تجهیزات جانبی مانند بردهای آردوینو، ماژول های GPS و اسکنر بارکد استفاده می شوند. ماژول pySerial با دستور pip به این صورت نصب می شود: پیدا کردن پورتهای COM برای فهرست کردن پورت های COM موجود با استفاده از Pyserial، می توانید از کد پایتون زیر استفاده کنید: ابتدا ماژول serial.tools.list_ports را وارد می کنیم، که توابعی را برای کار با پورت های سریال ارائه می دهد. تابع list_ports.comports لیستی از پورت های سریال موجود را برمی گرداند. حلقه لیست را پیمایش می کند و نام هر پورت موجود در لیست را چاپ می کند (به عنوان مثال، ‘COM1’، ‘COM2’، و غیره). باز کردن یک پورت: همیشه باید در ابتدای برنامه ماژول را import کنیم: برای باز کردن یک پورت از دستور زیر استفاده می کنیم: پارامترهای مختلفی را می توانیم در این تابع تنظیم کنیم. این پارامترها را در زیر بررسی می کنیم: port نام پورت میتواند رشتهای [ . . . ]
فرض کنید که بخواهیم ویژگی های یک شی را که از روی یک کلاس ایجاد کرده ایم نمایش دهیم. کلاس Person را که در مطالب قبلی استفاده کردیم در نظر بگیرید: اگر یک کارمند جدید با این کلاس ایجاد کنیم و با دستور print بخواهیم مقدارش را نمایش دهیم خروجی به این شکل نمایش داده می شود: <__main__.Person object at 0x000001F327211370> اما این نمایش چیزی از خصوصیات شی Kamran ارایه نمی دهد. اما برای این کار می توانیم از متد خاصی به نام __repr__ استفاده کنیم. متد __repr__ یک متد خاص در کلاسهای پایتون است که نمایش رشتهای از یک شی را برمیگرداند. توسط تابع ()repr داخلی فراخوانی می شود و برای ارائه یک نمایش رشته دقیق تر و رسمی از یک شی استفاده می شود. در اینجا مثالی از نحوه تعریف متد __repr__ در کلاس Person آورده شده است: در این مثال، متد __repr__ رشتهای را برمیگرداند که میتوان از آن برای ایجاد مجدد شی Person استفاده کرد. این رشته حاوی مقادیر first_name، last_name و IDnumber شیء است. برنامه کامل را در زیر می بینید: این بار با اجرای برنامه خروجی را به این صورت مشاهده خواهید نمود: Person(‘Kamran’, ‘Hamidi’, 1257148) که مقادیر ویژگی [ . . . ]
اصطلاح “چند شکلی” یا “چند ریختی” یا polymorphism از زبان یونانی گرفته شده و به معنای چیزی است که چندین شکل به خود می گیرد.چند ریختی به توانایی یک زیر کلاس برای انطباق متدی که قبلاً در سوپرکلاس آن وجود دارد برای رفع نیازهایش اشاره دارد. به بیان دیگر، یک زیر کلاس می تواند از متدی از سوپرکلاس خود استفاده کند یا در صورت نیاز آن را تغییر دهد.همان کلاس Person که در مطالب قبلی استفاده کردیم را در نظر بگیرید: با استفاده از این کلاس می توان اعضای شاغل در یک شرکت را تعریف نمود و نام و نام خانوادگی و شماره پرسنلی آنها را مشخص کرد. همچنین از طریق متد set_salary می توان در زمان لزوم حقوق هر شخص را نیز معین کرد. حالا فرض کنیم که بعضی کارمندها رتبه بالاتری دارند و حقوق آنها 10 درصد بیشتر از سایر کارمندان است و قصد داریم یک کلاس فرزند برای آنها ایجاد کنیم و بتوانیم حقوق آنها را جداگانه مشخص کنیم. برای ایجاد یک زیر کلاس که از چند شکلی استفاده می کند، می توانیم یک کلاس جدید تعریف کنیم که از کلاس Person به ارث می برد و متد set_salary را دوباره در [ . . . ]
مانند هر زبان شی گرای دیگر، پایتون نیز از مفهوم وراثت کلاس پشتیبانی می کند. وراثت به ما اجازه می دهد تا یک کلاس جدید را از دل یک کلاس موجود ایجاد کنیم.کلاس جدیدی که ایجاد می شود به عنوان زیر کلاس (کلاس فرزند یا مشتق شده) و کلاس موجود که کلاس فرزند از آن مشتق شده است به عنوان سوپرکلاس (کلاس والد یا پایه) شناخته می شود.زیر کلاس یا کلاس فرزند کلاسی است که ارث می برد. سوپرکلاس یا کلاس والد کلاسی است که متدها و/یا ویژگی ها از آن به ارث برده می شوند.بگذارید برای بررسی این مفهوم به سراغ مثال قبلی برویم. کلاس Person می تواند اعضای شاغل در یک شرکت را تولید کند و بعضی ویژگی های مربوط به انها را مشخص کند. مثل نام و نام خانوادگی و شماره پرسنلی و حقوق. اما همه اعضای یک شرکت لزوما موقعیت های مشابهی ندارند. فرض کنید قصد داریم اعضای یک شرکت را به دو دسته کارمند و سهامدار تقسیم کنیم. بنابراین لازم است برای هر کدام یک کلاس جداگانه تعریف نماییم. اما بعضی خصوصیات هر دو دسته مشابه هم است. مثلا هر دو نام و نام خانوادگی دارند. بازنویسی همه آن کد [ . . . ]