پایتون (به انگلیسی: Python) یک زبان برنامهنویسی تفسیری، سطح بالا، و همه منظوره است، که خیدو فان روسوم آن را طراحی کردهاست، و اولین بار در سال ۱۹۹۱ منتشر شدهاست. فلسفه اصلی طراحی پایتون «خوانایی بالای کد» میباشد و نویسههای فاصله خالی در آن معنادار هستند و مکرر استفاده میشوند. ساختار زبانی و دیدگاه شیئگرا در پایتون به گونهای طراحی شدهاست که به برنامهنویس امکان نوشتن کد منطقی و واضح (بدون ابهام) را برای پروژههای کوچک و بزرگ میدهد.
کلمات کلیدی و اصلی این زبان به صورت حداقلی تهیه شدهاند و در مقابل کتابخانههایی که در اختیار کاربر است بسیار وسیع هستند.
بر خلاف برخی زبانهای برنامهنویسی رایج دیگر که بلاکهای کد در آکولاد تعریف میشوند (بهویژه زبانهایی که از گرامر زبان سی پیروی میکنند) در زبان پایتون از نویسه فاصله و جلو بردن متن برنامه برای مشخص کردن بلاکهای کد استفاده میشود. به این معنی که تعدادی یکسان از نویسه فاصله در ابتدای سطرهای هر بلاک قرار میگیرند، و این تعداد در بلاکهای کد درونیتر افزایش مییابد. بدین ترتیب بلاکهای کد به صورت خودکار ظاهری مرتب دارند.
پایتون مدلهای مختلف برنامهنویسی (از جمله شیگرا و برنامهنویسی دستوری و تابع محور) را پشتیبانی میکند و برای مشخص کردن نوع متغیرها از یک سامانهٔ پویا استفاده میکند.
این زبان از زبانهای برنامهنویسی مفسر بوده و به صورت کامل یک زبان شیئگرا است که در ویژگیها با زبانهای تفسیری پرل، روبی، اسکیم، اسمالتاک و تیسیال مشابهت دارد و از مدیریت خودکار حافظه استفاده میکند.
زبان پایتون ۲ رسماً از سال ۲۰۲۰ دیگر پشتیبانی نمیشود و پایتون ۲٫۷٫۱۸ آخرین نسخهٔ پایتون ۲٫۷ و همچنین پایتون ۲ است؛ و ازاین به بعد دیگر هیچ وصلهٔ امنیتی ای یا بهبود دیگری در این نسخه داده نخواهد شد. با پایان پشتیبانی از پایتون ۲ فقط پایتون ۳ نسخههای بعدی آن پشتیبانی خواهند شد.
پایتون پروژهای آزاد و متنباز توسعهیافتهاست و توسط بنیاد نرمافزار پایتون مدیریت میگردد.
پایتون اواخر دهه ۱۹۸۰ (میلادی)[۳۵] توسط خودو فان روسوم در مؤسسه ملی تحقیقات ریاضی و کامپیوتر (CWI) در کشور هلند ایجاد شد.
هدف خیدو از ابداع پایتون ایجاد جانشینی برای زبان برنامهنویسی ایبیسی بود که قابلیت پردازش استثناها را داشته باشد.پیادهسازی پایتون در دسامبر ۱۹۸۹ آغاز شد. خَودو طراح اصلی پایتون است و نقش مداوم او در تصمیمگیری پیرامون اهداف پایتون، باعث شد که انجمن پایتون به او لقب دیکتاتور خیرخواه جاویدان را بدهد. فان روسوم تا ۱۲ ژوئیه ۲۰۱۸ مسئولیت رهبری پروژهٔ پایتون را به عهده داشت. در آن زمان او اعلام کرد که از مسئولیت خود به عنوان دیکتاتور خیرخواه جاویدان کنارهگیری میکند. در حال حاضر او مسئولیت رهبری پروژهٔ پایتون را به یک شورای ۵ نفرهٔ چرخان که خود نیز یکی از اعضای آن است دادهاست.
پایتون ۲٫۰ در ۱۶ اکتابهار ۲۰۰۰ با ویژگیهای مهم و جدید بسیاری منتشر شدکه شامل بازیافت حافظه با قابلیت شناسایی دور و پشتیبانی از یونیکد بود.
پایتون ۳٫۰ در ۳ دسامبر ۲۰۰۸ منتشر شد این نسخه بازنویسی عمده ای از نسخهٔ قبل بود که سازگاری عقبرو را شکسته بود.بسیاری از ویژگیهای عمدهٔ آن به پایتون 2.6.x[۴۶] و 2.7.x پیشانتقال داده شدند. نسخههای منتشر شده از پایتون ۳ ابزار 2to3 را دارند که کار ترجمهٔ کد پایتون ۲ به پایتون ۳ را (حداقل تا حدودی) انجام میدهد.
از سال ۲۰۱۵ مقرر شد نسخههای پایتون ۲٫۷ تنها تا سال ۲۰۲۰ پشتیبانی شوند.
خصوصیات
فهرست برخی از تغییرات عمده پایتون ۳٫۰:
تغییر پرینت چون یک تابع غیرقابل انتقال است نه یک توضیح. این باعث میشود که تغییر یک ماژول برای استفاده از یک تابع پرینت متفاوت، آسان باشد و بنابراین ایجاد نحو منظم تر میشود. در پایتون ۲٫۶ این امکان با تایپ کردن
from – future – import print – function فراهم شد.
اضافه شدن حمایت از یادآوری تابع انتخابی که میتواند برای معرفی تایپ خصوصی یا اهداف دیگر استفاده شود.
یکسان کردن تایپ str/Unicode، به نمایندگی از یک متن، و معرفی یک تایپ byte تغییرناپذیر؛ با یک تایپ مطابق با bytearray تغییرپذیر، که هر دو آرایه از بایت را ارائه میکنند.
از بین بردن خصوصیات سازگاری معکوس، شامل کلاسهای به فرم قبل، قسمت کردن اعداد صحیح، استثناءهای رشتهای، و گزارشهای نسبتاً نا آشکار.
فلسفه برنامهنویسی[ویرایش]
پایتون یک زبان برنامهنویسی چند پارادایمی است به طوریکه هم شیئگرایی و برنامهنویسی ساختیافته را کاملاً پوشش میدهد و هم بسیاری از خصوصیات پایتون برنامهنویسی جنبه گرا و تابعی (مثل پشتیبانی از فرا برنامهنویسی را پوشش میدهد. پارادایمهای برنامهنویسی دیگر نیز به وسیلهٔ افزونهها پشتیبانی شدهاند. مثل برنامهنویسی منطقی.
پایتون از تایپ پویا و ترکیبی از شمارش مرجع و یک حلقه کشف و بازیافت قسمتهای هدر رفته حافظه برای مدیریت حافظه، استفاده میکند. یک ویژگی مهم پایتون تحلیل نام پویا است، که روشها و نام متغیرها را در طول اجرای برنامه به هم ملحق میکند.
طرح پایتون به پشتیبانی محدود برای برنامهنویسی تابعی به سُنَت زبان لیسپ، ارائه شد. به همین منظور پایتون دارای توابع filter, map, و reduce و بیانهای لیست، دیکشنری، مجموعه، و جنراتور است.اگرچه، تشابههای عمدهای بین پایتون و زبان خانواده لیسپ وجود دارد. این کتابخانه دو ماژول دارد (itertools and functools) که ابزارهای تابعی را با اقتباس از هسکل و استاندارد امال پیادهسازی میکند.
فلسفهٔ اصلی پایتون در سند ذن پایتون (PEP 20) خلاصه شدهاست که شامل کلمات قصار زیر است
ذن پایتون
زیبا بهتر از زشت است.
بیان صریح بهتر از ضمنی است.
ساده بهتر از پیچیدهاست.
پیچیده بهتر از خیلی پیچیده (افتضاح) است.
مستقیم و صاف بهتر از تو در تو است.
پراکنده بهتر از متراکم است.
خوانایی مهم است.
موارد ویژه به اندازه ای ویژه نیستند که به خاطر آنها بتوان قوانین را شکست.
گرچه عملی بودن خلوص را از بین میبرد.
خطاها هرگز نباید با سکوت رد شوند.
مگر این که صراحتاً خاموش شود.
در رو به رو شدن با ابهام، از وسوسه حدس زدن دوری کن.
برای انجام این کار باید یک (ترجیها یک) روش آشکار وجود داشته باشد.
اگر چه ممکن است این روش در ابتدا واضح و آشکار نباشد مگر این که شما هلندی باشید.
حالا بهتر از هرگز است.
اگر چه «هرگز» اغلب بهتر از «همین حالا» است.
اگر توضیح یک پیادهسازی سخت است، پس این ایده بد است.
اگر توضیح یک پیادهسازی آسان است، پس ممکن است یک ایده خوب باشد.
فضای نام یک ایده عالی است، بیایید بیشتر از آنها استفاده کنیم !
منتظر نظر های شما هستم
ممنون