آقای پای

پایتون چیست؟

پایتون یک زبان برنامه نویسی سطح بالا و همه منظوره است که خیدو فان روسوم آن را اولین بار در سال ۱۹۹۱ میلادی طراحی کرده و منتشر کرده است.

پایتون یک زبان برنامه نویسی شی‌گرا و سطح بالا با معناشناسی پویای یکپارچه شده برای وب و ساخت و توسعه نرم‌افزارهای کاربردی است. این زبان برنامه نویسی در زمینه توسعه سریع نرم‌افزارهای کاربردی دارای جذابیت بالایی است زیرا دارای انواع تایپ های پویا است. [wpdiscuz-feedback id=”m0kue555sj” question=”درمورد خیدو فان روسوم نظری داری؟” opened=”0″]خیدو فان روسوم[/wpdiscuz-feedback] طراح این زبان است!

پایتون، زبان برنامه نویسی نسبتا ساده‌ای محسوب می‌شود که یادگیری آن به دلیل دارا بودن نحو یکتایی که بر قابلیت خوانایی تمرکز و تاکید دارد آسان است. خواندن و ترجمه کدهای نوشته شده به زبان برنامه نویسی پایتون نسبت به دیگر زبان‌ها برای توسعه‌دهندگان ساده‌تر محسوب می‌شود. این موضوع به نوبه خود هزینه‌های نگهداری و توسعه برنامه نویسی‌های نوشته شده به این زبان را کاهش می‌دهد زیرا امکان همکاری تیم‌ها بدون مواجهه با موانع زبانی و وجود تجربیات کاری متفاوت در میان اعضای تیم را به دست می‌دهد.

علاوه بر این، پایتون از ماژول‌ها و بسته‌ها استفاده می‌کند، بدین معنا که برنامه نویسی‌های این زبان قابل طراحی به سبک ماژولار هستند و کدهای نوشته شده در یک پروژه در پروژه‌های گوناگون دیگر نیز قابل استفاده مجدد محسوب می‌شوند. هنگامی که کاربری ماژول یا بسته مورد نیاز خود را توسعه داد، خودش یا دیگر علاقمندان (در صورتی که کد در اختیار عموم قرار بگیرد) می‌توانند آن را برای استفاده در دیگر پروژه‌ها گسترش دهند. ایمپورت و اکسپورت کردن این ماژول‌ها نیز کار آسانی است.

 

تاریخچه پایتون

پایتون اواخر دهه ۱۹۸۰ میلادی توسط خودو فان روسوم در مؤسسه ملی تحقیقات ریاضی و رایانه در کشور هلند ایجاد شد.

هدف خیدو از ابداع پایتون ایجاد جانشینی برای زبان برنامه نویسی ای‌بی‌سی بود که قابلیت پردازش استثناها را داشته باشد. پیاده‌سازی پایتون در دسامبر ۱۹۸۹ آغاز شد. خَودو طراح اصلی پایتون است و نقش مداوم او در تصمیم‌گیری پیرامون اهداف پایتون، باعث شد که انجمن پایتون به او لقب دیکتاتور خیرخواه جاویدان را بدهد. فان روسوم تا ۱۲ ژوئیه ۲۰۱۸ مسئولیت رهبری پروژهٔ پایتون را به عهده داشت. در آن زمان او اعلام کرد که از مسئولیت خود به عنوان دیکتاتور خیرخواه جاویدان کناره‌گیری می‌کند. در حال حاضر، او مسئولیت رهبری پروژهٔ پایتون را به یک شورای ۵ نفرهٔ چرخان که خود نیز یکی از اعضای آن است داده‌است.

پایتون ۲٫۰ در ۱۶ اکتبر ۲۰۰۰ با ویژگی‌های مهم و جدید بسیاری منتشر شدکه شامل بازیافت حافظه با قابلیت شناسایی دور و پشتیبانی از یونیکد بود.

پایتون ۳٫۰ در ۳ دسامبر ۲۰۰۸ منتشر شد این نسخه بازنویسی عمده ای از نسخهٔ قبل بود که سازگاری عقبرو را شکسته بود. بسیاری از ویژگی‌های عمدهٔ آن به پایتون 2.6‎.x و 2.7‎.x پیش‌انتقال داده شدند. نسخه‌های منتشر شده از پایتون ۳ ابزار 2to3 را دارند که کار ترجمهٔ کد پایتون ۲ به پایتون ۳ را (حداقل تا حدودی) انجام می‌دهد.

از سال ۲۰۱۵ مقرر شد نسخه‌های پایتون ۲٫۷ تنها تا سال ۲۰۲۰ پشتیبانی شوند.

 

فلسفه برنامه نویسی

پایتون یک زبان برنامه نویسی چند پارادایمی است به طوریکه هم شیء گرایی و برنامه نویسی ساخت‌یافته را کاملاً پوشش می‌دهد و هم بسیاری از خصوصیات پایتون برنامه نویسی جنبه گرا و تابعی (مثل پشتیبانی از فرا برنامه نویسی را پوشش می‌دهد. پارادایم‌های برنامه نویسی دیگر نیز به وسیلهٔ افزونه‌ها پشتیبانی شده‌اند. مثل برنامه نویسی منطقی.

پایتون از تایپ پویا و ترکیبی از شمارش مرجع و یک حلقه کشف و بازیافت قسمت‌های هدر رفته حافظه برای مدیریت حافظه، استفاده می‌کند. یک ویژگی مهم پایتون تحلیل نام پویا است که روش‌ها و نام متغیرها را در طول اجرای برنامه نویسی به هم ملحق می‌کند.

طرح پایتون به پشتیبانی محدود برای برنامه نویسی تابعی به سُنَت زبان لیسپ، ارائه شد. به همین منظور پایتون دارای توابع filter, map, و reduce و بیان‌های لیست، دیکشنری، مجموعه و جنراتور است. اگرچه، تشابه‌های عمده‌ای بین پایتون و زبان خانواده لیسپ وجود دارد. این کتابخانه دو ماژول دارد ( ایترتولز و فانکتولز ) که ابزارهای تابعی را با اقتباس از هسکل و استاندارد ام‌ال پیاده‌سازی می‌کند.

فلسفهٔ اصلی پایتون در سند ذن پایتون (PEP 20) خلاصه شده‌است که شامل کلمات زیر است:

ذن پایتون Zen of Python
  • زیبا بهتر از زشت است.
  • بیان صریح بهتر از ضمنی است.
  • ساده بهتر از پیچیده‌است.
  • پیچیده بهتر از خیلی پیچیده (افتضاح) است.
  • مستقیم و صاف بهتر از تو در تو است.
  • پراکنده بهتر از متراکم است.
  • خوانایی مهم است.
  • موارد ویژه به اندازه ای ویژه نیستند که به خاطر آن‌ها بتوان قوانین را شکست.
  • گرچه عملی بودن خلوص را از بین می‌برد.
  • خطاها هرگز نباید با سکوت رد شوند.
  • مگر اینکه صراحتاً خاموش شود.
  • در رو به رو شدن با ابهام، از وسوسه حدس زدن دوری کن.
  • برای انجام این کار باید یک (ترجیها یک) روش آشکار وجود داشته باشد.
  • اگر چه ممکن است این روش در ابتدا واضح و آشکار نباشد مگر اینکه شما هلندی باشید.
  • حالا بهتر از هرگز است.
  • اگر چه «هرگز» اغلب بهتر از «همین حالا» است.
  • اگر توضیح یک پیاده‌سازی سخت است، پس این ایده بد است.
  • اگر توضیح یک پیاده‌سازی آسان است، پس ممکن است یک ایده خوب باشد.
  • فضای نام یک ایده عالی است، بیایید بیشتر از آن‌ها استفاده کنیم!
  • Beautiful is better than ugly.
  • Explicit is better than implicit.
  • Simple is better than complex.
  • Complex is better than complicated.
  • Flat is better than nested.
  • Sparse is better than dense.
  • Readability counts.
  • Special cases aren’t special enough to break the rules.
  • Although practicality beats purity.
  • Errors should never pass silently.
  • Unless explicitly silenced.
  • In the face of ambiguity, refuse the temptation to guess.
  • There should be one—and preferably only one—obvious way to do it.
  • Although that way may not be obvious at first unless you’re Dutch.
  • Now is better than never.
  • Although never is often better than right now.
  • If the implementation is hard to explain, it’s a bad idea.
  • If the implementation is easy to explain, it may be a good idea.
  • Namespaces are one honking great idea—let’s do more of those!

 

به جای اینکه تمام عملکرد پایتون در هستهٔ آن متمرکز باشد طوری طراحی شده‌است که به خوبی از افزونه‌ها پشتیبانی کند. این ویژگی پایتون که آن را محبوب کرده‌است راهی برای اضافه کردن ای پی آی به نرم‌افزارهای موجود بوده‌است. ایدهٔ فان روسوم از زبانی با هستهٔ کوچک و کتابخانهٔ استاندارد بزرگ با مفسر آسان توسعه پذیر، ریشه در سرخوردگی او از زبان ای‌بی‌سی دارد.

پایتون تلاش می‌کند تا نحو و گرامری ساده‌تر و جمع و جورتر داشته باشد و به همین دلیل برای روش‌شناسی کد فقط یک انتخاب در مقابل توسعه دهنده قرار می‌دهد. روش پایتون در مقابل روش پرل (بیش از یک روش برای انجام آن وجود دارد) قرار دارد و فلسفهٔ طراحی آن چنین است «باید یک راه – و ترجیحاً فقط یک راه – آشکار برای انجام آن وجود داشته باشد.».

در فرهنگ پایتون، هوشمندانه توصیف کردن چیزی ستایش به‌شمار نمی‌رود! الکس مارتلی

 

هدف دیگر طراحی زبان آسان کردن توسعه‌پذیری است. ماژول‌هایی که تازه ساخته شده‌اند، به‌سادگی در C و C++‎ نوشته می‌شوند. پایتون همچنین می‌تواند به عنوان زبان توسعه برای ماژول‌ها و کاربردهای موجود که به برنامه نویسی واسط قابل برنامه نویسی‌ریزی نیاز دارد، استفاده شود. توسعه دهندگان پایتون سعی کردند از بهینه‌سازی زود هنگام اجتناب کنند و وصله‌های غیر حساس سی‌پایتون که باعث افزایش سرعت نهایی می‌شد را اضافه نکردند. هرگاه برای برنامه نویسی‌نویس پایتون سرعت اهمیت داشت او می‌تواند توابع زمانبر را به ماژول‌های افزونه ای ببرد و آن‌ها را به زبان‌هایی مثل سی بنویسد یا از پای‌پای استفاده کند که نوعی کامپایلر درجا است. از سایتون که اسکریپت پایتون را به سی ترجمه می‌کند نیز می‌توان استفاده کرد.

به کاربران و علاقه‌مندان پایتون مخصوصاً آنان که باتجربه و باسواد به حساب می‌آیند پایتونیستا گفته می‌شود.

این زبان در مقایسه با زبان‌های دیگر چون دارای سرعت کمتری است. این زبان زبان سطح بالایی است و مانند زبان‌های C با رابطه خوبی با سخت‌افزار ندارد. کارهایی که نیاز به حافظه کوتاه مدت دارند را نمی‌توان برای زبان پایتون مناسب دانست.

واژه‌های ابداعی

یک واژه ابداعی رایج در انجمن پایتون، واژهٔ پایتونیک است که محدوده وسیع معنایی را در بر می‌گیرد. وقتی می‌گوییم کدی پایتونیک است یعنی از نحو پایتون به خوبی استفاده کرده‌است در مقابل کد آنپایتونیک کدیست که خوانایی بالایی ندارد و انگار به زبان دیگری نوشته شده‌است. این واژه گزینی با فلسفهٔ مینیمالیستی و خوانایی بالا در پایتون همخوانی دارد.

 

نام گذاری

نام پایتون از گروه کمدین بریتانیایی مانتی پایتون که سازندهٔ پایتون خیدو فان روسوم به آن علاقه‌مند بود گرفته شده‌است. اشاره به مانتی پایتان در فرهنگ پایتون و کدهای آن به وفور دیده می‌شود.

 

دستور زبان

پایتون در نظر دارد که زبانی بسیار خوانا باشد؛ بنابراین طرح بندی آن مرتب و بدون حشو و زوائد است و اغلب از کلمات کلیدی انگلیسی استفاده می‌کند، در حالی که زبان‌ها دیگر از نقطه‌گذاری استفاده می‌کنند. پایتون نسبت به زبان‌های ساخت یافته سنتی، مثل C و پاسکال استثناءهای نحوی و موارد خاص کمتری دارد.

دندانه دار نوشتن

پایتون برای جداکردن بلوک کد به جای استفاده کردن از آکولاد از تورفتگی فاصله خالی استفاده می‌کند. برای شروع بلوک کد یک پله تورفتگی را بیشتر می‌کنیم و برای اتمام آن یک پله بلوک کد را کمتر می‌کنیم. پس ساختار ظاهری برنامه نویسی نمایش دهندهٔ ساختار معنایی آن است. این ویژگی ای که به نام قاعدهٔ آف-ساید نیز شناخته می‌شود؛ و در بعضی از زبان‌ها وجود دارد؛ ولی در بیشتر زبان‌های برنامه نویسی وجود تورفتگی معنای خاصی نمی‌دهد.

حکم‌ها و روند کنترل

حکم‌های پایتون شامل:

  • حکم if که یک بلوک کد تا رسیدن به else و elif (کوتاه شده else-if) را اجرا می‌کند.
  • حکم for که روی یک شیء از نوع تکرار شدنی تکرار می‌شود و هر عضو آن را برای استفاده توسط بلوک مربوط به متغیر محلی می‌دهد.
  • حکم while تا زمانی که شرط برقرار باشد بلوک کد را اجرا می‌کند.
  • حکم try برای استثناها از آن استفاده می‌شود که اجازه می‌دهد بلوک کد همراه با آن با استفاده از except یا finally به کار گرفته شود.
  • حکم raise برای ایجاد استثناها از آن استفاده می‌شود.
  • حکم class که یک بلوک کد را اجرا می‌کند و فضاهای محلی آن را به یک کلاس ملحق می‌کند، برای استفاده در برنامه نویسی شیء گرا.
  • حکم def که تابع را تعریف می‌کند.
  • حکم with که یک بلوک کد را به یک مدیر محتوا ضمیمه می‌کند. (به عنوان مثال، اندوختن یک قفل قبل از اجرای بلوک کد و آزاد کردن قفل بعد از اجرا)
  • حکم break برای خروج از نزدیک‌ترین حلقه استفاده می‌شود.
  • حکم continue که برای پریدن از دور جاری و ادامه دادن از دور بعدی در نزدیک‌ترین حلقه استفاده می‌شود.
  • حکم pass که به عنوان NOP از آن استفاده می‌شود و از آن برای درست کردن بلوک کد خالی استفاده می‌شود.
  • حکم assert که هنگام دیباگ کردن استفاده می‌شود. شرطی که باید اتفاق بیافتد را بررسی می‌کند.
  • حکم yield که از آن در توابع مولد (جنراتور) به جای return استفاده می‌شود.
  • حکم print که در پایتون ۳ تبدیل به تابع print()‎ شد.
  • حکم import که برای وارد کردن ماژول استفاده می‌شود.

هر حکمی برای خود قواعد معنایی خاصی دارد: به عنوان مثال، حکم def، بر خلاف دیگر حکم‌ها بلوک خود را فوراً اجرا نمی‌کند.

سی پایتون استمرار را پشتیبانی نمی‌کند و مطابق نظر خَودو فان روسوم هرگز نخواهد کرد. در ورژن‌های قبلی مولد تکرار کند بود چون اطلاعات تنها در یک جهت از مولد عبور می‌کردند.

متدها

متدها توابعی هستند که روی اشیاء یک کلاس اجرا می‌شوند

نحو instance.method(argument) و Class.method(instance,argument) هر دو برای متدها و توابع نرمال استفاده می‌شوند ولی اولی خوانایی بیشتری دارد. متدهای پایتون، یک پارامتر self آشکار برای دستیابی به داده‌های instance دارند، در مقابل پارامتر self در برخی زبان‌ها غیر آشکار است زبان‌های برنامه نویسی شیء گرا (مانند جاوا، C++‎ ، یا روبی)

نوع دهی

پایتون از نوع دهی ادکی استفاده می‌کند. محدودیت تایپ در زمان کامپایل چک نمی‌شود؛ بنابراین عمل گرهای روی یک شیء ممکن است شکست بخورند، به این مفهوم که شیء داده شده از یک تایپ مناسب نیست. با اینکه اجباری در تایپ دهی ایستا نیست، پایتون شدیداً تایپ دهی شده و عمل گرهای نامناسب را نهی می‌کند. (مثل مقدار دهی یک رشته با یک عدد)

کلاس‌های پایتون

تایپ تغییرپذیری توصیف مثال نحو
ellipsis تغییرناپذیر ایندکس در آرایه نام‌پای ...
Ellipsis
*NoneType تغییرناپذیر یک شیء که نشان دهندهٔ وجود نداشتن مقدار است و در زبان‌های دیگر با نام null شناخته می‌شود (اشاره‌گر هیچ‌مقدار) None
*NotImplementedType تغییرناپذیر یک مکان نگهدارنده که می‌تواند از طریق اپراتورهای دارای بار اضافی برگردانده شود تا انواع عمل پشتیبانی نشده را نشان دهد. NotImplemented
bool تغییرناپذیر فقط می‌تواند دو مقدار به خود بگیرد True
False
عدد (number)
int تغییرناپذیر عدد صحیح 42
long تغییرناپذیر وقتی ذخیره کردن یک عدد صحیح سر ریز داشته باشد، با دقتی نامحدود Long بسط خواهد یافت (تنها در پایتون ۲) 3457877773487L
float تغییرناپذیر عدد اعشاری 3.1415927
complex تغییرناپذیر عدد مختلط با عدد حقیقی و قسمت موهومی 3+2.7j
دنباله (Sequence)
bytearray تغییرپذیر دنباله ای از بایت‌ها bytearray(b'Some ASCII')
bytearray(b"Some ASCII")
bytearray([119, 105, 107, 105])
bytes تغییرناپذیر دنباله ای از بایت‌ها b'Some ASCI'
b"Some ASCII"
bytes([119, 105, 107, 105])
list تغییرپذیر لیستی از اشیاء که ترتیب خاصی دارند و آن اشیاء می‌توانند تایپ‌های مختلفی باشند. [4.0 ,'string', True]
str تغییرناپذیر رشته ای از کاراکترها 'Wikipedia'
"Wikipedia"
tuple تغییرناپذیر مثل listمنتها تغییرناپذیر (4.0 ,'string', True)
مجموعه (set)
frozenset تغییرناپذیر مجموعه (مجموعه از اشیاء که بدون ترتیب تکرار هستند) در صورت هشبل بودن می‌تواند انواع مختلفی از اشیاء را همزمان بپذیرد. frozenset([4.0, 'string', True])
set تغییرپذیر مثل frozenset منتها تغییرپذیر {4.0 ,'string', True}
نگاشت (mapping)
dict تغییرپذیر گروهی از جفت‌های کلیدها و مقادیر {'key1': 1.0, 3: False}
نوع‌های قابل فراخوانی (Callable types)
range تغییرناپذیر دنباله ای از اعداد است که معمولاً از آن برای حلقه با تعداد مشخصی از تکرار استفاده می‌شود range(1, 10)
range(10, -5, -2)
generator تغییرناپذیر توابع با سرعت و حجم کمتر از list type(7)
type('wiki')

*مستقیما از طریق نام قابل دسترسی نیست.

پایتون همچنین به برنامه نویسی‌نویس‌ها اجازه می‌دهد که تایپ دلخواه خود را تعریف کنند. این کار با استفاده از کلاس‌ها امکان‌پذیر است و اغلب برای شیء گرایی در برنامه نویسی استفاده می‌شود. نمونه‌های جدید از کلاس‌ها با صدا زدن کلاس ساخته می‌شوند و کلاس‌ها خودشان نمونه‌هایی از کلاس type هستند (خودش یک نمونه از خودش است).

متغیرها

در پایتون می‌توان با ایجاد متغیرهایی کلاس‌های بالا را ذخیره کرد. برای اینکار باید نام متغیر را مساوی مقدار قرار دهید. یعنی: g = 2 که جی نام متغیر و ۲ مقدار متغیر است. برای آنکه از طریق خط فرمان مقدار را دریافت کنید، باید از input استفاده کنید که آن هم در یک متغیر ذخیره می‌شود:

input('enter str:')

پایتون ۲ به‌طور خودکار از عدد استفاده می‌کند اما پایتون ۳ از رشته به‌طور خودکار استفاده می‌کند. اگر می‌خواهید از کلاس‌هایی غیر از رشته استفاده کنید، باید از تبدیل‌گر استفاده کنید:

int(input('enter age:'))

اگر می‌خواهید چند متغیر را در یک‌خط بنویسید، باید ابتدا نام متغیرها و بعد مقادیر را بنویسید:

f , g , h = 1 , 2 , 3

اگر می‌خواهید به چند متغیر یک مقدار را نسبت دهید، باید ابتدا نام متغیرها و بعد مقدار را بنویسید:

a = b = c = d = 1

عملگرهای مقایسه ای

  • == برای تشخیص آنکه ورودی با مقدار مقدار داده‌شده برابر است: g == 2
  • <> (پایتون ۲) و =!‎ (پایتون ۳) برای تشخیص مساوی‌نبودن ورودی و مقدار داده‌شده: g != 2
  • < برای تشخیص بزرگتر بودن ورودی از مقدار و ‎=< برای تشخیص بزرگتر یا مساوی بودن ورودی از مقدار.
  • > برای تشخیص کوچکتر بودن ورودی از مقدار و ‎=> برای تشخیص کوچکتر یا مساوی بودن ورودی از مقدار.
  • is برای تشخیص هماهنگی ورودی و مقدار و is not برای تشخیص هماهنگی نبودن
  • in برای تشخیص قرارداشتن مقدار در ورودی و not in برای تشخیص برعکس

در صورت درست بودن به ما True و در غیر این صورت، False می‌دهد

عملگرهای ریاضی

در پایتون می‌توان با عملگرهای ریاضی، عمل‌هایی از جمله جمع، تفریق و ضرب و تقسیم را انجام داد:

  • + برای جمع: 2+2
  • - برای تفریق: 2-2
  • * برای ضرب: 2*2
  • ** برای به‌توان: 2**2
  • / برای تقسیم: 2/2(در پایتون ۲ برای به‌دست آوردن بخش اعشار، باید یا هردو یا یکی از اعداد را با نقطه یا نقطه‌صفر: ‎7/2. 7.0/2.0 7.0/2 بگذاریم که در پایتون ۳ مشکل حل شد)
  • // برای خارج قسمت تقسیم: 2//2
  • % برای باقی مانده تقسیم: 2%2

این عملگرها بر روی int، float str و list کار می‌کنند.

تغییر دادن مقدار متغیر با عملگر ریاضی

  • =+ برای اضافه کردن به متغیر مثلاً 4=+i یعنی ۴ تا به متغیر i اضافه کن.
  • =- برای کم‌کردن از متغیر مثلاً 4=-i یعنی ۴ تا از متغیر i کم کن.
  • و به همین ترتیب برای ضرب، به‌توان، تقسیم، خارج قسمت تقسیم و باقی‌مانده تقسیم ابتدا عملگر و سپس علامت مساوی را می‌گذاریم.

ماژول‌ها در پایتون

برخی از کدها برای خلوت‌سازی پایتون، در ماژول‌ها وارد شده‌است.

برای وارد کردن ماژول به سه روش از import استفاده می‌شود:

import <module name> [as <alias>]

یا

from <module name> import *

یا

from <module name> import <definition 1> [as <alias 1>][, <definition 2> [as <alias 2>]][, ...]

برای ساختن ماژول، ابتدا کلاس‌ها، توابع و متغیرهایی را در یک فایل ذخیره می‌کنیم و نام فایل را در <module name> قرار می‌دهیم. (کد فایل را لازم نیست وارد کنید)

 

نمونه کد پایتون

برنامه نویسی سلام دنیا

برنامه نویسی «سلام، دنیا!» زیر، با استفاده از کتابخانه استاندارد و جریان‌های خروجی یک متن را به خروجی استاندارد ارسال می‌نماید

print('Hello, world!')

برنامه نویسی محاسبهٔ فاکتوریل

def factorial(n):
    f = 1
    if n == 0:
        f = 1
    else:
        for i in range(1,n+1):
            f *= i
    return f

تابع برای پیداکردن هش SHA-1

import hashlib

def hash_file(filename):

   h = hashlib.sha1()
   with open(filename,'rb') as file:

        while True:
            chunk = file.read(1024)
            if chunk == b'':
                break
            h.update(chunk)

   return h.hexdigest()

مقبولیت

پایتون در بسیاری از سیستم عامل‌ها به عنوان جزء استاندارد وجود دارد. پایتون در سیستم عامل‌های توزیع لینوکس، آمیگااواس ۴، فری بی‌اس‌دی، نت‌بی‌اس‌دی، اوپن‌بی‌اس‌دی و مک‌اواس می‌تواند از طریق خط فرمان (ترمینال) استفاده شود. ردهت لینوکس و فدورا هر دو از نصاب پایتونی آناکوندا استفاده می‌کنند. لینوکس جنتو از پایتون در سیستم مدیریت بسته، یعنی پورتج استفاده می‌کند. پاردوس از آن برای مدیریت و در طول راه‌اندازی سیستم استفاده می‌کند.

 

پیاده‌سازی

پیاده‌سازی مرجع

سی‌پایتون رویهٔ اصلی پایتون است که در نشست C در استاندارد C۸۹ نوشته شد ولی از چند ویژگی نشست C۹۹ نیز استفاده کرده‌است. سی‌پایتون برنامه نویسی‌های پایتون را به یک بایت‌کد میانی کامپایل می‌کند، تا بعد از آن ماشین مجازی آن را اجرا کند. سی‌پایتون با یک کتابخانه استاندارد بزرگ توزیع شده‌است، که به صورت مخلوطی از C و پایتون نوشته شده‌است. سی‌پایتون در ورژن‌های مختلف روی پلتفرم‌های زیادی کار می‌کند، مثل مایکروسافت ویندوز و بیشتر سیستم‌های پیشرفته یونیکس. استفاده و توسعه آن روی پایگاه‌های محرمانه مانند آمیب، در کنار پایگاه‌های متداول مانند یونیکس یا مکینتاش، به‌طور عمده در این نظر کمک شده‌است.

دیگر پیاده‌سازی‌ها

جایتون برنامه نویسی‌های پایتون را به کد بایت جاوا کامپایل می‌کند که بدین ترتیب می‌تواند با هر ماشین مجازی جاوا اجرا شود؛ و همچنین این امکان فراهم می‌شود که توابع کتابخانه‌ای کلاس جاوا از برنامه نویسی پایتون به کار گرفته شود. آی رون پایتون از همین شیوه برای اجرای برنامه نویسی‌های پایتون روی چارچوب دات‌نت استفاده می‌کند.

پای پای یک مفسر سریع پایتون ۲٫۷ و ۳٫۶ است. پای‌پای نوعی کامپایلر درجاست که باعث بیشتر شدن سرعت نسبت به سی‌پایتون می‌شود ولی در عوض از بسیاری از کتابخانه‌ها که به زبان سی نوشته شده‌اند نمی‌توان با آن استفاده کرد.

پایتون بدون پشته ، انشعابی از سی پایتون است که ریز برنامه نویسی‌ها را اجرا می‌کند؛ و از پشته حافظه استفاده نمی‌کند. سی پایتون از قفل مفسر سراسری استفاده می‌کند تا وقتی برنامه نویسی پایتون بدون پشته، وابسته به سیستم عامل است و می‌تواند به صورت هم‌زمان اجرا شود، در هر لحظه فقط به یک زیر برنامه نویسی اجازه اجرا داده شود. پایتون برای استفاده در میکرو کنترلرها یا وظایف محدود دیگر پایگاه‌های مرجع، متناسب تر است. پیش‌بینی می‌شود که پایتون بدون پشته بتواند تقریباً روی همان پایگاهی که سی پایتون اجرا می‌شود، اجرا شود. پای‌پای نیز یک ورژن بدون پشته دارد.

میکرو پایتون و سیرکیوت پایتون پیاده‌سازی پایتون ۳ ای هستند که برای ریزکنترل‌گر‌ها بهینه شده‌اند.

چندین برنامه نویسی در بسته مفسر پایتون با برنامه نویسی‌های کاربردی (یا آغازگر) وجود دارد که مستقلاً اجرا می‌شوند مانند یونیکس، لینوکس، ویندوز، آمیگااواس ۴ یا مک‌اواس ده. بسیاری از کتابخانه‌های سه قسمتی (و حتی بعضی از یک قسمتی‌ها) فقط روی ویندوز، لینوکس، بی‌اس‌دی و مک‌اواس ده موجود هستند.

پیاده‌سازی‌های پشتیبانی نشده

نوکیا در سال ۲۰۰۵ یک مفسر پایتون برای موبایل‌های سری ۶۰ با نام PyS۶۰ تولید کرد که شامل بسیاری از ماژولهای سی پایتون بود و همچنین برخی ماژول‌های اضافه شده برای یکپارچه شدن با سیستم‌عامل. این پروژه به منظور اجرا روی همه پایگاه‌های مختلف S۶۰، به روز نگاه داشته می‌شود.

Psyco یک کامپایل درجا است که کد بایت را به کد ماشین، در زمان اجرا تبدیل می‌کند. کد تولید شده، اختصاصی برای تایپ‌های داده خاصی است و از کدهای استاندارد پایتون سریع تر است.

کامپایلرهای تقابلی به زبان‌های دیگر

چندین کامپایلر به زبان‌های سطح بالای شیء گرا وجود دارد خواه زبان مبدأ پایتون محدود نشده باشد خواه زیر مجموعه‌های محدود شدهٔ آن یا زبان‌های مشابه پایتون باشند:

  • سایتون پایتون را به C و C++‎ کامپایل می‌کند.
  • گرامپی گوگل (آخرین انتشار در سال ۲۰۱۷) پایتون ۲ را به زبان گو کامپایل می‌کند.
  • آیرون پایتون از روش مشابهی استفاده می‌کند تا برنامه نویسیٔ نوشته شده با پایتون را بر NET. زمان اجرای زبان مشترک اجرا کند.
  • جایتون امکان استفاده از کلاس‌ها کتابخانهٔ جاوا را از زبان پایتون فراهم می‌کند.
  • مای اچ‌دی‌ال پایتون را به زبان وی‌اچ‌دی‌ال کامپایل می‌کند.
  • نویتکا پایتون را به C++‎ کامپایل می‌کند.
  • نامبا از ال‌ال‌وی‌ام استفاده می‌کند تا کد پایتون را به کد ماشین کامپایل کند.
  • Pyjs (آخرین انتشار در سال ۲۰۱۲) پایتون را به جاوا اسکریپت کامپایل می‌کند.
  • پایرکس (آخرین انتشار در سال ۲۰۱۰) و شِد اسکین (آخرین انتشار در سال ۲۰۱۳) به ترتیب کد پایتون را به زبان‌های C و C++‎ کامپایل می‌کنند.
  • پایترن کد پایتون را به زبان C++‎ کامپایل می‌کند.
  • آرپایتون می‌تواند به زبان C, کامپایل شود و برای ساختن مفسر پای‌پای پایتون استفاده می‌شود.

کتابخانه استاندارد

پایتون یک کتابخانه استاندارد بزرگ دارد که از آن به عنوان یکی از بزرگ‌ترین توانایی پایتون یاد می‌شود، مشروط به اینکه ابزارهای از پیش نوشته شده، با بسیاری از وظایف سازگار باشد. ماژول‌های کتابخانه استاندارد می‌توانند به شیوه ماژول‌های نوشته شده در سی یا پایتون آرگومان دهی شوند. اخیراً کتابخانه‌های C++‎ به یک کتابخانه به نام Boost.Python رشد یافته‌است، برای ایجاد قابلیت همکاری بین C++‎ و پایتون. به دلیل تنوع گسترده در ابزارهای تولید شده توسط کتابخانه استاندارد، این کتابخانه با توانایی استفاده یک زبان سطح پایین ترکیب شده، مثل C و C++‎ که البته به عنوان واسط بین کتابخانه‌های دیگر است، پایتون می‌تواند یک واسط قوی بین زبان‌ها و ابزارها باشد.

کتابخانهٔ استاندارد با تعداد زیاد فرمت‌ها و پروتکل‌هایی که حمایت می‌کند (مانند ام‌آی‌ام‌ای و اج‌تی‌تی‌پی)، خصوصاً برای نوشتن علائم اینترنت مناسب است. پایتون همچنین ماژول‌هایی برای ایجاد واسط کاربر گرافیکی، اتصال به پایگاه داده رابطه‌ای، تولید اعداد شبه تصادفی، محاسبات با دقت دلخواه اعشاری، دستکاری عبارات با قاعده و آزمایش واحد دارد. بعضی از قسمت‌های کتابخانهٔ استاندارد همراه با توضیحاتی هستند (مثل WSGI wsgiref که پیرو PEP 333 است) اما اکثریت ماژول‌ها این‌گونه نیستند. آن‌ها از طریق کدها، اسناد داخلی، و دنباله تست شان (اگر موجود باشد) تعیین می‌شوند. اگر چه، به دلیل اینکه کد پایتون اکثر کتابخانه‌های استاندارد، چندسکویی است، فقط ماژول‌های اندکی هستند که باید برای پیاده‌سازی‌های دیگر تغییر داده شوند یا مجدّداً نوشته شوند. در نوامبر 2019 (PyPI) مخزن رسمی برای نرم‌افزارهای شخص سوم پایتون بالغ بر ۲۰۰۰۰۰ پکیج دارد. پکیج‌های پایتون در زمینه‌های گوناگونی کاربرد دارند:

  • خودکارسازی
  • آنالیز داده
  • پایگاه داده
  • سند پردازی
  • رابط کاربر گرافیکی
  • پردازش تصویر
  • یادگیری ماشین
  • اپ موبایل
  • چندرسانه‌ای
  • شبکه
  • محاسبهٔ علمی
  • مدیریت سیستم
  • ابزار تست نرم‌افزار ها
  • پردازش متن
  • چارچوب‌های نرم‌افزاری تحت وب
  • تراش دادن داده وب

 

محیط‌های ویرایشگر کد پایتون

بیشتر پیاده‌سازی‌های پایتون (شامل سی پایتون، اولین پیاده‌سازی) می‌توانند مثل یک مفسر خط فرمان عمل کنند، برای زمانی که کاربر رشته شرط را وارد می‌کند و فوراً نتیجه را می‌پذیرد. خلاصه پایتون به عنوان یک برنامه نویسی واسط عمل می‌کند. وقتی صرف دیگر شیوه‌های اجرا (کامپایل کد بایت یا کامپایل کد محلی) به صورت یک رشته صرف ذخیره می‌شود، یک افزایش سرعت در هزینه‌های متقابل به وجود می‌آید، بنابراین آن‌ها معمولاً فقط خارج از مفسر خط فرمان استفاده می‌شوند. (وقتی یک ماژول وارد می‌شود)

برنامه نویسی‌های واسط دیگر، امکانات تحت آن را در مفسر بیسیک افزایش می‌دهند، شامل آی‌دی‌ال‌ئی و آی‌پایتون. وقتی عموماً از برنامه نویسی واسط پایتون پیروی می‌شود، خصوصیاتی مشابه تکمیل خودکار، نگه داشتن زمان اجرای برنامه نویسی و نشان دادن صرف پیاده‌سازی می‌شود.

واسط گرافیکی

برای پایتون واسط گرافیکی کاربرهای بسیاری نوشته شده‌است که پرکاربردترین آن‌ها به شرح زیر است:

  • تیکینتر (به صورت پیش‌فرض همراه با نسخه‌های استاندارد پایتون ارائه می‌شود و یک رابط شیءگرا برای ابزار Tcl/Tk در محیط پایتون فراهم می‌کند)
  • پای‌کیوت
  • پای‌جی‌تی‌کی
  • وکس پایتون
  • اف‌ال‌تی‌کی پای
  • اف‌ایکس پای
  • پای‌اوپن‌جی‌ال

نمونه کد تکینتر

fenster = tk.Tk()
fenster.geometry("200x100")
label = tk.Label(fenster, text="Hallo Welt!")
label.pack()

def befehl():
    fenster.destroy()

button = tk.Button(fenster, text="OK", command=befehl)
button.pack()

نمونه کد ترتل گرافیکس

import turtle
from turtle import speed, reset, goto

speed(0)
reset()
turtle.x = -200
turtle.y = 200

while turtle.y != -200:
    goto(turtle.x, turtle.y)
    turtle.x = - turtle.x
    turtle.y = - turtle.y
    goto(turtle.x, turtle.y)
    goto(0, 0)
    turtle.y = - turtle.y
    turtle.x = - turtle.x
    turtle.y -= 5

کاربرد

از سال ۲۰۰۳ پایتون طبق شاخص تیوبی یکی از ده زبان محبوب برنامه نویسی بوده‌است و در فوریهٔ ۲۰۲۰ سومین زبان برنامه نویسی محبوب (بعد از c و جاوا) بوده‌است. پایتون در سال‌های ۲۰۰۷ ،۲۰۱۰ و ۲۰۱۸ به عنوان زبان برنامه نویسی سال انتخاب شده‌است.

سازمان‌های بزرگی مثل گوگل، یاهو، سرن، فیسبوک، ناسا از پایتون استفاده می‌کنند. ITA نیز از پایتون برای بعضی از اجزای خود استفاده می‌کند. همچنین شبکهٔ اجتماعی ردیت نیز به‌طور کامل در پایتون نوشته شده‌است.

پایتون به عنوان یک زبان اسکریپت نویسی می‌تواند در اپلیکیشن‌های وب استفاده شود مثلاً استفاده از mod_wsgi برای وب سرور آپاچی. چارچوب‌های نرم‌افزاری تحت وب مثل جنگو، پایلونز، توربوگیرز، تورنادو، فلسک، باتل، زوپ به توسعه دهندگان در نگهداری و طراحی اپلیکیشن‌های پیچیده کمک می‌کنند. Pyjs و آیرون پایتون می‌توانند برای توسعهٔ اپلیکیشن‌های ایجکس پایهٔ سمت کلاینت استفاده شوند. از اس‌کیوال الکمی می‌توان در نگاشت داده‌ها بر پایگاه دادهٔ رابطه ای استفاده شود. تویستد یک فرم ورک برای برنامه نویسی ارتباط بین کامپیوترها است مثلاً دراپ باکس از آن استفاده می‌کند.

کتابخانه‌هایی مثل نام‌پای، سای‌پای و مت‌پلات امکان استفادهٔ اثر بخش از پایتون در محاسبهٔ علمی را فراهم می‌آورد همچنین کتابخانه‌های تخصصی بایوپایتون و آستروپای که در حوزهٔ خاصی کارایی دارند. نرم‌افزار ریاضی سیج مث که دارای یک رابط کاربری دفترچه ای به زبان پایتون است: کتابخانهٔ این نرم‌افزار بسیاری از مباحث ریاضی را پوشش می‌دهد. مثل جبر، ترکیبیات، محاسبات عددی، نظریهٔ اعداد و حسابان.

پایتون در نرم‌افزارهای بسیاری به عنوان زبان اسکریپت نویسی استفاده می‌شود نرم‌افزارهایی مثل آباکوس که از روش اجزاء محدود استفاده می‌کند، فری‌کد که اجسام سه بعدی پارامتری را مدل‌سازی می‌کند. بسته‌های انیمیشن سه بعدی مثل تری دی مکس , بلندر , سینما ۴بعدی، لایت‌ویو، هودینی، مایا، مودو , موشن بیلدر، سافت‌ایمیج، نرم‌افزار ایجاد جلوه‌های ویژه مثل نیوک , برنامه نویسیٔ دستکاری تصاویر دو بعدی مثل گیمپ اینک‌اسکیپ، اسکربس و پینت شاپ پرو, نرم‌افزارهای نت نویسی مثل اسکور رایتر و کپلا. گنو دیباگر از پایتون برای پرینت زیبا استفاده می‌کند تا ساختارهای پیچیده مثل C++ کانتینر را نشان دهد. شرکت ازری هم‌اکنون در حال ترقی دادن پایتون به عنوان بهترین انتخاب برای نوشتن فایل آغازگر در آرک جی‌آی‌اس است. همچنین از پایتون در بازی‌های ویدئویی استفاده می‌شود. همچنین پایتون به عنوان اولین زبان از سه زبان گوگل اپ انجین پذیرفته شده‌است دو زبان دیگر زبان‌های جاوا و گو هستند.

از پایتون استفاده وسیعی در صنعت امنیت اطلاعات می‌شود. مثل توسعهٔ اکسپلویت.

پایتون در پروژه‌های هوش مصنوعی و یادگیری ماشینی استفاده می‌شود کتابخانه‌هایی که در این کار استفاده می‌شوند کتابخانه‌هایی مثل تنسورفلو، کرس، پای‌تورچ و سایکیت-لرن هستند. پایتون به عنوان زبان اسکریپت نویسی با معماری ماژولار و نحو ساده و ابزار پردازش متن قوی برای پردازش زبان‌های طبیعی استفاده می‌شود.

 

برنامه نویسی‌هایی که کاملاً یا بخشی از آن‌ها با پایتون نوشته شده‌است

  • اینستاگرام: نرم‌افزار اشتراک‌گذاری تصاویر و ویدیوها
  • بیت‌تورنت (نرم‌افزار): نرم‌افزار کلاینت برای فایل‌های به اشتراک گذاشته شدهٔ همتابه‌همتا توسط پروتکل بیت‌تورنت
  • چندلر: مدیر اطلاعات شخصی شامل تقویم، میل، کارهای روزانه، یادداشت‌ها و…
  • تمدن ۴: یک گیم کامپیوتری بر مبنای پایتون که از boost.python استفاده می‌کند
  • میلمن: یکی از معروفترین نرم‌افزارهای مرتبط با ایمیل
  • کمبیلو: مدیر پایگاه داده و مرورگر بازی‌های گو
  • موین‌موین: یکی از قدرتمندترین و معروفترین ویکی‌های موجود
  • پلون: یک ابزار مدیریتی محتوایی متن باز، قدرتمند و کاربر پسند
  • پورتاژ:قلب توزیع جنتو. یک مدیر بستهای سیستم لینوکس
  • زوپ: یک پلتفرم شیء گرای مبتنی بر وب. زوپ شامل یک سرور نرم‌افزار به همراه پایگاه داده شیء گرا و یک رابط مدیریتی درونی مبتنی بر وب می‌باشد
  • اس‌پی‌ای: یک محیط ویرایشگر کد رایگان، متن باز برای سیستم‌عامل‌های ویندوز، لینوکس، مک که از وکس‌گلید (طراحی رابط کاربر),پای‌چکر بلندر تری‌دی پشتیبانی می‌کند
  • یام: یک برنامه نویسی مدیریت بسته متن‌باز برای توزیع‌های سازگار با آرپی‌ام.
  • آباکوس:نرم‌افزار شبیه‌سازی با روش المان محدود که امکان اسکریپت‌نویسی به زبان پایتون را به کاربر می‌دهد.

what-is-python؟

 

دانلود نگارش های مختلف پایتون

  • مطلبی نیست.


مشاهده بیشتر

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید
بستن
دکمه بازگشت به بالا