پایتون
از PyLearn.com
| کتاب یک بایت از پایتون • نکته ها و ترفند ها • ماژول ها • نمونه پروژه •منابع آموزشی•نرم افزارهای جانبی•کتابخانههای داخلی و خارجی• پرسش و پاسخ |
پایتون زبان برنامهنویسی تفسیری و سطح بالا ، شیگرا و یک زبان برنامهنویسی تفسیری سمت سرور قدرتمند است که توسط گیدو ون روسوم در سال ۱۹۹۰ ساخته شد. این زبان در ویژگیها شبیه پرل، روبی (رابی)، اسکیم، اسمالتاک و تیسیال است و از مدیریت خودکار حافظه استفاده میکند.
پایتون به شکل پروژهای متن باز توسعه یافته است و توسط بنیاد نرمافزار پایتون مدیریت میگردد. نسخهٔ 2.6.4 این زبان در تاریخ ۲۵ اکتبر ۲۰۰۹ منتشر شد.
فهرست مندرجات |
تاریخچه
پایتون اواخر سال ۱۹۸۰(میلادی) توسط گیدو ون روسوم در موسسه ملی تحقیقات ریاضی و رایانه (CVVI) در شهر هلند ایجاد شد. هدف گیدو ایجاد جانشینی برای زبان برنامه نویسی «ایبیسی» بود که با قابلیت پردازش استثنا را داشته باشد. گیدو طراح اصلی پایتون است و نقش مداوم او در تصمیم گیری پیرامون اهداف پایتون، باعث شد که انجمن پایتون به او لقب دیکتاتور خیراندیش زندگی الگو:به انگلیسی را بدهد.
نسخههای اولیه
در سال ۱۹۹۱ ون روسوم کدی با برچسب نسخهٔ۰٫۹.۰ را منتشر کرد. البته در این مرحله از پیشرفت کلاسهایی با خاصیت ارث بری، پردازش استثنا، توابع و نوع داده list , dict , str وجود داشت. همچنین در این نسخه ابتدایی یک سیستم ماژول با اقتباس از ماژول-۳ وجود داشت. که ون روسوم این ماژول را به عنوان «یکی از واحدهای عمده برنامه نویسی پایتون» توصیف کرد. مدل استثناء پایتون نیز شباهتهایی به ماژول-۳ داشت، به علاوه شرط else. در سال ۱۹۹۴ اولین مجمع مباحثه پیرامون پایتون شکل گرفت که مرحله برجستهای در پیشرفت کاربری پایتون بود.
نسخه ۱٫۰
پایتون در ژانویه ۱۹۹۴ به ورژن ۱٫۰ رسید. خصوصیات عمده جدید این نسخه شامل ابزارهای برنامه نویسی تابعی lambda , map , filter , reduce بود. ورژن پایتون ۱٫۲ در سال ۱۹۹۵، زمانیکه گیدو در CVVI بود، بدست آمد. گیدو به فعالیتهای خود روی پایتون در موسسه ملی تحقیقات و ابتکارات (CNRI) در رستون ادامه داد و در همانجا چندین نسخه جدید انتشار یافت. در نسخه ۱٫۴ به پایتون چندین ویژگی جدید اضافه شد. از ویژگیهای جالب توجه در میان این اضافات میتوان به الهام گرفتن از آرگومانهای کلیدی ماژول-۳ (که خود از آرگومانهای کلیدی لیسپ الهام گرفته بود) و همچنین پیشتیبانی اعداد مختلط اشاره کرد. در مدت فعالیت ون روسوم در CNRI، او پروژه «برنامه نویسی کامپیوتر برای هر کس» (CP4E) را ایجاد کرد تا برنامه نویسی را در دسترس افراد بیشتری که اطلاعات پایهای برای برنامه نویسی (برای مثال توانایی در زبان انگلیسی و مهارتهای اولیهٔ ریاضی) را دارند، قرار دهد. زبان برنامهنویسی پایتون به دلیل تمرکزش بر روی پاکسازی فرم دستوراتش، نقش مرکزی را ایفا کرد. این پروژه توسط دارپا سرمایه گذاری شد واز سال ۲۰۰۷ غیر فعال شد.
باز بودن
در سال ۲۰۰۰ تیم توسعه دهنده پایتون به BeOpen.com منتقل شد و بدین صورت تیم کتابخانه باز پایتون شکل گرفت. به پیشنهاد CNRI ورژن ۱٫۶ساخته شد، بدین ترتیب برنامههای تولید شده برای ۱٫۶و ۲٫۰اشتراکهای قابل توجهی داشتند. فقط پایتون ۲٫۰ توسط BeOpen.com طراحی شده بود. بعد از تولید پایتون ۲٫۰ توسط BeOpen.com، گیدو و دیگر توسعه دهندگان کتابخانه پایتون به ایجاد دیجیتال روی آوردند. تولید پایتون ۱٫۶ شامل جواز جدید CNRI بود که به طور قابل توجهی طولانی تر از جواز CWI (که برای تولیدات قبلی استفاده شده بود) بود. موسسه مستقل از نرمافزار توضیح داد که انتخاب شرط قانون با GNU GPL ناسازگار بود. , BeOpen CNRI و FSF تغییراتی را در جواز پایتون مستقل از نرمافزار ایجاد کردند که با GPL سازگار باشد. پایتون ۱٫۶.۱ عمدتاً مشابه پایتون ۱٫۶ است فقط با کمی اشکال، و با جواز سازگار با GPL.
نسخه ۲٫۰
پایتون ۲٫۰ لیستی از ویژگیهایی را که از زبانهای برنامه نویسی تابعی ستل و هاسکل اقتباس شده بود، معرفی کرد. نحو پایتون برای این ساختار (جدا از برتری هاسکل برای کاراکترهای نقطه گذاری و کلمات الفبا) بسیار مشابه هاسکل بود. پایتون ۲٫۰ همچنین یک سیستم بازیافت حافظه با قابلیت جمع آوری منابع معرفی کرد. پایتون ۲٫۱ به پایتون ۱٫۶.۱ و ۲٫۰ نزدیک بود. جواز آن به جواز مؤسسه نرمافزار پایتون تغییر نام یافت. همه کدها، اسناد و مشخصات اضافه شده را از زمان تولید الفبای پایتون ۲٫۱ توسط مؤسسه نرمافزار پایتون (PFS) دارا شد. یک سازمان غیر انتفاعی در سال ۲۰۰۱ تشکیل شد که از مؤسسه نرمافزار آپاچی مدل گرفته بود. تولیدات شامل تغییراتی در خصوصیات زبان در پوشش حوزههای تو در تو بود، مشابه دیگر زبانهای حوزهای ایستا. (این خصوصیات دوباره از بین رفتند و به پایتون ۲٫۲ منتقل نشدند.) یک تغییر بزرگ در پایتون ۲٫۲ یکسان سازی انواع دادهای پایتون و کلاسها به یک سلسله مراتب بود. این یکسان سازی اشیاء پایتون را کاملاً شیء گرا کرد.
میراث جاوا
انتخاب نحو و ضمایم کتابخانه استاندارد پایتون شدیداً وابسته به بعضی موارد در جاوا بود: بسته logging در ورژن ۲٫۳، تجزیه کننده SAX در ورژن ۲٫۰ و ساختمانهای نحو که در ورژن ۲٫۴ اضافه شد.
توسعه خصوصیات
یک طرح افزایش (PEP) در پایتون یکنواخت کردن اسنادی است که اطلاعات عمومی ای را که پایتون را شرح میدهند تولید میکنند ؛ شامل پیشنهادات، توصیفها و توضیحها برای خصوصیات زبان. PEP در نظر داشت همانند روشهای اولیه، برای پیشنهاد خصوصیات جدید و نیز برای مستند سازی طرحهای اساسی، هر عامل بزرگ در پایتون را توضیح دهد. طرحهای برجسته توسط van Rossum تجدید نظر شده و توضیح داده شدند.
پایتون ۳
پایتون ۳٫۰ (که پایتون ۳۰۰۰ ویا Py3k نیز خوانده میشود) به منظور شکستن سازگاری عقبرو<ref>(backward compatibility)</ref> یا به عبارتی قطع سازگاری با گذشته پایتون ۲ و بهبود خطاها و رخنهها در نسخهٔ ۲ و همچنین حذف روشهای قدیمی طراحی شد. به عبارتی دیگر لازم نیست که پایتون ۳ بتواند کدی که با پایتون ۲ نوشته شده را تفسیر کند که البته این مشکل توسط نرمافزار 2to3 حل میشود.
فلسفه
پایتون ۳٫۰ با همان فلسفه ورژنهای قبل، در حال توسعه یافتن است، بنابراین هر منبعی در فلسفه پایتون، در پایتون ۳٫۰ به خوبی ظاهر خواهد شد. اگر چه، همانطور که پایتون روشهای جدید در برنامه ریزی را جمع آوری کرده، پایتون ۳٫۰ تأکید زیادی بر از بین بردن ساختارها و ماژولهای تکراری دارد: «باید یک – و ترجیحاًً فقط یک – روش بدیهی برای انجام آن وجود داشته باشد.» با این وجود پایتون ۳٫۰ به ساختار زبان چند نمونهای ادامه خواهد داد. کد نویسها همچنان اختیارات شیء گرایی، برنامه نویسی ساخت یافته، برنامه نویسی تابعی و دیگر نمونهها را دارند، اما در انتخابهای وسیع، جزئیات در پایتون ۳٫۰ آشکار تر از پایتون سری ۲.x هستند.
سازگاری و همزمانی
اولین کاندید پایتون ۳٫۰ در ۱۷سپتامبر ۲۰۰۸منتشر شد. پایتون سری ۲.x و ۳.x به طور موازی با هم وجود خواهند داشت، جایی که سری ۲.x سازگاری بیشتری دارد، به جای سری ۳.x مورد استفاده قرار خواهد گرفت. PEP ۳۰۰۰ اطلاعات بیشتری را در مورد فهرست نشریات دارا ست. پایتون ۳٫۰ سازگاری قبل را نقض خواهد کرد. الزامی ندارد که کدهایی که با پایتون ۲.x اجرا میشوند، برای پایتون ۳٫۰ بدون تغییر اجرا شوند. چون تغییرات اساسی بین این دو ورژن وجود دارد مثل اختلاف در حالت پرینت (بنابراین هر استفاده از پرینت به عنوان توضیح باعث شکست برنامه میشود.) نوع پویای پایتون با طرحهای تغییر معنای روشهای خاص دیکشنری ترکیب میشود، به عنوان مثال، انتقال مکانیکی بی نقص از پایتون ۲.x به پایتون ۳٫۰ را بسیار دشوار میکند. اگرچه ابزاری به نام «۲to۳» بسیاری از این وظایف انتقال را انجام میدهد، اما باید توجه داشت که استفاده از توضیحات یا اخطارها با ابهام همراه است. البته در یک مرحله از الفبا، ۲to۳ انتقال را حقیقتاً کامل انجام میدهد. PEP ۳۰۰۰ پیشنهاد میکند که یک منبع نگه داشته شود (برای سری ۲.x)، و نسخهای بر مبنای پایتون ۳٫۰ با استفاده از ۲to۳ تولید شود. کدهای نتیجه شده نباید تصحیح شوند، مگر اینکه کدی طولانی تر از محدوده سری ۲.x باشد. پایتون ۲٫۶ شامل خصوصیات سازگاری مستقیم است، به طوریکه یک روش اخطار (warning) به صورت خودکار به مسائل انتقال هشدار میدهد. هشدارها باید برای تشخیص خطا گزارش داده شوند، مشابه خصوصیات ورژنهای قبلی پایتون. (برای اطلاعات بیشتر به PEP ۳۶۱ رجوع کنید.)
خصوصیات
فهرست برخی از تغییرات عمده پایتون ۳٫۰:
- تغییر پرینت چون یک تابع غیر قابل انتقال است نه یک توضیح. این باعث میشود که تغییر یک ماژول برای استفاده از یک تابع پرینت متفاوت، آسان باشد و بنابراین ایجاد نحو منظم تر میشود. در پایتون ۲٫۶ این امکان با تایپ کردن from – future – import print – function فراهم شد.
- اضافه شدن حمایت از یادآوری تابع انتخابی که میتواند برای معرفی تایپ خصوصی یا اهداف دیگر استفاده شود.
- یکسان کردن تایپ str/Unicode، به نمایندگی از یک متن، و معرفی یک تایپ byte تغییر ناپذیر ؛ با یک تایپ مطابق با bytearray تغییر پذیر، که هر دو آرایه از بایت را ارائه میکنند.
- از بین بردن خصوصیات سازگاری معکوس، شامل کلاسهای به فرم قبل، قسمت کردن اعداد صحیح، استثناءهای رشتهای، و گزارشهای نسبتاً نا آشکار.
ویژگی ها
شی گرایی
پایتون یک زبان برنامهنویسی شیگرا است و از ویژگی های پیشرفتهایی چون وراثت، چند شکلی، سربار گزاری عملگر و ... پشتیبانی می کند. یک از ویژگیهای پایتون که لقب چسب را برای پایتون به ارمغان آورده امکان استفاده از کد ها و کلاسهای نوشته شده در زبانهای دیگری چون سیپلاسپلاس و جاوا است که در حقیقت کار چسباندن قطعات کد جدا و فقط نوشتن بدنه اصلی به عهده پایتون است .
آزاد
پایتون یک زبان برنامهنویسی آزاد و متنباز هست. میتوانید متن آن و خود برنامه را از اینترنت دریافت یا در توسعه آن همکاری کنید .
قابلیت حمل
چون پایتون با زبان قابل حمل سی نوشته شده می تواند به صورت مجازی بر روی هر پردازشگردی همگردانی و اجرا شود . ماشین مجازی (مفسر پایتون) متن برنامه را خوانده و همزمان تفسیر کرده و اجرا می کند. پس شما می توانید یک برنامه را در ویندوز بنویسید و سپس بدون تغییر روی لینوکس یا مکینتاش یا هر سیستم عامل و سختافزار دیگری که پایتون روی آن نصب باشد اجرا کنید .
قدرتمند
پایتون زبانی چند رگه است که از زبانهای برنامهنویسی تفسیری (برای مثال : تیسیال، اسکیم، پرل) و زبانهای سیستمی (برای مثال: سیپلاسپلاس، سی و جاوا) مشتق شده. بنابراین تمام سادگی و راحتی کار زبانهای برنامهنویسی تفسیری و ویژگیها و قدرت زبانهای سطح پایین را داراست .
درونی سازی و گسترش
این ویژگی یکی از پرکاربرد ترین و قوی ترین ویژگی های پایتون می باشد . شما می توانید قطعه از کد را در زبانی چون سیپلاسپلاس، سی و جاوا نوشته سپس از آن در برنامه نوشته شده با پایتون استفاده کنید. و یا می توان از توابع کتابخانهای و کامپوننت هایی چون COM API استفاده کرد . البته نوع این نوع برنامه نویسی (ماژول) با برنامه نویسی معمولی هر زبان متفاوت می باشد . می توان از کد های پایتون در زبانهای دیگر نیز استفاده کرد (درونی سازی)
سهولت یادگیری و استفاده
بی شک و حداقل از نظر بسیاری از برنامه نویسان پایتون این زبان یکی از آسان ترین زبان ها برای یادگیری و استفاده می باشد و از آن به عنوان یک زبان سریع برنامه نویسی یاد می کنند . این زبان نیازی به [[کامپایلر ]] ندارد و شما مستقیما می توانید پس از نوشتن کد و با یک دستور آن را اجرا کنید . دستورات این زبان بسیار نزدیک به زبان انسان می باشد . برای مثال برنامه Hello World را که اولین برنامه ساده می باشد را در دو زبان سی و پایتون مقایسه کنید :
Hello World در سی
#include <stdio.h>
int main()
{
printf(" Hello world ");
return 0;
}
Hello World در پایتون
print "Hello World !!"
البته در نسخه 3.0 به بعد گرامر تا حدودی فرق کرده و شما باید بنویسید:
print ("Hello World")
کاربرد
سازمانهای بزرگی که از پایتون استفاده میکنند، شامل گوگل، یاهو، سرن و ناسا هستند. ITA نیز از پایتون برای بعضی از اجزای خود استفاده میکند.
امنیت اطلاعات
پایتون همچنین استفاده وسیعی از صنعت ایمنی اطلاعات میکند. مثلاً در چندین ابزار پیشنهاد شده توسط تأمین امنیت و امنیت مرکزی و اسکنر امنیت کاربردی وب واپیتی. پایتون معمولاً در توسعه کاربرد مورد استفاده قرار میگیرد.
جاسازی
پایتون با موفقیت در تعدادی از تولیدات نرمافزاری مثل زبان فایل آغاز گر تعبیه شدهاست. پایتون معمولاً در بستههای انیمیشن ۳D استفاده میشود، مانند Houdini , Maya , Softimage XSI , TrueSpace , Poser , Modo , Nuke , Blender. GIMP , Krita , Inkcape , Scribus , Paint Shop Pro ESRI هم اکنون در حال ترقی دادن پایتون به عنوان بهترین انتخاب برای نوشتن فایل آغازگر در ArcGIS است. همچنین در بازیها استفاده میشود، مانند Civilization IV و Mount&Blade به عنوان زبان کنترل برای نمایش و عکس العمل حوادث.
مقبولیت
در بسیاری از سیستمهای عملیاتی، پایتون یک جزء استاندارد است ؛ چون با بیشتر بخشهای لینوکس انتقال داده میشود، با NetBSD و OpenBSD وRed Hat Linux.Mac OS X و Fedora هر دو از نصب کنده پایتونی استفاده میکنند. لینوکس Gentoo از پایتون در سیستم مدیریت بسته، حمل و ابزارهای دستیابی خود استفاده میکند. Pardus از آن برای مدیریت و در طول راه اندازی سیستم استفاده میکند.
صرف و نحو
پایتون در نظر دارد که زبانی بسیار قابل خواندن باشد. بنابراین به سمت یک طرح بندی ویژوال بدون پارازیت میرود، و اغلب از کلمات کلیدی انگلیسی استفاده میکند، در صورتیکه دیگر زبانها از نقطه گذاری استفاده میکنند. پایتون نسبت به زبانهای ساخت یافته سنتی، مثل C و پاسکال، نیاز به تکیه کلامهای کمتر و همچنین استثناءهای نحوی و موارد خاص کمتری دارد.
ایجاد فضای خالی
پایتون از فضاهای خالی بیشتر از آکولاد یا کلمات کلیدی برای تعیین بلوکهای حالت استفاده میکند (ویژگی ای که به نام قانون off-side نیز شناخته میشود.)
شرطها و روند کنترل
شرطهای پایتون شامل:
- شرط if، که یک بلوک کد، تا else و elif را اجرا میکند. (یک اختصار از else-if)
- شرط for، که روی یک شیء تکرار شدنی تکرار میشود، به هر متغیر محلی مقدار داده میشود برای استفاده توسط بلوک مربوطه.
- شرط class، که یک بلوک کد را اجرا میکند و فضاهای محلی آن را به یک کلاس ملحق میکند، برای استفاده در برنامه نویسی شیء گرا.
- شرط def، که یک تابع را تعریف میکند.
- شرط with، که یک بلوک کد را به یک مدیر متن ضمیمه میکند. (به عنوان مثال، اندوختن یک قفل قبل از اجرای بلوک کد و آزاد کردن قفل بعد از اجرا.)
هر شرطی برای خود قواعد معنایی خاصی دارد: به عنوان مثال، شرط def، بر خلاف دیگر شرطها بلوک خود را فوراً اجرا نمیکند.
سی پایتون استمرار را پشتیبانی نمیکند، و مطابق نظر Guido van Rossum هرگز نخواهد کرد. در ورژنهای قبلی مولد تکرار کند بود چون اطلاعات تنها در یک جهت از مولد عبور میکردند.
روشها
روشها در اشیاء پایتون، ملحق کردن توابع به اشیاء کلاس است ؛ با نحو (instance.method(argument برای روشها و توابع نرمال، و(Class.method (instance,argument. روشهای پایتون، یک پارامتر self آشکار برای دستیابی به دادههای instance دارند، در برابر پارامتر self غیر آشکار در برخی زبانهای برنامه نویسی شیء گرا (مانند جاوا، C++، یا روبی)
نوع دهی
پایتون از اشیاء تایپ شده و در مقابل نام متغیرهای غیر تایپ استفاده میکند. محدودیت تایپ در زمان کامپایل چک نمیشود ؛ بنابراین عمل گرهای روی یک شیء ممکن است شکست بخورند، به این مفهوم که شیء داده شده از یک تایپ مناسب نیست. با اینکه اجباری در تایپ دهی ایستا نیست، پایتون شدیداً تایپ دهی شده، و عمل گرهای نامناسب را نهی میکند. (مثل مقدار دهی یک رشته با یک عدد)
| تایپ | توصیف | مثال نحو |
|---|---|---|
str
| یک رشته غیر قابل تغییر از کاراکترها | 'Wikipedia'"Wikipedia"
|
list
| تغییر پذیر، میتواند تایپهای مختلف را دارا باشد. | [۴٫۰, 'string', True]
|
tuple
| تغییر ناپذیر، میتواند تایپهای مختلف را دارا باشد. | (۴٫۰, 'string', True)
|
set, frozenset
| نامرتب، هیچ نسخه دومی را دارا نیست. | set([۴٫۰, 'string', True]){۴٫۰, 'string', True}frozenset([۴٫۰, 'string', True])
|
dict
| گروهی از کلیدها با جفت عددی | {'key۱': ۱٫۰, 'key۲': False}
|
int
| یک عدد با دقت ثابت
(وقتی ذخیره کردن یک عدد صحیح سر ریز داشته باشد، به یک دقت نامحدود Long بسط خواهد یافت.) | ۴۲
|
float
| یک عدد اعشار | ۳٫۱۴۱۵۹۲۷
|
complex
| یک عدد مختلط با عدد حقیقی و قسمت موهومی | ۳+۲j
|
bool
| عدد درستی | TrueFalse
|
پایتون همچنین به برنامه نویسها اجازه میدهد که تایپ دلخواه خود را تعریف کنند. این کار با استفاده از کلاسها امکان پذیر است، و اغلب برای شیء گرایی در برنامه نویسی استفاده میشود. نمونههای جدید از کلاسها با صدا زدن کلاس ساخته میشوند، و کلاسها خودشان نمونههایی از کلاس type هستند (خودش یک نمونه از خودش است).
پیاده سازی
مسیر اصلی پیاده سازی پایتون، که با عنوان سی پایتون نیز شناخته میشود، در نشست C در استاندارد C۸۹ نوشته شد. سی پایتون برنامههای پایتون را به کد بایت تبدیل میکند، که سپس توسط ماشین مجازی اجرا میشود. سی پایتون با یک کتابخانه استاندارد بزرگ که به صورت مخلوطی از C و پایتون نوشته شده، توزیع شدهاست. سی پایتون در ورژنهای مختلف برای پایگاههای زیادی کار میکند، شامل مایکروسافت ویندوز و بیشتر سیستمهای پیشرفته یونیکس. استفاده و توسعه آن روی پایگاههای محرمانه مانند Amoeba، در کنار پایگاههای متداول مانند یونیکس یا مکینتاش، به طور عمده در این نظر کمک شدهاست.
پایتون بدون پشته، انشعابی از سی پایتون است که ریز برنامهها را اجرا میکند ؛ و از پشته حافظه استفاده نمیکند. سی پایتون از GIL استفاده میکند تا وقتی برنامه پایتون بدون پشته، وابسته به OS است و میتواند به صورت همزمان اجرا شود، در هر لحظه فقط به یک زیر برنامه اجازه اجرا داده شود. پایتون برای استفاده در میکرو کنترلرها یا وظایف محدود دیگر پایگاههای مرجع، متناسب تر است. پیش بینی میشود که پایتون بدون پشته بتواند تقریباً روی همان پایگاهی که سی پایتون اجرا میشود، اجرا شود.
جی تون برنامههای پایتون را به کد بایت جاوا کامپایل میکند، که بدین ترتیب میتواند با هر ماشین مجازی جاوا اجرا شود. و همچنین این امکان فراهم میشود که توابع کتابخانهای کلاس جاوا از برنامه پایتون به کار گرفته شود. آی رون پایتون از همین شیوه برای اجرای برنامههای پایتون روی زبان .NET استفاده میکند.
پای پای یک پیاده سازی تجربی از پایتون است که میتواند چندین تایپ از کد بایت را تولید نماید.
چندین برنامه در بسته مفسر پایتون با برنامههای کاربردی (یا آغازگر) وجود دارد که مستقلاً اجرا میشوند مانند یونیکس، لینوکس، ویندوز، AmigaOS ۴ یا Mac OS X. بسیاری از کتابخانههای سه قسمتی (و حتی بعضی از یک قسمتیها) فقط روی ویندوز، لینوکس، BSD و Mac OS X موجود هستند.
در نوکیا ۲۰۰۵ یک مفسر پایتون برای موبایلهای سری ۶۰ با نام PyS۶۰ تولید شد که شامل بسیاری از ماژولها از سی پایتون بود، و همچنین برخی ماژولهای اضافه شده برای یکپارچه شدن با سیستمعامل. این پروژه به منظور اجرا روی همه پایگاههای مختلف S۶۰، به روز نگاه داشته میشود.
همچنین مفسری به نام پایتون سی ای برای ابزار ویندوز CE (شامل بسته PC) وجود دارد. که در آن ابزارهایی برای اجرای آسان و توسعه GUI اضافه شدهاست. اطلاعات بیشتر را میتوانید روی وبگاه PythonCE بیابید.
پایتون چینی زبان برنامه نویسی پایتونی است که از لغت نامه زبان چینی استفاده میکند. در کنار کلمات رزرو شده و نام متغیرها، بیشتر عمل گرهای تایپ داده، در چینی میتوانند به خوبی کد دهی شوند.
تفسیر معنایی
بیشتر پیاده سازیهای پایتون (شامل سی پایتون، اولین پیاده سازی) میتوانند به عنوان یک مفسر خط فرمان عمل کنند، برای زمانی که کاربر رشته شرط را وارد میکند و فوراً نتیجه را میپذیرد. خلاصه پایتون به عنوان یک برنامه واسط عمل میکند. وقتی صرف دیگر شیوههای اجرا (کامپایل کد بایت یا کامپایل کد محلی) به صورت یک رشته صرف ذخیره میشود، یک افزایش سرعت در هزینههای متقابل به وجود میآید، بنابراین آنها معمولاً فقط خارج از مفسر خط فرمان استفاده میشوند. (وقتی یک ماژول وارد میشود.)
برنامههای واسط دیگر، امکانات تحت آن را در مفسر بیسیک افزایش میدهند، شامل IDLE و I Python. وقتی عموماً از برنامه واسط پایتون پیروی میشود، خصوصیاتی مشابه تکمیل خودکار، نگه داشتن زمان اجرای برنامه، و نشان دادن صرف پیاده سازی میشود.
برخی از پیاده سازیها نه تنها به صورت کد بایت میتوانند کامپایل شوند، بلکه میتوانند کد پایتون را به کد ماشین تبدیل کنند. تا کنون، این عمل فقط برای زیر مجموعههای انحصاری پایتون انجام شدهاست. پای پای این روش را پذیرفته و ورژنهای قابل کامپایل انحصاری پایتون را RPython نامید.
Psyco یک کامپایلر اختصاصی در زمان است که کد بایت را به کد ماشین، در زمان اجرا تبدیل میکند. کد تولید شده، اختصاصی برای تایپهای داده خاصی است و از کدهای استاندارد پایتون سریع تر است. Psyco با همه کدهای پایتون سازگار است، نه فقط یک زیر مجموعه.
کتابخانه استاندارد
پایتون یک کتابخانه استاندارد بزرگ دارد، که از آن به عنوان یکی از بزرگترین تواناییهای پایتون یاد میشود، مشروط به اینکه ابزارهای از پیش نوشته شده، با بسیاری از وظایف سازگار باشد. ماژولهای کتابخانه استاندارد میتوانند به شیوه ماژولهای نوشته شده در سی یا پایتون آرگومان دهی شوند. اخیراً کتابخانههای C++ به یک کتابخانه به نام Boost.Python رشد یافتهاست، برای ایجاد قابلیت همکاری بین C++ و پایتون. به دلیل تنوع گسترده در ابزارهای تولید شده توسط کتابخانه استاندارد، این کتابخانه با توانایی استفاده یک زبان سطح پایین ترکیب شده، مثل C و C++، که البته به عنوان واسط بین کتابخانههای دیگر است، پایتون میتواند یک واسط قوی بین زبانها و ابزارها باشد.
کتابخانه استاندارد با تعداد زیاد فرمتها و پروتکلهایی که حمایت میکند (مانند MIME و HTTP)، خصوصاً برای نوشتن علائم اینترنت مناسب است. ماژولها برای ایجاد واسط کاربر گرافیکی، به پایگاه داده مربوطه متصل میشود، محاسبات را با دقت دلخواه دسیمال انجام میدهد، و عبارتهای منظم را دستکاری میکند. پایتون همچنین یک واحد تست مدیریت پایگاه داده برای تست کردن رشتهها دارد.
بعضی از قسمتهای کتابخانه استاندارد با مشخصات پوشانده شده، اما اکثریت ماژولها اینگونه نیستند. آنها از طریق کدها، اسناد داخلی، و دنباله تست شان (اگر موجود باشد) تعیین میشوند. اگر چه، به دلیل اینکه اکثر کتابخانههای استاندارد، کد پایتون مربوط به پایگاه را دارند، فقط ماژولهای اندکی هستند که باید تغییر داده شوند یا مجدّداً با یک پیاده سازی دیگر نوشته شوند.
فلسفه برنامه نویسی
پایتون یک زبان برنامه نویسی چند الگویی است. به این معنی که بیشتر برنامه نویسهای قدرتمند برای وقتی یک مدل برنامه نویسی را انتخاب میکنند، مجاز به چندین مدل هستند: شیء گرایی و برنامه نویسی ساخت یافته کاملاً تحت پوشش هستند، و تعدادی از خصوصیات زبانهای برنامه نویسی هستند که برنامه نویسی تابعی و ظاهر سازی را پشتیبانی میکنند. پایتون از تایپ پویا و یک ترکیبی از شمارش مرجع و یک حلقه کشف و بازیافت قسمتهای هدر رفته حافظه برای مدیریت حافظه، استفاده میکند. یک ویژگی مهم پایتون تحلیل نام پویا است، که روشها و نام متغیرها را در طول اجرای برنامه به هم ملحق میکند.
هدف دیگر طراحی زبان آسان کردن توسعه پذیری است. ماژولهایی که تازه ساخته شدهاند، به سادگی در C و C++ نوشته میشوند. پایتون همچنین میتواند به عنوان زبان توسعه برای ماژولها و کاربردهای موجود که به برنامه واسط قابل برنامه ریزی نیاز دارد، استفاده شود. این طرح که یک زبان هسته کوچک با یک کتابخانه استاندارد بزرگ و یک مفسر آسان توسعه پذیر همراه باشد، توسط Van Rossum بیان شد.
طرح پایتون به پشتیبانی محدود برای برنامه نویسی تابعی به شیوه لیسپ، ارائه شد. اگر چه، تشابههای عمدهای بین پایتون و زبان خانواده لیسپ وجود دارد. این کتابخانه دو ماژول دارد (تکرار و تابعی) که ابزارهای تابعی را با اقتباس از هاسکل و ام ال استاندارد پیاده سازی میکند.
وقتی انتخابهایی در روششناسی کدها ارائه شد، پایتون نحوهای فراوان را کنار گذاشت. همچنان که با پرل، توسعه دهندگان پایتون فوراً یک فرهنگ یا ایدئولوژی را بر مبنای آنچه از یک زبان میخواهند، ترقی دادند، ساختار زبانها زیبا، آشکار و ساده شد. Alex Martelli این مطلب را در کتاب خود قرار داد: “برای توضیح برخی مسائل، در فرهنگ پایتون تعریفی مطرح نشدهاست.«پایتون روش پرل را (بیش از یک روش در انجام آن وجود دارد) در طراحی زبان در حمایت از» باید یک راه – و ترجیحاً فقط یک راه – آشکار برای انجام آن وجود دارد." رد کرد.
پایتون از بهینه سازی بی موقع اجتناب کرد، و بعلاوه به هم جور کردن قسمتهای غیر ضروری سی پایتون را که افزایش سرعت نهایی در هزینه را ارائه میکرد، رد کرد. آن گاهی اوقات با نام ' slow ' شناخته میشود. اگر چه، بیشتر مسائل چندان بحرانی نیستند، و همین طور سرعت سختافزار کامپیوتر با سرعت نمائی رو به رشد است. وقتی سرعت یک مسأله باشد، برنامه نویسان پایتون بیشتر تلاش میکنند تا عملیات محدود را با بهبود الگوریتم یا تغییر ساختار داده، بهینه کنند.
واژه تراشی
یک واژه تراشی رایج در انجمن پایتون، در pythonic است، که میتواند محدوده وسیع معنایی وابسته به استیل برنامه داشته باشد. در مقابل یک کد unpythonic تلاش میکند تا یک کد ++C را در پایتون بنویسد.
محیطهای برنامهنویسی مجتمع
واسط گرافیکی
برای پایتون واسط گرافیکی کاربر بسیاری نوشته شده است پرکاربردترین آنها به شرح زیر می باشد:
برنامههای نوشته شده با پایتون
- بیتتورنت (BitTorrent): نرمافزاری برای جستجوی فایلهای به اشتراک گذاشته شده(p2p) و...
- بلندر (Blender): یک نرمافزار ۳ بعدی و اپن سورس بسیار معروف
- چندلر (Chandler): مدیر اطلاعات شخصی شامل تقویم، میل، کارهای روزلنه، یادداشتها و...
- Civilization IV: یک گیم کامپیوتری بر مبنای پایتون که از boost.python استفاده میکند
- میلمن (Mailman): یکی از معروفترین نرمافزارهای مرتبط با ایمیل
- کمبیلوKombilo: مدیر پایگاه داده و مرورگرگیمهای go
- موینموین (MoinMoin): یکی از قدرتمندترین و معروفترین ویکیهای موجود
- پلون (Plone): یک ابزار مدیریتی محتوایی اپن سورس، قدرتمند و کاربر پسند
- پورتاژ (Portage): قلب توزیع جنتو. یک مدیر بستهای سیستم لینوکس
- زوپ (zope): یک پلاتفورم شی گرای مبتنی بر وب. زوپ شامل یک سرور نرمافزار به همراه پایگاه داده شی گرا و یک رابط مدیریتی درونی مبتنی بر وب میباشد
- اسپیای (SPE): یک IDE رایگان، اپن سورس برای سیستمعاملهای ویندوز، لینوکس، مک که از wxGlade(طراحی رابط کاربر),PyChecker (دکتر کد) (Blender(۳D پشتیبانی میکند.
- یام (Yum): یک برنامه مدیریت بسته متنباز برای توزیعهای سازگار با آرپیام.
برابرهای انگلیسی
پیوند به بیرون
- سایت رسمی پایتون
- سایت رسمی پایتون فارسی زبانان آموزش - سوال و جواب


