پایتون اواخر سال 1980 (میلادی) توسط خَودو فان روسوم در مؤسسه ملی تحقیقات ریاضی و رایانه (CWI) در کشور هلند ایجاد شد. هدف خَودو ایجاد جانشینی برای زبان برنامهنویسی ایبیسی بود که قابلیت پردازش استثناها را داشته باشد. خَودو طراح اصلی پایتون است و نقش مداوم او در تصمیم گیری پیرامون اهداف پایتون، باعث شد که انجمن پایتون به او لقب دیکتاتور خیراندیش زندگی (به انگلیسی: Benevolent Dictator For Life) را بدهد.
نسخههای اولیه
در سال 1991 فان روسوم کدی با برچسب نسخه 0.9 را منتشر کرد. البته در این مرحله از پیشرفت کلاسهایی با خاصیت ارث بری، پردازش استثنا، توابع و انواع داده list, dict, str وجود داشت. همچنین در این نسخه ابتدایی یک سیستم ماژول با اقتباس از ماژول-3 وجود داشت، که فان روسوم این ماژول را به عنوان «یکی از واحدهای عمده برنامه نویسی پایتون» توصیف کرد. مدل استثناء پایتون نیز شباهتهایی به ماژول-3 داشت، که به آن شرط else افزوده شده بود. در سال 1994 اولین مجمع مباحثه پیرامون پایتون شکل گرفت که مرحله برجستهای در پیشرفت کاربری پایتون بود.
نسخه 1.0
پایتون در ژانویه 1994 به نسخه 1.0 رسید. خصوصیات عمده جدید این نسخه شامل ابزارهای برنامه نویسی تابعی lambda, map, filter, reduce بود.
پایتون نسخه 1.2 در سال 1995، زمانیکه خَودو در CVVI بود، ارائه شد. خَودو به فعالیتهای خود روی پایتون در مؤسسه ملی تحقیقات و ابتکارات (CNRI) در رستون ادامه داد و در همانجا چندین نسخه جدید انتشار یافت.
در نسخه 1.4 به پایتون چندین ویژگی جدید اضافه شد. از ویژگیهای جالب توجه در میان این اضافات میتوان به الهام گرفتن از آرگومانهای کلیدی ماژول-3 (که خود از آرگومانهای کلیدی لیسپ الهام گرفته بود) و همچنین پیشتیبانی اعداد مختلط اشاره کرد.
در مدت فعالیت فان روسوم در CNRI، او پروژه «برنامه نویسی کامپیوتر برای هر کس» (CP4E) را ایجاد کرد تا برنامه نویسی را در دسترس افراد بیشتری که اطلاعات پایهای برای برنامه نویسی (برای مثال توانایی در زبان انگلیسی و مهارتهای اولیه ی ریاضی) را دارند، قرار دهد. زبان برنامهنویسی پایتون به دلیل تمرکزش بر روی پاکسازی فرم دستوراتش، نقش مرکزی را ایفا کرد. این پروژه توسط دارپا سرمایه گذاری شد واز سال و2007 غیر فعال شد.
و دیگرباز بودن
در سال 2000 تیم توسعه دهنده پایتون به BeOpen.com منتقل شد و بدین صورت تیم کتابخانه باز پایتون شکل گرفت. به پیشنهاد CNRI ورژن 1.6 ساخته شد، بدین ترتیب برنامههای تولید شده برای 1.6و 2.0 اشتراکهای قابل توجهی داشتند. فقط پایتون 2.0 توسط BeOpen.com طراحی شده بود. بعد از تولید پایتون 2.0 توسط BeOpen.com، خَودو و دیگر توسعه دهندگان کتابخانه پایتون به ایجاد دیجیتال روی آوردند. تولید پایتون 1.6 شامل جواز جدید CNRI بود که به طور قابل توجهی طولانی تر از جواز CWI (که برای تولیدات قبلی استفاده شده بود) بود. مؤسسه مستقل از نرمافزار توضیح داد که انتخاب شرط قانون با GNU GPL ناسازگار بود., BeOpen CNRI و FSF تغییراتی را در جواز پایتون مستقل از نرمافزار ایجاد کردند که با GPL سازگار باشد. پایتون 1.6.1 عمدتاً مشابه پایتون 1.6 است فقط با کمی اشکال، و با جواز سازگار با GPL.
نسخه 2.0
پایتون 2.0 فهرستی از ویژگیهایی را که از زبانهای برنامه نویسی تابعی ستل و هاسکل اقتباس شده بود، معرفی کرد. نحو پایتون برای این ساختار (جدا از برتری هاسکل برای کاراکترهای نقطه گذاری و کلمات الفبا) بسیار مشابه هاسکل بود. پایتون 2.0 همچنین یک سیستم بازیافت حافظه با قابلیت جمع آوری منابع معرفی کرد. پایتون 2.1 به پایتون 1.6.1 و 2.0 نزدیک بود. جواز آن به جواز مؤسسه نرمافزار پایتون تغییر نام یافت. همه کدها، اسناد و مشخصات اضافه شده را از زمان تولید الفبای پایتون 2.1 توسط مؤسسه نرمافزار پایتون (PFS) دارا شد. یک سازمان غیر انتفاعی در سال 2001 تشکیل شد که از مؤسسه نرمافزار آپاچی مدل گرفته بود. تولیدات شامل تغییراتی در خصوصیات زبان در پوشش حوزههای تو در تو بود، مشابه دیگر زبانهای حوزهای ایستا. (این خصوصیات دوباره از بین رفتند و به پایتون 2.2 منتقل نشدند.) یک تغییر بزرگ در پایتون 2.2 یکسان سازی انواع دادهای پایتون و کلاسها به یک سلسله مراتب بود. این یکسان سازی اشیاء پایتون را کاملاً شیء گرا کرد.
میراث جاوا
انتخاب نحو و ضمایم کتابخانه استاندارد پایتون شدیداً وابسته به بعضی موارد در جاوا بود: بسته logging در ورژن 2.3، تجزیه کننده SAX در ورژن 2.0 و ساختمانهای نحو که در ورژن 2.4 اضافه شد.
توسعه خصوصیات
یک طرح افزایش (PEP) در پایتون یکنواخت کردن اسنادی است که اطلاعات عمومی ای را که پایتون را شرح میدهند تولید میکنند؛ شامل پیشنهادات، توصیفها و توضیحها برای خصوصیات زبان. PEP در نظر داشت همانند روشهای اولیه، برای پیشنهاد خصوصیات جدید و نیز برای مستند سازی طرحهای اساسی، هر عامل بزرگ در پایتون را توضیح دهد. طرحهای برجسته توسط van Rossum تجدید نظر شده و توضیح داده شدند.
پایتون 3
پایتون 3.0 (که پایتون 3000 ویا Py3k نیز خوانده میشود) به منظور شکستن سازگاری عقبرو (به انگلیسی: backward compatibility) یا به عبارتی قطع سازگاری با گذشته پایتون 2 و بهبود خطاها و رخنهها در نسخه ی 2 و همچنین حذف روشهای قدیمی طراحی شد. به عبارتی دیگر لازم نیست که پایتون 3 بتواند کدی که با پایتون 2 نوشته شده را تفسیر کند که البته این مشکل توسط نرمافزار 2to3 حل میشود.
فلسفه
پایتون 3.0 با همان فلسفه ورژنهای قبل، در حال توسعه یافتن است، بنابراین هر منبعی در فلسفه پایتون، در پایتون 3.0 به خوبی ظاهر خواهد شد. اگر چه، همانطور که پایتون روشهای جدید در برنامه ریزی را جمع آوری کرده، پایتون 3.0 تأکید زیادی بر از بین بردن ساختارها و ماژولهای تکراری دارد: «باید یک – و ترجیحاًً فقط یک – روش بدیهی برای انجام آن وجود داشته باشد.» با این وجود پایتون 3.0 به ساختار زبان چند نمونهای ادامه خواهد داد. کد نویسها همچنان اختیارات شیء گرایی، برنامه نویسی ساخت یافته، برنامه نویسی تابعی و دیگر نمونهها را دارند، اما در انتخابهای وسیع، جزئیات در پایتون 3.0 آشکار تر از پایتون سری x.2 هستند.
سازگاری و همزمانی
اولین کاندید پایتون 3.0 در 17سپتامبر 2008منتشر شد. پایتون سری 2.x وx.3 به طور موازی با هم وجود خواهند داشت، جایی که سری 2.x سازگاری بیشتری دارد، به جای سری 3.x مورد استفاده قرار خواهد گرفت. PEP 3000 اطلاعات بیشتری را در مورد فهرست نشریات دارا ست. پایتون 3.0 سازگاری قبل را نقض خواهد کرد. الزامی ندارد که کدهایی که با پایتون 2.x اجرا میشوند، برای پایتون 3.0 بدون تغییر اجرا شوند. چون تغییرات اساسی بین این دو ورژن وجود دارد مثل اختلاف در حالت پرینت (بنابراین هر استفاده از پرینت به عنوان توضیح باعث شکست برنامه میشود.) نوع پویای پایتون با طرحهای تغییر معنای روشهای خاص دیکشنری ترکیب میشود، به عنوان مثال، انتقال مکانیکی بی نقص از پایتون 2.x به پایتون 3.0 را بسیار دشوار میکند. اگرچه ابزاری به نام «2to3» بسیاری از این وظایف انتقال را انجام میدهد، اما باید توجه داشت که استفاده از توضیحات یا اخطارها با ابهام همراه است. البته در یک مرحله از الفبا، 2to3 انتقال را حقیقتاً کامل انجام میدهد. PEP 3000 پیشنهاد میکند که یک منبع نگه داشته شود (برای سری 2.x)، و نسخهای بر مبنای پایتون 3.0 با استفاده از 2to3 تولید شود. کدهای نتیجه شده نباید تصحیح شوند، مگر اینکه کدی طولانی تر از محدوده سری 2.x باشد. پایتون 2.6 شامل خصوصیات سازگاری مستقیم است، به طوری که یک روش اخطار (warning) به صورت خودکار به مسائل انتقال هشدار میدهد. هشدارها باید برای تشخیص خطا گزارش داده شوند، مشابه خصوصیات ورژنهای قبلی پایتون. (برای اطلاعات بیشتر به PEP 361 رجوع کنید.)