گام بعدی چیست
اگر تا اینجا این کتاب را به طور کامل مطالعه کرده اید و برنامه های زیادی نوشته و تمرین کرده اید، باید در کار با پایتون احساس راحتی و آشنایی کافی پیدا کرده باشید. احتمالاً برای آزمودن قابلیت های مختلف و تقویت مهارت های پایتون خود، چند برنامۀ پایتون نیز نوشته اید. اگر تاکنون این کار را انجام نداده اید، اکنون باید آن را انجام دهید. حالا پرسش این است: گام بعدی چیست؟
پیشنهاد می کنم به نوشتن این برنامه سرگرم شوید:
برنامۀ خط فرمان دفترچۀ آدرس خودتان را ایجاد کنید؛ برنامه ای که با استفاده از آن بتوانید مخاطبان خود مانند دوستان، اعضای خانواده و همکاران و اطلاعات مربوط به آنها همچون نشانی ایمیل و/یا شمارۀ تلفن را مرور، اضافه، ویرایش، حذف یا جست و جو کنید. اطلاعات باید برای بازیابی در آینده ذخیره شوند.
اگر این برنامه را با توجه به تمام مباحث مختلفی که تاکنون با آن ها آشنا شدیم بررسی کنید، انجام آن نسبتاً آسان است. اگر همچنان برای نحوۀ شروع کار به راهنمایی نیاز دارید، در اینجا یک راهنمایی کوچک ارائه شده است [1^].
هنگامی که بتوانید این کار را انجام دهید، می توانید ادعا کنید که یک برنامه نویس پایتون شده اید. حالا، بلافاصله برای من یک ایمیل ارسال کنید و بابت این کتاب عالی از من تشکر کنید ;-). این مرحله اختیاری است، اما توصیه می شود. همچنین، لطفاً خرید یک نسخۀ چاپی را برای حمایت از ادامۀ توسعۀ این کتاب در نظر داشته باشید.
اگر نوشتن آن برنامه برایتان آسان بود، این برنامه را امتحان کنید:
دستور replace را پیاده سازی کنید. این دستور یک رشته را با رشته ای دیگر در فهرستی از فایل های ارائه شده جایگزین می کند.
دستور replace می تواند به هر اندازه ای که بخواهید ساده یا پیچیده باشد، از جست و جوی سادۀ رشته ها گرفته تا جست و جوی الگو ها (عبارات باقاعده).
پروژه های بعدی
اگر ایجاد برنامه های بالا برایتان آسان بود، نگاهی به این فهرست جامع پروژه ها بیندازید و سعی کنید برنامه های خودتان را بنویسید: https://gitthub.com/thekarangoel/Projects#numbers (فهرستی مشابه در Martyr2's Mega Project List موجود است).
همچنین منابع زیر را مشاهده کنید:
- Exercises for Programmers: 57 Challenges to Develop Your Coding Skills
- Intermediate Python Projects.
کدهای نمونه
بهترین روش برای یادگیری یک زبان برنامه نویسی، نوشتن و خواندن کدهای زیاد است:
- مجموعۀ Python Cookbook مجموعه ای بسیار ارزشمند از دستورالعمل ها و نکات مربوط به روش حل انواع خاصی از مسائل با استفاده از پایتون است. مطالعۀ این منبع برای هر کاربر پایتون ضروری است.
- منبع Python Module of the Week راهنمای عالی دیگری دربارۀ کتابخانه استاندارد است که مطالعۀ آن نیز به شدت توصیه می شود.
توصیه ها
- The Hitchhiker's Guide to Python!
- The Elements of Python Style
- Python Big Picture
- "Writing Idiomatic Python" ebook (پولی)
ویدئوها
پرسش ها و پاسخ ها
- بایدها و نبایدهای رسمی پایتون
- پرسش های متداول رسمی پایتون
- فهرست پرسش هایی که به ندرت پرسیده می شوند از Norvig
- مصاحبۀ پرسش و پاسخ های پایتون
- پرسش های StackOverflow با برچسب پایتون
آموزش ها
- قابلیت های پنهان پایتون
- وقتی پایتون را یاد گرفتید، آرزو می کردید چه قطعه کد یا ترفند پایتونی را از قبل می دانستید؟
- فهرست جامع آموزش های پایتون از Awaretek
بحث و گفت و گو
اگر در حل یک مسئله پایتون مشکل دارید و نمی دانید از چه کسی سؤال کنید، فهرست python-tutor بهترین مکان برای مطرح کردن پرسش شماست.
پیش از هر چیز، مطمئن شوید تکلیف خود را انجام داده اید؛ یعنی ابتدا برای حل مسئله تلاش کنید و سؤالات هوشمندانه بپرسید.
اخبار
اگر می خواهید از جدیدترین اخبار و رویدادهای دنیای پایتون مطلع شوید، Official Python Planet را دنبال کنید.
نصب کتابخانه ها
تعداد بسیار زیادی کتابخانۀ متن باز در Python Package Index وجود دارد که می توانید در برنامه های خود از آن ها استفاده کنید.
برای نصب و استفاده از این کتابخانه ها می توانید از pip استفاده کنید.
ایجاد یک وب سایت
برای ایجاد وب سایت خود، Flask را یاد بگیرید. برخی منابع برای شروع عبارت اند از:
نرم افزارهای گرافیکی
فرض کنید می خواهید با استفاده از پایتون برنامه های گرافیکی خودتان را ایجاد کنید. این کار با استفاده از یک GUI (رابط کاربر گرافیکی) و اتصال های پایتونی آن امکان پذیر است. اتصال ها ساز و کاری هستند که به شما اجازه می دهند برنامه ها را با پایتون بنویسید و از کتابخانه هایی استفاده کنید که خودشان با زبان هایی مانند C یا ++C یا زبان های دیگر نوشته شده اند.
برای ایجاد GUI با پایتون، گزینه های زیادی وجود دارد:
Kivy
PyGTK
- این ابزار، اتصال پایتون برای جعبه ابزار +GTK است؛ جعبه ابزاری که زیربنای GNOME را تشکیل می دهد. +GTK در نحوۀ استفاده ظرافت های خاص زیادی دارد، اما پس از اینکه با آن راحت شدید، می توانید برنامه های GUI را به سرعت ایجاد کنید. طراح رابط گرافیکی Glade بسیار کاربردی است. مستندات آن هنوز جای بهبود دارند. +GTK بر روی GNU/Linux عملکرد خوبی دارند، اما انتقال آن به ویندوز هنوز کامل نیست. با استفاده از +GTK می توانید هم نرم افزارهای آزاد و هم نرم افزارهای اختصاصی ایجاد کنید. برای شروع، PyGTK tutorial را مطالعه کنید.
PyQt
- این ابزار، اتصال پایتون برای جعبه ابزار Qt است؛ جعبه ابزاری که زیربنای KDE را تشکیل می دهد. Qt بسیار آسان در عین حال بسیار قدرتمند است، به ویژه به دلیل Qt Designer و مستندات فوق العادۀ Qt. PyQt برای ایجاد نرم افزارهای متن باز (دارای مجوز GPL) رایگان است و اگر بخواهید نرم افزارهای اختصاصی و بسته ایجاد کنید، باید هزینۀ آن را بپردازید. از Qt 4.5 به بعد، می توان از آن برای ایجاد نرم افزارهای غیر GPL نیز استفاده کرد. برای شروع، دربارۀ PySide را مطالعه کنید.
wxPython
- این ابزار، اتصال های پایتون برای جعبه ابزار wxPython است. wxPython روش یادگیری خاص خود را دارد. با این حال، قابلیت حمل بسیار خوبی دارد و بر روی GNU/Linux, Windows, Mac و حتی پلتفرم های نهفته اجرا می شود. IDE های زیادی برای wxPython در دسترس است که برخی از آنها طراح GUI نیز دارند، از جمله SPE (Stani's Python Editor) و سازندۀ wxGlade ،GUI . می توانید با استفاده از wxPython هم نرم افزارهای آزاد و هم نرم افزارهای اختصاصی ایجاد کنید. برای شروع، wxPython tutorial را مطالعه کنید.
خلاصه ای از ابزارهای GUI
برای گزینه های بیشتر، به صفحۀ ویکی GuiProgramming در وب سایت رسمی پایتون مراجعه کنید.
متأسفانه، ابزار استاندارد و واحد GUI برای پایتون وجود ندارد. پیشنهاد می کنم بسته به شرایط خود، یکی از ابزارهای بالا را انتخاب کنید. عامل اول این است که آیا مایل به پرداخت هزینه برای استفاده از ابزارهای GUI هستید یا خیر، عامل دوم این است که آیا می خواهید برنامه فقط روی ویندوز اجرا شود یا روی Mac و GNU/Linux نیز اجرا شود، یا تمایل دارید بر روی همۀ این سیستم عامل ها قابل اجرا باشد. عامل سوم، اگر GNU/Linux سیستم عامل منتخب شما باشد، این است که آیا در GNU/Linux کاربر KDE هستید یا از GNOME استفاده می کنید.
برای تحلیلی دقیق و جامع تر، به صفحۀ 26 از The Python Papers, Volume 3, Issue 1'(PDF)' مراجعه کنید.
پیاده سازی های متفاوت
یک زبان برنامه نویسی معمولاً از دو بخش تشکیل شده است - زبان و نرم افزار. زبان مشخص می کند که چگونه چیزی را می نویسید. نرم افزار مشخص می کند که برنامه های ما چه چیزی را واقعاً اجرا می کند.
ما از نرم افزار CPython برای اجرای برنامه هایمان استفاده کرده ایم. به آن CPython گفته می شود زیرا با زبان C نوشته شده است و مفسر کلاسیک پایتون است.
نرم افزارهای دیگری نیز وجود دارند که می توانید برای اجرای برنامه های پایتون خود از آنها استفاده کنید:
-
- یک پیاده سازی از پایتون است که روی پلتفرم Java اجرا می شود. این بدان معناست که می توانید از کتابخانه ها و کلاس های جاوا درون زبان پایتون استفاده کنید و برعکس.
-
- یک پیاده سازی از پایتون است که بر روی پلتفرم Net. اجرا می شود. این بدان معناست که می توانید از کتابخانه ها و کلاس های Net. درون زبان پایتون استفاده کنید و برعکس.
-
- یک پیاده سازی از پایتون است که در پایتون نوشته شده است! این یک پروژۀ پژوهشی است که هدف آن سریع و آسان کردن بهبود مفسر است؛ زیرا خود مفسر با یک زبان پویا نوشته شده است (در مقابل زبان های ایستایی مانند جاوا، C یا #C در سه پیاده سازی بالا).
پیاده سازی های دیگری نیز وجود دارند مانند CLPython - یک پیاده سازی از پایتون است که در Common Lisp و Brython است که یک پیاده سازی بر پایۀ مفسر JavaScript است. این امر می تواند به این معنا باشد که می توانید از پایتون (به جای جاوا اسکریپت) برای نوشتن برنامه های مرورگر وب ("Ajax") خود استفاده کنید.
هر یک از این پیاده سازی ها حوزه های تخصصی خاص خود را دارند که در آنها کاربردی هستند.
برنامه نویسی تابعی (برای خوانندگان پیشرفته) {functional-programming#}
هنگامی که شروع به نوشتن برنامه های بزرگ تر کنید، باید حتماً دربارۀ رویکرد تابعی به برنامه نویسی، در مقابل رویکرد مبتنی بر کلاس که در فصل برنامه نویسی شئ گرا آموختیم، بیشتر یاد بگیرید:
- راهنمای برنامه نویسی تابعی نوشتۀ A.M. Kuchling
- فصل برنامه نویسی تابعی در کتاب 'Dive Into Python'
- ارائۀ برنامه نویسی تابعی با پایتون
- کتابخانۀ Funcy
- کتابخانۀ PyToolz
خلاصه
اکنون به پایان این کتاب رسیده ایم، اما همانطور که می گویند این آغاز پایان است!. اکنون دیگر یک کاربر مشتاق پایتون هستید و بدون شک آماده هستید تا مسائل بسیاری را با استفاده از پایتون حل کنید. می توانید از همین حالا کامپیوتر خود را برای انجام انواع کارهایی که پیش تر تصورشان را هم نمی کردید خودکار کنید، یا بازی های خودتان را بنویسید و خیلی، خیلی کارهای دیگر انجام دهید. پس شروع کنید!
[1^]: کلاسی برای نمایش اطلاعات شخص ایجاد کنید. از یک دیکشنری برای ذخیرۀ اشیای شخص استفلده کنید و نام دیکشنری را به عنوان کلید قرار دهید. از ماژول pickle برای ذخیرۀ دائمی اشیا روی هارد دیسک استفاده کنید. از روش های داخلی دیکشنری برای افزودن، حذف و ویرایش اشخاص استفاده کنید.