
پایتون چیست؟
پایتون یک زبان برنامه نویسی سطح بالا و همه منظوره است که خیدو فان روسوم آن را اولین بار در سال ۱۹۹۱ میلادی طراحی کرده و منتشر کرده است.
پایتون یک زبان برنامه نویسی شیگرا و سطح بالا با معناشناسی پویای یکپارچه شده برای وب و ساخت و توسعه نرمافزارهای کاربردی است. این زبان برنامه نویسی در زمینه توسعه سریع نرمافزارهای کاربردی دارای جذابیت بالایی است زیرا دارای انواع تایپ های پویا است. [wpdiscuz-feedback id=”m0kue555sj” question=”درمورد خیدو فان روسوم نظری داری؟” opened=”0″]خیدو فان روسوم[/wpdiscuz-feedback] طراح این زبان است!
پایتون، زبان برنامه نویسی نسبتا سادهای محسوب میشود که یادگیری آن به دلیل دارا بودن نحو یکتایی که بر قابلیت خوانایی تمرکز و تاکید دارد آسان است. خواندن و ترجمه کدهای نوشته شده به زبان برنامه نویسی پایتون نسبت به دیگر زبانها برای توسعهدهندگان سادهتر محسوب میشود. این موضوع به نوبه خود هزینههای نگهداری و توسعه برنامه نویسیهای نوشته شده به این زبان را کاهش میدهد زیرا امکان همکاری تیمها بدون مواجهه با موانع زبانی و وجود تجربیات کاری متفاوت در میان اعضای تیم را به دست میدهد.
علاوه بر این، پایتون از ماژولها و بستهها استفاده میکند، بدین معنا که برنامه نویسیهای این زبان قابل طراحی به سبک ماژولار هستند و کدهای نوشته شده در یک پروژه در پروژههای گوناگون دیگر نیز قابل استفاده مجدد محسوب میشوند. هنگامی که کاربری ماژول یا بسته مورد نیاز خود را توسعه داد، خودش یا دیگر علاقمندان (در صورتی که کد در اختیار عموم قرار بگیرد) میتوانند آن را برای استفاده در دیگر پروژهها گسترش دهند. ایمپورت و اکسپورت کردن این ماژولها نیز کار آسانی است.
تاریخچه پایتون
پایتون اواخر دهه ۱۹۸۰ میلادی توسط خودو فان روسوم در مؤسسه ملی تحقیقات ریاضی و رایانه در کشور هلند ایجاد شد.
هدف خیدو از ابداع پایتون ایجاد جانشینی برای زبان برنامه نویسی ایبیسی بود که قابلیت پردازش استثناها را داشته باشد. پیادهسازی پایتون در دسامبر ۱۹۸۹ آغاز شد. خَودو طراح اصلی پایتون است و نقش مداوم او در تصمیمگیری پیرامون اهداف پایتون، باعث شد که انجمن پایتون به او لقب دیکتاتور خیرخواه جاویدان را بدهد. فان روسوم تا ۱۲ ژوئیه ۲۰۱۸ مسئولیت رهبری پروژهٔ پایتون را به عهده داشت. در آن زمان او اعلام کرد که از مسئولیت خود به عنوان دیکتاتور خیرخواه جاویدان کنارهگیری میکند. در حال حاضر، او مسئولیت رهبری پروژهٔ پایتون را به یک شورای ۵ نفرهٔ چرخان که خود نیز یکی از اعضای آن است دادهاست.
پایتون ۲٫۰ در ۱۶ اکتبر ۲۰۰۰ با ویژگیهای مهم و جدید بسیاری منتشر شدکه شامل بازیافت حافظه با قابلیت شناسایی دور و پشتیبانی از یونیکد بود.
پایتون ۳٫۰ در ۳ دسامبر ۲۰۰۸ منتشر شد این نسخه بازنویسی عمده ای از نسخهٔ قبل بود که سازگاری عقبرو را شکسته بود. بسیاری از ویژگیهای عمدهٔ آن به پایتون 2.6.x و 2.7.x پیشانتقال داده شدند. نسخههای منتشر شده از پایتون ۳ ابزار 2to3
را دارند که کار ترجمهٔ کد پایتون ۲ به پایتون ۳ را (حداقل تا حدودی) انجام میدهد.
از سال ۲۰۱۵ مقرر شد نسخههای پایتون ۲٫۷ تنها تا سال ۲۰۲۰ پشتیبانی شوند.
فلسفه برنامه نویسی
پایتون یک زبان برنامه نویسی چند پارادایمی است به طوریکه هم شیء گرایی و برنامه نویسی ساختیافته را کاملاً پوشش میدهد و هم بسیاری از خصوصیات پایتون برنامه نویسی جنبه گرا و تابعی (مثل پشتیبانی از فرا برنامه نویسی را پوشش میدهد. پارادایمهای برنامه نویسی دیگر نیز به وسیلهٔ افزونهها پشتیبانی شدهاند. مثل برنامه نویسی منطقی.
پایتون از تایپ پویا و ترکیبی از شمارش مرجع و یک حلقه کشف و بازیافت قسمتهای هدر رفته حافظه برای مدیریت حافظه، استفاده میکند. یک ویژگی مهم پایتون تحلیل نام پویا است که روشها و نام متغیرها را در طول اجرای برنامه نویسی به هم ملحق میکند.
طرح پایتون به پشتیبانی محدود برای برنامه نویسی تابعی به سُنَت زبان لیسپ، ارائه شد. به همین منظور پایتون دارای توابع filter, map, و reduce و بیانهای لیست، دیکشنری، مجموعه و جنراتور است. اگرچه، تشابههای عمدهای بین پایتون و زبان خانواده لیسپ وجود دارد. این کتابخانه دو ماژول دارد ( ایترتولز و فانکتولز ) که ابزارهای تابعی را با اقتباس از هسکل و استاندارد امال پیادهسازی میکند.
فلسفهٔ اصلی پایتون در سند ذن پایتون (PEP 20) خلاصه شدهاست که شامل کلمات زیر است:
ذن پایتون | Zen of Python |
|
|
به جای اینکه تمام عملکرد پایتون در هستهٔ آن متمرکز باشد طوری طراحی شدهاست که به خوبی از افزونهها پشتیبانی کند. این ویژگی پایتون که آن را محبوب کردهاست راهی برای اضافه کردن ای پی آی به نرمافزارهای موجود بودهاست. ایدهٔ فان روسوم از زبانی با هستهٔ کوچک و کتابخانهٔ استاندارد بزرگ با مفسر آسان توسعه پذیر، ریشه در سرخوردگی او از زبان ایبیسی دارد.
پایتون تلاش میکند تا نحو و گرامری سادهتر و جمع و جورتر داشته باشد و به همین دلیل برای روششناسی کد فقط یک انتخاب در مقابل توسعه دهنده قرار میدهد. روش پایتون در مقابل روش پرل (بیش از یک روش برای انجام آن وجود دارد) قرار دارد و فلسفهٔ طراحی آن چنین است «باید یک راه – و ترجیحاً فقط یک راه – آشکار برای انجام آن وجود داشته باشد.».
در فرهنگ پایتون، هوشمندانه توصیف کردن چیزی ستایش بهشمار نمیرود! الکس مارتلی
هدف دیگر طراحی زبان آسان کردن توسعهپذیری است. ماژولهایی که تازه ساخته شدهاند، بهسادگی در 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؟
دانلود نگارش های مختلف پایتون
- مطلبی نیست.