انجام پروژه با پایتون

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

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

  • تغییر پرینت چون یک تابع غیرقابل انتقال است نه یک توضیح. این باعث می‌شود که تغییر یک ماژول برای استفاده از یک تابع پرینت متفاوت، آسان باشد و بنابراین ایجاد نحو منظم‌تر می‌شود. در پایتون ۲٫۶ این امکان با تایپ کردنfrom future import print function فراهم شد.

انجام پروژه پایتون

شبیه سازی پروژه با پایتون

آموزش پایتون از صفر

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

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

فلسفهٔ اصلی پایتون در سند ذن پایتون پی‌ئی‌پی ۲۰ خلاصه شده‌است که شامل گزینه‌های زیر است:

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

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

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

شبیه سازی پروژه با پایتون

 

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

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

نام گذاری

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

دستور زبان

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

کدهای پایتون ۲ همراه با برجسته‌سازی نحو دندانه دار نوشتن

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

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

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

  • حکم نسبت‌دهی (توکن ‘=’ , علامت مساوی). که متفاوت با نسبت‌دهی در برنامه‌نویسی دستوری دیگر عمل می‌کند. این سازوکار اولیه، عملکرد بسیاری از ویژگی‌های دیگر را آشکار می‌سازد.

  • حکم if که یک بلوک کد تا رسیدن بهelse و elif(کوتاه شده else-if) را اجرا می‌کند.

  • حکم for که روی یک شیء از نوع تکرار شدنی تکرار می‌شود و هر عضو آن را برای استفاده توسط بلوک مربوط به متغیر محلی می‌دهد.

  • حکم while تا زمانی که شرط برقرار باشد بلوک کد را اجرا می‌کند.

  • حکم try برای استثناها از آن استفاده می‌شود که اجازه می‌دهد بلوک کد همراه با آن با استفاده از except یا finally به کار گرفته شود.

  • حکم raise برای ایجاد استثناها از آن استفاده می‌شود.

  • حکم class که یک بلوک کد را اجرا می‌کند و فضاهای محلی آن را به یک کلاس ملحق می‌کند، برای استفاده در برنامه‌نویسی شیء گرا.

  • حکم def که تابع یا شگرد را تعریف می‌کند.

  • حکم with که یک بلوک کد را به یک مدیر محتوا ضمیمه می‌کند. (به عنوان مثال، اندوختن یک قفل قبل از اجرای بلوک کد و آزاد کردن قفل بعد از اجرا)

  • حکم break برای خروج از نزدیک‌ترین حلقه استفاده می‌شود.

  • حکم continue که برای پریدن از دور جاری و ادامه دادن از دور بعدی در نزدیک‌ترین حلقه استفاده می‌شود.

  • حکم del که برای پاک کردن متغیرها از آن استفاده می‌شود. بدین معنا که مرجع نام به مقدار پاک می‌شود و فراخوانی مقدار موجب خطا می‌شود. متغیر پاک شده می‌تواند دوباره به‌طور معمول نسبت‌دهی شود.

  • حکم pass که به عنوان NOP از آن استفاده می‌شود و از آن برای درست کردن بلوک کد خالی استفاده می‌شود.

  • حکم assert که هنگام دیباگ کردن استفاده می‌شود. شرطی که باید اتفاق بیافتد را بررسی می‌کند.

  • حکم yield که از آن در توابع مولد (جنراتور) به جای return استفاده می‌شود.

  • حکم print که در پایتون ۳ تبدیل به تابع print() شد.

  • حکم import که برای وارد کردن ماژول استفاده می‌شود.

  • حکم return که برای برگرداندن مقداری در تابع استفاده می‌شود.

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

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

عبارت‌ها

  • از پایتون ۳٫۵ عملگر میانوندی @ اضافه شد. هدف از اضافه کردن آن استفاده به عنوان عملگر ضرب ماتریسی توسط کتابخانه‌هایی مثل نام‌پای بوده‌است.از پایتون ۳٫۸ نحو :=، که با نام عملگر والروس شناخته می‌شود، توصیف شد؛ که مقادیر را به متغییرها تخصیص می‌دهد.

  • در پایتون == مقدار را مقایسه می‌کند در مقابل جاوا که برای اعداد مقدار را مقایسه می‌کند ولی برای اشیاء مرجع را مقایسه می‌کند. در پایتون می‌توان مقایسه را به صورت زنجیره ای انجام داد: مثلاً به صورت مقابل a <= b <= c.

  • در پایتون از لغات and, or, not برای عملگر دودویی استفاده می‌شود به جای استفاده از نمادهای &&, ||, ! که در جاوا و سی کاربرد دارند.

  • پایتون نوعی عبارت به نام خلاصه لیست list comprehension دارد که از پایتون ۲٫۴ به عبارت عمومی‌تری به نام جنراتور گسترش یافت.

  • توابع بی‌نام که با به کار بردن عبارت‌های لاندا اجرا می‌شوند. با این وجود محدودیت دارد و تنها یک عبارت می‌تواند باشد.

  • عبارت‌های شرطی که به صورت x if c else y نوشته می‌شوند. (که ترتیب عملوندهای آن با c ? x : y که در بسیاری از زبان‌های دیگر مرسوم است متفاوت است)

  • پایتون بین لیست و تاپل تمایز قائل می‌شود. لیست‌ها به صورت [1, 2, 3] نوشته می‌شوند و تغییرپذیر هستند؛ به همین دلیل نمی‌تواند به عنوان کلید دیکشنری استفاده شود. (کلیدهای دیکشنری باید تغییرناپذیر باشند) تاپل‌ها به صورت (1, 2, 3) نوشته می‌شوند، تغییرناپذیر هستند، تمام اعضای آن نیز باید تغییرناپذیر باشند و می‌تواند به عنوان کلید دیکشنری استفاده شوند. عملگر + می‌تواند برای به هم چسباندن دو تاپل استفاده شود.

متدها

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

سلسله مراتب استاندارد تایپ‌ها در پایتون ۳

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

نوع دهی

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

پایتون به برنامه نویسان اجازه می‌دهد با استفاده از کلاس، نوع‌های دلخواه خودشان را تعریف کنند. نمونه‌های جدید هر کلاس با فراخوانی آن کلاس ساخته می‌شوند؛ مثلاً SpamClass() یا EggsClass() و خود کلاس‌ها نمونه‌هایی از متاکلاس type هستند.

پایتون قبل از نسخهٔ ۳٫۰ دو نوع کلاس داشت یکی شیوهٔ قدیم old-style و دیگری شیوهٔ جدید new-style. نحو هر دو مشابه است تفاوت در این است که کلاس object مستقیماً به ارث برسد یا نه. تمام کلاس‌های شیوهٔ جدید object را به ارث می‌برند و نمونه‌ای از type هستند)

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

تایپ

تغییرپذیری

توصیف

مثال نحو

ellipsis

تغییرناپذیر

ایندکس در آرایه نام‌پای

...

Ellipsis

NoneType

تغییرناپذیر

یک شیء که نشان دهندهٔ وجود نداشتن مقدار است و در زبان‌های دیگر با نام null شناخته می‌شود (اشاره‌گر هیچ‌مقدار)

None

NotImplementedType

تغییرناپذیر

یک مکان نگهدارنده که می‌تواند از طریق اپراتورهای دارای بار اضافی برگردانده شود تا انواع عمل پشتیبانی نشده را نشان دهد.

NotImplemented

bool

تغییرناپذیر

فقط می‌تواند دو مقدار به خود بگیرد: درست(True) یا نادرست(False)

True

False

عدد

int

تغییرناپذیر

عدد صحیح

42

long

تغییرناپذیر

وقتی ذخیره کردن یک عدد صحیح سر ریز داشته باشد، با دقتی نامحدود Long بسط خواهد یافت (تنها در پایتون ۲)

3457876312345678632235674225567773487L

float

تغییرناپذیر

عدد اعشاری

3.1415927

complex

تغییرناپذیر

عدد مختلط با عدد حقیقی و قسمت موهومی

3+2.7j

دنباله

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"

"""Spanning
multiple
lines"""

tuple

تغییرناپذیر

مثل listمنتها تغییرناپذیر

(4.0 ,'string', True)

مجموعه

frozenset

تغییرناپذیر

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

frozenset([4.0, 'string', True])

set

تغییرپذیر

مثل frozenset منتها تغییرپذیر

{4.0 ,'string', True}

نگاشت[x]

dict

تغییرپذیر

گروهی از جفت‌های کلید و مقدار

{'key1': 1.0, 3: False}

نوع‌های قابل فراخوانی[y]

range

تغییرناپذیر

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

range(1, 10)

range(10, -5, -2)

generator

تغییرناپذیر

توابع با سرعت و حجم کمتر از list

(f for f in range(10))

همه کلاس‌ها در …

type

تغییرناپذیر

کلاس‌ها خودشان نمونه‌هایی از کلاس type هستند (خودش یک نمونه از خودش است).

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!')

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

n = int(input('Type a number, and its factorial will be printed: '))

if n < 0:
    raise ValueError('You must enter a non negative integer')

fact = 1

for i in range(2, n + 1):
    fact *= i

print(fact)

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

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

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

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

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

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

تصویری از محیط آی‌دی‌ال‌ئی ویرایشگر کد پیشفرض پایتون در اوبونتو

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

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

واسط گرافیکی

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

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

  • پای‌کیوت

  • پای‌جی‌تی‌کی

  • وکس پایتون

  • اف‌ال‌تی‌کی پای

  • اف‌ایکس پای

  • پای‌اوپن‌جی‌ال

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

import tkinter as 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

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

نتیجهٔ کد بالا

تصاویر کشیده شده با ترتل