پایتون (به انگلیسی: Python، US: /ˈpaɪθɑːn/) یک زبان برنامهنویسی شیءگرا، تفسیری، سطح بالا، و همه منظوره است، که خیدو فان روسوم آن را طراحی کردهاست، و اولین بار در سال ۱۹۹۱ منتشر شدهاست . فلسفه اصلی طراحی پایتون «خوانایی بالای کد» است و نویسههای فاصله خالی در آن معنادار هستند و مکرر استفاده میشوند . ساختار زبانی و دیدگاه شیءگرا در پایتون به گونهای طراحی شدهاست که به برنامهنویس امکان نوشتن کد منطقی و واضح (بدون ابهام) را برای پروژههای کوچک و بزرگ میدهد .
کلمات کلیدی و اصلی این زبان بهصورت حداقلی تهیه شدهاند و در مقابل کتابخانههایی که در اختیار کاربر است بسیار وسیع هستند .
برخلاف برخی زبانهای برنامهنویسی رایج دیگر که بلاکهای کد در آکولاد تعریف میشوند (بهویژه زبانهایی که از نحو زبان سی پیروی میکنند) در زبان پایتون از نویسه فاصله و جلو بردن متن برنامه برای مشخص کردن بلاکهای کد استفاده میشود . به این معنی که تعدادی یکسان از نویسه فاصله در ابتدای سطرهای هر بلاک قرار میگیرند و این تعداد در بلاکهای کد درونیتر افزایش مییابد . بدین ترتیب بلاکهای کد به صورت خودکار ظاهری مرتب دارند .
شی گرایی
در پایتون مدلهای مختلف برنامهنویسی (از جمله شیگرا و برنامهنویسی دستوری و تابع محور) را پشتیبانی میشود و برای مشخص کردن نوع متغیرها از یک سامانهٔ پویا استفاده میشود .
این زبان از زبانهای برنامهنویسی مفسر بوده و بهصورت کامل یک زبان شیءگرا است که در ویژگیها با زبانهای تفسیری پرل، روبی، اسکیم، اسمالتاک و تیسیال مشابهت دارد و از مدیریت خودکار حافظه استفاده میکند .
زبان پایتون ۲ رسماً از سال ۲۰۲۰ دیگر پشتیبانی نمیشود و ۲٫۷٫۱۸ آخرین نسخهٔ پایتون ۲٫۷ و همچنین پایتون ۲ است و ازاین به بعد دیگر هیچ وصلهٔ امنیتیای یا بهبود دیگری در این نسخه داده نخواهد شد . با پایان پشتیبانی از پایتون ۲ فقط پایتون ۳ نسخههای بعدی آن پشتیبانی خواهند شد .
پایتون پروژهای آزاد و متنباز توسعهیافتهاست و توسط بنیاد نرمافزار پایتون مدیریت میگردد .
تاریخچه
پایتون اواخر دهه ۱۹۸۰ (میلادی) در مؤسسه ملی تحقیقات ریاضی و رایانه (CWI) در کشور هلند توسعه داده شد .
هدف خیدو از توسعهٔ پایتون ایجاد جانشینی برای زبان برنامهنویسی ایبیسی بود که قابلیت پردازش استثناها را داشته باشد .پیادهسازی پایتون در دسامبر ۱۹۸۹ آغاز شد . خیدو طراح اصلی پایتون است و نقش مداوم او در تصمیمگیری پیرامون اهداف پایتون، باعث شد که انجمن پایتون به او لقب دیکتاتور خیرخواه جاویدان را بدهد . فان روسوم تا ۱۲ ژوئیه ۲۰۱۸ مسئولیت رهبری پروژهٔ پایتون را به عهده داشت . در آن زمان او اعلام کرد که از مسئولیت خود به عنوان دیکتاتور خیرخواه جاویدان کنارهمیگیرد . در حال حاضر، او مسئولیت رهبری پروژهٔ پایتون را به یک انجمن راهبری پنج عضوی که خود نیز یکی از اعضای آن است دادهاست . در ژانویهٔ ۲۰۱۹ توسعه دهندگان فعال هستهٔ پایتون نیک کولان، برت کانون، بری وارساو، کارول ویلینگ و خیدو فان روسوم را به عنوان اعضای انجمن انتخاب کردند .از آن زمان خیدو فان روسوم از نامزدی برای انجمن ۲۰۲۰ صرف نظر کردهاست .
پایتون ۲٫۰ در ۱۶ اکتبر ۲۰۰۰ با ویژگیهای مهم و جدید بسیاری منتشر شدکه شامل بازیافت حافظه با قابلیت شناسایی دور و پشتیبانی از یونیکد بود .
فلسفه برنامهنویسی
پایتون یک زبان برنامهنویسی چند پارادایمی است به طوریکه هم شیء گرایی و برنامهنویسی ساختیافته را کاملاً پوشش میدهد و هم بسیاری از خصوصیات پایتون برنامهنویسی جنبه گرا و تابعی (مثل پشتیبانی از فرا برنامهنویسی) را پوشش میدهد . پارادایمهای برنامهنویسی دیگر نیز به وسیلهٔ افزونهها پشتیبانی شدهاند مثل برنامهنویسی منطقی .
پایتون از تایپ پویا و ترکیبی از شمارش مرجع و یک حلقه کشف و بازیافت قسمتهای هدر رفته حافظه برای مدیریت حافظه، استفاده میکند . یک ویژگی مهم پایتون تحلیل نام پویا است که روشها و نام متغیرها را در طول اجرای برنامه به هم ملحق میکند .
طرح پایتون به پشتیبانی محدود برای برنامهنویسی تابعی به سُنَت زبان لیسپ، ارائه شد . به همین منظور پایتون دارای توابع filter
, map
, و reduce
و عبارتهای لیست، دیکشنری، مجموعه و جنراتور است . اگرچه، تشابههای عمدهای بین پایتون و زبان خانواده لیسپ وجود دارد . این کتابخانه دو ماژول دارد (ایترتولز و فانکتولز) که ابزارهای تابعی را با اقتباس از هسکل و استاندارد امال پیادهسازی میکند .
فلسفهٔ اصلی پایتون در سند ذن پایتون پیئیپی ۲۰ خلاصه شدهاست که شامل گزینههای زیر است:
به جای اینکه تمام عملکرد پایتون در هستهٔ آن متمرکز باشد طوری طراحی شدهاست که به خوبی از افزونهها پشتیبانی کند . این ویژگی پایتون که آن را محبوب کردهاست، راهی برای اضافه کردن ایپیآی به نرمافزارهای موجود بودهاست . ایدهٔ فان روسوم از زبانی با هستهٔ کوچک و کتابخانهٔ استاندارد بزرگ با مفسر افزونهپذیر، ریشه در سرخوردگی او از زبان ایبیسی دارد .
اهداف
یکی از اهداف پایتون داشتن نحو سادهتر و منظمتر است؛ به همین دلیل برای روششناسی کد فقط یک انتخاب در مقابل توسعهدهنده قرار میدهد . روش پایتون در مقابل روش پرل (بیش از یک روش برای انجام آن وجود دارد) قرار دارد و فلسفهٔ طراحی آن چنین است «باید یک راه – و ترجیحاً فقط یک راه – آشکار برای انجام هر کاری وجود داشته باشد.». الکس مارتلی که نویسندهٔ کتابهای مربوط به پایتون است . مینویسد: «در فرهنگ پایتون «هوشمندانه» توصیف کردن چیزی ستایش بهشمار نمیرود.»
هدف دیگر طراحی زبان آسان کردن توسعهپذیری است . ماژولهایی که تازه ساخته شدهاند، بهسادگی در C و C++ نوشته میشوند . پایتون همچنین میتواند به عنوان زبان توسعه برای ماژولها و کاربردهای موجود که به برنامه واسط قابل برنامهریزی نیاز دارد، استفاده شود . توسعه دهندگان پایتون سعی کردند از بهینهسازی زود هنگام اجتناب کنند و وصلههای غیر حساس سیپایتون که باعث افزایش سرعت نهایی میشد را اضافه نکردند . هرگاه برای برنامهنویس پایتون سرعت اهمیت داشت، او میتواند توابع زمانبر را به ماژولهای افزونهای ببرد و آنها را به زبانهایی مثل سی بنویسد یا از پایپای استفاده کند که نوعی کامپایلر درجا است . از سایتون که اسکریپت پایتون را به سی ترجمه میکند نیز میتوان استفاده کرد .
به کاربران و علاقهمندان پایتون مخصوصاً آنان که باتجربه و آگاه به حساب میآیند پایتونیستا گفته میشود .
این زبان در مقایسه با زبانهای دیگر، دارای سرعت کمتری است . این زبان سطح بالایی است و مانند زبانهای C، رابطه خوبی با سختافزار ندارد . کارهایی که نیاز به حافظه کوتاه مدت دارند را نمیتوان برای زبان پایتون مناسب دانست .
واژههای ابداعی
یک واژه ابداعی رایج در انجمن پایتون، واژهٔ پایتونیک است که محدوده معنایی وسیعی را در رابطه با سبک برنامهنویسی در بر میگیرد . کدی پایتونیک است که از اصطلاحات پایتون به خوبی استفاده کرده باشد به طوری که شیوایی در زبان را نشان دهد و مطابق فلسفهٔ مینیمالیستی و خوانایی بالا در پایتون باشد. در مقابل کد آنپایتونیک کدی است که فهم آن مشکل است یا مثل رونویسیای از زبان دیگری باشد .
نام گذاری
نام پایتون از گروه کمدین بریتانیایی مانتی پایتون که سازندهٔ پایتون، خیدو فان روسوم، به آن علاقهمند بود، گرفته شدهاست . اشاره به مانتی پایتان در فرهنگ پایتون و کدهای آن به وفور دیده میشود؛ برای مثال در پایتون spam and eggs، به جای فوبار به عنوان متغیرهای فرانحوی به کار میرود . در مستندسازی رسمی پایتون نیز به روالهای مانتی پایتون اشاره میشود .
پایتون برای جداکردن بلوک کد به جای استفاده کردن از آکولاد از تورفتگی فاصله خالی استفاده میکند . برای شروع بلوک کد یک پله تورفتگی را بیشتر میکنیم و برای اتمام آن یک پله بلوک کد را کمتر میکنیم . پس ساختار ظاهری برنامه نمایش دهندهٔ ساختار معنایی آن است . این ویژگیای که به نام قاعدهٔ آف-ساید نیز شناخته میشود و در بعضی از زبانها وجود دارد ولی در بیشتر زبانهای برنامهنویسی وجود تورفتگی معنای خاصی نمیدهد .
پیادهسازی
پیادهسازی مرجع
سیپایتون رویهٔ اصلی پایتون است که در نشست C در استاندارد C۸۹ نوشته شد ولی از چند ویژگی نشست C۹۹ نیز استفاده کردهاست . سیپایتون برنامههای پایتون را به یک بایتکد میانی کامپایل میکند، تا بعد از آن ماشین مجازی آن را اجرا کند .سیپایتون با یک کتابخانه استاندارد بزرگ توزیع شدهاست، که به صورت مخلوطی از C و پایتون نوشته شدهاست . سیپایتون در ورژنهای مختلف روی پلتفرمهای زیادی کار میکند، مثل مایکروسافت ویندوز و بیشتر سیستمهای پیشرفته یونیکس .استفاده و توسعه آن روی پایگاههای محرمانه مانند آمیب، در کنار پایگاههای متداول مانند یونیکس یا مکینتاش، بهطور عمده در این نظر کمک شدهاست .
پیادهسازیهای دیگر
جایتون برنامههای پایتون را به کد بایت جاوا کامپایل میکند که بدین ترتیب میتواند با هر ماشین مجازی جاوا اجرا شود همچنین این امکان فراهم میشود که توابع کتابخانهای کلاس جاوا از برنامه پایتون به کار گرفته شود . آیرون پایتون از همین شیوه برای اجرای برنامههای پایتون روی چارچوب داتنت استفاده میکند .
پای پای یک مفسر سریع پایتون ۲٫۷ و ۳٫۶ است . پایپای نوعی کامپایلر درجاست که باعث افزایش سرعت نسبت به سیپایتون میشود ولی در عوض از بسیاری از کتابخانهها که به زبان سی نوشته شدهاند نمیتوان با آن استفاده کرد .
پایتون بدون پشته ، انشعابی از سی پایتون است که ریز برنامهها را اجرا میکند و از پشته حافظه استفاده نمیکند . سی پایتون از قفل مفسر سراسری استفاده میکند تا وقتی برنامه پایتون بدون پشته، وابسته به سیستم عامل است و میتواند به صورت همزمان اجرا شود، در هر لحظه فقط به یک زیر برنامه اجازه اجرا داده شود. پایتون برای استفاده در میکرو کنترلرها یا وظایف محدود دیگر پایگاههای مرجع، متناسبتر است . پیشبینی میشود که پایتون بدون پشته بتواند تقریباً روی همان پایگاهی که سی پایتون اجرا میشود، اجرا شود .
خیلی مطلب خوبی بود در مورد کاربرد های پایتون در سیسکو و شبکه هم مطلب میزارید
ممنونیم در تلاش هستیم تا مطالب مفید دیگری را هم به سایت اضافه کنیم تا شما دوستان عزیز مطالعه کنید