مطالعه گسترش شهری با استفاده از GIS و RS

پایتون یک زبان برنامه نویسی همه منظوره سطح بالا است . فلسفه طراحی پایتون بر خوانایی کد با استفاده قابل توجه از تورفتگی قابل توجه تأکید دارد. هدف رویکرد شی گرا آن، همراه با فرمول زبانی آن، کمک به برنامه نویسان برای نوشتن کدهای واضح و منطقی برای پروژه های کوچک و بزرگ است. [30]

پایتون به صورت پویا تایپ می شود و زباله جمع آوری می شود. از چندین پارادایم برنامه نویسی، از جمله برنامه نویسی ساخت یافته (به طور خاص، رویه ای)، شی گرا و تابعی پشتیبانی می کند. Python اغلب به عنوان یک زبان “درگیر باتری” توصیف می شود، زیرا کتابخانه استاندارد گسترده ای دارد. [31]

Guido van Rossum کار بر روی Python را در اواخر دهه 1980 به عنوان جانشین زبان برنامه نویسی ABC آغاز کرد و اولین بار آن را با نام Python 0.9.0 در سال 1991 منتشر کرد. [32] Python 2.0 در سال 2000 منتشر شد و ویژگی‌های جدیدی مانند سیستم جمع‌آوری زباله با استفاده از درک لیست و شمارش مراجع را معرفی کرد. Python 3.0 در سال 2008 منتشر شد و دارای یک تجدید نظر اساسی در زبان بود که به طور کامل با پخش سازگار نیست و همچنین بسیاری از کدهای Python 2 بدون تغییر روی Python 3 اجرا نمی شوند. پایتون 2 در سال 2020 با نسخه 2.7.18 متوقف شد [33] ]

پایتون همواره یکی از محبوب ترین زبان های برنامه نویسی است. [34] [35] [36] [37] [38]

Guido van Rossum در OSCON 2006

پایتون در اواخر دهه 1980 [39] توسط Guido van Rossum در Centrum Wiskunde and Informatica (CWI) در هلند به عنوان جانشین زبان برنامه نویسی ABC، که از SETL الهام گرفته شده بود، [40] با قابلیت مدیریت استثنا و رابط معرفی شد. سیستم عامل آمیب [10] اجرای آن در دسامبر 1989 آغاز شد. [41] Van Rossum مسئولیت کامل پروژه را به عنوان توسعه‌دهنده اصلی تا 12 ژوئیه 2018 بر عهده گرفت، زمانی که او “مرخصی دائم” خود را از مسئولیت‌های خود به عنوان دیکتاتور خیرخواه پایتون برای زندگی اعلام کرد. عنوانی که توسط جامعه پایتون داده شده است تا نشان دهنده تعهد بلندمدت آن به تصمیم گیرنده اصلی پروژه باشد. [42]در ژانویه 2019، توسعه دهندگان هسته Python یک “شورای راهبری” 5 نفره را برای رهبری پروژه انتخاب کردند. [43] از سال 2021، اعضای فعلی این شورا بری ورشو، برت کانن، کارول ویلینگ، توماس واترز و پابلو گالیندو سالگادو هستند. [44]

Python 2.0 در 16 اکتبر 2000 منتشر شد و چندین ویژگی مهم جدید از جمله جمع‌آوری زباله‌های شناسایی چرخه و پشتیبانی از یونیکد را اضافه کرد. [45]

Python 3.0 در 3 دسامبر 2008 منتشر شد. این یک بازنگری عمده از زبانی بود که کاملاً با عقب سازگار نیست. [46] بسیاری از ویژگی‌های کلیدی آن به سری نسخه‌های Python 2.6.x [47] و 2.7.x پشتیبان‌گیری شدند. نسخه پایتون 3 شامل ابزاری است که به طور خودکار (حداقل تا حدی) کد پایتون 2 را به پایتون 3 ترجمه می کند. [48]2to3

تاریخ پایان عمر پایتون 2.7 ابتدا در سال 2015 تعیین شد، سپس به دلیل نگرانی از اینکه ممکن است حجم زیادی از کدهای موجود به راحتی به پایتون 3 ارسال نشود، به سال 2020 موکول شد. [49] [50] هیچ وصله امنیتی یا پیشرفت دیگری منتشر نخواهد شد. [51] [52] با پایان عمر پایتون 2، فقط پایتون 3.6.x [53] و نسخه های جدیدتر پشتیبانی می شود.

پایتون 3.9.2 و 3.8.8 تسریع شدند [54] زیرا تمام نسخه های پایتون (از جمله 2.7 [55] ) دارای مشکلات امنیتی بودند که منجر به اجرای کد از راه دور بالقوه [56] و مسمومیت کش وب شد. [57]

پایتون یک زبان برنامه نویسی چند پارادایم است. برنامه نویسی شی گرا و برنامه نویسی ساخت یافته به طور کامل پشتیبانی می شوند و بسیاری از ویژگی های آن از برنامه نویسی تابعی و برنامه نویسی جنبه گرا پشتیبانی می کنند (با شامل فرابرنامه نویسی [58] و متا اشیا (روش های جادویی)). [59] چندین پارادایم دیگر از طریق برنامه‌های افزودنی پشتیبانی می‌شوند، از جمله طراحی با قرارداد [60] [61] و برنامه‌نویسی منطقی. [62]

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

طراحی پایتون تا حدودی از برنامه نویسی تابعی در سنت Lisp پشتیبانی می کند. هست و کار می کند. درک، واژه نامه ها، مجموعه ها و عبارات مولد را فهرست کنید. [64] کتابخانه استاندارد متشکل از دو ماژول (itertools و functools) است که ابزارهای کاربردی وام گرفته شده از Haskell و Standard ML را پیاده سازی می کند. [65]filtermapreduce

فلسفه اصلی زبان در سند The Zen of Python ( PEP 20 ) خلاصه شده است که شامل فرمول هایی مانند: [66]

  • زیبا بهتر از زشت است.
  • صریح بهتر از ضمنی است.
  • ساده بهتر از پیچیده است.
  • پیچیده بهتر از پیچیده است.
  • خوانایی مهم است.

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

پایتون برای یک نحو و دستور زبان ساده‌تر و کم‌تر تلاش می‌کند و در عین حال به توسعه‌دهندگان امکان انتخاب در روش کدنویسی خود را می‌دهد. برخلاف پرل “بیش از یک راه برای انجام آن وجود دارد”، پایتون از فلسفه طراحی “باید یک – و ترجیحاً تنها یک – روش واضح برای انجام آن وجود داشته باشد” پذیرفته است. [66] الکس مارتلی، یکی از همکاران بنیاد نرم‌افزار پایتون و نویسنده کتاب پایتون، می‌نویسد که «توصیف چیزی به‌عنوان «هوشمندانه» در فرهنگ پایتون یک تعریف محسوب نمی‌شود . [67]

توسعه‌دهندگان پایتون سعی می‌کنند از بهینه‌سازی زودهنگام اجتناب کنند و وصله‌هایی را برای بخش‌های غیر بحرانی پیاده‌سازی مرجع CPython که باعث افزایش جزئی سرعت در هزینه وضوح می‌شود، مجاز نمی‌دانند. [68] هنگامی که سرعت مهم است، یک برنامه نویس پایتون می تواند توابع حیاتی زمان را به ماژول های افزونه نوشته شده به زبان هایی مانند C منتقل کند یا از PyPy، یک کامپایلر به موقع استفاده کند. Cython نیز موجود است که یک اسکریپت پایتون را به C ترجمه می‌کند و تماس‌های API سطح C را مستقیماً با مفسر پایتون برقرار می‌کند.

هدف مهم توسعه دهندگان پایتون لذت بردن از استفاده از آن است. این در نام زبان – ادای احترام به گروه کمدی بریتانیایی مونتی پایتون [69] – و در رویکرد گاهی اوقات بازیگوش به آموزش ها و مواد مرجع، مانند نمونه هایی از Joe Spam و Eggs (از طرح معروف مونتی پایتون) منعکس شده است. اشاره به غذا و بار استاندارد. [70] [71]

یک نئولوژیسم رایج در جامعه پایتون ، پایتونیک است که می‌تواند طیف وسیعی از معانی مرتبط با سبک برنامه را داشته باشد. گفتن اینکه کد پایتونیک است به این معناست که از اصطلاحات پایتون به خوبی استفاده می‌کند، طبیعی است یا روانی زبان را نشان می‌دهد، که بر فلسفه و خوانایی حداقلی پایتون تأکید می‌کند. برعکس، کدی که درک آن دشوار است یا مانند رونویسی ناخالص از یک زبان برنامه نویسی دیگر خوانده می شود، غیرپایتونیک است. [72] [73]

کاربران و طرفداران پایتون، به ویژه آنهایی که آگاه یا با تجربه در نظر گرفته می شوند، اغلب به عنوان پایتونیست شناخته می شوند. [74] [75]

پایتون به عنوان یک زبان به راحتی قابل خواندن در نظر گرفته می شود. قالب بندی آن به طور قابل توجهی به هم ریخته است و اغلب از کلمات کلیدی انگلیسی در جایی که زبان های دیگر از علائم نگارشی استفاده می کنند استفاده می کند. برخلاف بسیاری از زبان‌های دیگر، از براکت‌های فرفری برای محدود کردن بلوک‌ها استفاده نمی‌کند، و نیم‌ویرگول‌ها بعد از دستورات مجاز هستند، اما به ندرت استفاده می‌شوند. استثناهای نحوی و موارد خاص کمتری نسبت به C یا Pascal دارد. [76]

تورفتگی

پایتون از تورفتگی فضای خالی به جای براکت ها یا کلمات کلیدی برای محدود کردن بلوک ها استفاده می کند. تورفتگی پس از برخی جملات افزایش می یابد. کاهش تورفتگی نشان دهنده پایان بلوک فعلی است. [77] بنابراین، ساختار بصری برنامه به طور دقیق ساختار معنایی برنامه را نشان می دهد. [2] این ویژگی گاهی اوقات قانون آفساید نامیده می‌شود که برخی از زبان‌های دیگر آن را به اشتراک می‌گذارند، اما تورفتگی در بیشتر زبان‌ها معنای معنایی ندارد. اندازه تورفتگی توصیه شده چهار فاصله است. [78]

بیانیه و جریان کنترل

عبارات پایتون شامل (در میان دیگران):

  • بیانیه های تکلیف، با استفاده از یک علامت مساوی =.
  • ifدستور، که بلوکی از کد شرطی، به علاوه elseو elif(انقباض else-if) را اجرا می کند.
  • forدستوری که روی یک شیء تکرارپذیر تکرار می‌شود، هر عنصر را به یک متغیر محلی برای استفاده توسط بلوک محصور می‌گیرد.
  • whileدستوری که یک بلوک کد را تا زمانی که شرط آن درست باشد اجرا می کند.
  • tryعبارت، که اجازه می دهد استثناهای مطرح شده در بلوک کد محصور خود را گرفته و توسط exceptبند مدیریت شود. همچنین تضمین می کند که finallyکد پاکسازی در بلوک، صرف نظر از نحوه خروج بلوک، همیشه اجرا می شود.
  • raiseعبارتی که برای بالا بردن یک استثنا مشخص شده یا برای مطرح کردن مجدد یک استثنای گرفتار استفاده می شود.
  • classدستور، که بلوکی از کد را اجرا می کند و فضای نام محلی آن را برای استفاده در برنامه نویسی شی گرا به یک کلاس برمی گرداند.
  • عبارتی defکه یک تابع یا متد را تعریف می کند.
  • withبیانیه، که یک بلوک کد را در یک مدیریت زمینه محصور می کند (به عنوان مثال، به دست آوردن یک قفل قبل از اجرای بلوک کد و آزاد کردن قفل پس از آن، یا باز کردن یک فایل و سپس بستن آن) اجازه می دهد تا منبع-اکتساب-آغاز-آغاز کردن (RAII) )-مانند رفتار و جایگزین یک اصطلاح رایج try/finally می شود. [79]
  • عبارت break، از یک حلقه خارج می شود.
  • continueراوی این تکرار را نادیده می گیرد و به مورد بعدی ادامه می دهد.
  • delعبارت یک متغیر را حذف می کند، به این معنی که اشاره به نام مقدار از بین می رود و تلاش برای دسترسی به آن متغیر باعث خطا می شود. متغیرهای حذف شده را می توان دوباره اختصاص داد.
  • passبیانیه، که به عنوان یک نه عمل می کند. ایجاد یک بلوک کد خالی نیاز به نحو دارد.
  • assertعبارتی که برای بررسی شرایط اعمال شده در حین اشکال زدایی استفاده می شود.
  • yieldدستور، که مقداری را از یک تابع مولد برمی گرداند و yieldهمچنین یک عملگر است. این فرم برای پیاده سازی کوروتین ها استفاده می شود.
  • returnعبارتی که برای برگرداندن مقداری از یک تابع استفاده می شود.
  • importعبارت، که برای وارد کردن ماژول هایی استفاده می شود که توابع یا متغیرهای آن را می توان در برنامه فعلی استفاده کرد.

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

پایتون از بهینه‌سازی tail call یا ادامه‌های کلاس اول پشتیبانی نمی‌کند و به گفته Guido van Rossum، هرگز پشتیبانی نخواهد کرد. [80] [81] با این حال، پشتیبانی بهتر از عملکرد شبه کوروتین با گسترش مولدهای پایتون ارائه می‌شود. [82] قبل از 2.5، مولدها تکرار کننده تنبل بودند. اطلاعات به طور غیرمستقیم به خارج از ژنراتور منتقل شد. از پایتون 2.5، امکان بازگرداندن اطلاعات به یک تابع مولد وجود دارد، و از پایتون 3.3، اطلاعات را می توان از چندین سطح پشته منتقل کرد. [83]

قیمت

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

  • جمع، تفریق و ضرب یکی هستند، اما رفتار تقسیم متفاوت است. دو نوع تقسیم در پایتون وجود دارد. آنها تقسیم طبقه (یا تقسیم عدد صحیح) //و تقسیم ممیز شناور هستند /[84] پایتون همچنین **از عملگر برای توان استفاده می کند.
  • از پایتون 3.5، @اپراتور جدید infix معرفی شد. در نظر گرفته شده است که توسط کتابخانه هایی مانند NumPy برای ضرب ماتریس استفاده شود. [85] [86]
  • از پایتون 3.8، :=نحوی به نام «اپراتور والروس» معرفی شد. مقادیری را به متغیرها به عنوان بخشی از یک عبارت بزرگتر اختصاص می دهد. [87]
  • ==مقایسه بر اساس مقدار در پایتون ، در مقابل جاوا، که اعداد را با مقدار [88] مقایسه می کند و اشیاء را با مرجع مقایسه می کند. [89]equals() (مقایسه ارزش در اشیا را می توان با روش در جاوا انجام داد.) isعملگرهای پایتون را می توان برای مقایسه هویت اشیاء استفاده کرد (مقایسه با مرجع). به عنوان مثال، مقایسه ها در پایتون را می توان زنجیره ای کرد.a <= b <= c
  • پایتون از کلمات , andornotبرای عملگرهای بولی خود به جای نمادین &&, استفاده ||می !کند که در جاوا و C استفاده می شود.
  • پایتون یک نوع عبارت به نام درک لیست و همچنین یک عبارت عمومی تر به نام عبارت مولد دارد . [64]
  • توابع ناشناس با استفاده از عبارات لامبدا اجرا می شوند. با این حال، اینها از این جهت محدود هستند که بدن فقط می تواند یک بیان باشد.
  • عبارات شرطی در پایتون به صورت [90] نوشته می شود (ترتیب عملوندها با عملگر معمولی در بسیاری از زبان های دیگر متفاوت است).x if c else yc ? x : y
  • پایتون بین لیست ها و تاپل ها تفاوت قائل می شود. لیست ها به صورت نوشته می شوند، قابل تغییر هستند و نمی توان از آنها به عنوان کلید واژه نامه ها استفاده کرد (کلیدهای دیکشنری باید در پایتون تغییر ناپذیر باشند). تاپل ها تغییر ناپذیر هستند و بنابراین می توان از آنها به عنوان کلید واژه نامه ها استفاده کرد، مشروط بر اینکه همه عناصر تاپل تغییر ناپذیر باشند. از عملگر می توان برای به هم پیوستن دو تاپل استفاده کرد که محتوای آنها را مستقیماً تغییر نمی دهد، بلکه یک تاپل جدید حاوی عناصر هر دو تاپل ارائه شده تولید می کند. بنابراین، با توجه به اینکه متغیر در ابتدا برابر است، اولین ارزیابی انجام می‌شود، که نتیجه می‌شود، که پس از آن مجدداً تخصیص داده می‌شود، در نتیجه به طور مؤثر «محتوا را اصلاح می‌کند». در حالی که تاپل با ماهیت تغییرناپذیر اجسام مطابقت دارد. پرانتز برای تاپل ها در زمینه های واضح اختیاری است.[91][1, 2, 3](1, 2, 3)+t(1, 2, 3)t = t + (4, 5)t + (4, 5)(1, 2, 3, 4, 5)tt
  • پایتون ویژگی باز کردن بسته‌بندی دنباله‌ای دارد که در آن عبارات متعدد، هر کدام را می‌توان به هر چیزی ارزیابی کرد (یک متغیر، یک ویژگی قابل نوشتن، و غیره)، که یک تاپل را به شکلی یکنواخت به معنای واقعی کلمه می‌سازد و به‌طور کلی، در سمت چپ برابر قرار می‌گیرد. در بیانیه تکلیف امضا کنید. عبارت انتظار دارد یک شی قابل تکرار در سمت راست علامت مساوی باشد که مقادیر یکسان عبارات قابل نوشتن ارائه شده را هنگام تکرار از طریق و تکرار از طریق ایجاد می کند، هر یک از مقادیر تولید شده در عبارت مربوطه در سمت چپ. مشخص می کند. [92]
  • پایتون یک عملگر “فرمت رشته ای” %دارد. به printfطور مشابه برای قالب بندی رشته ها در C، به عنوان مثال در . در پایتون 3 و 2.6+، این با یک متد کلاس تکمیل شد، به عنوان مثال در . Python 3.6 “f-strings” را اضافه کرد: . [93]"spam=%s eggs=%d" % ("blah", 2)"spam=blah eggs=2"format()str"spam={0} eggs={1}".format("blah", 2)blah = "blah"; eggs = 2; f'spam={blah} eggs={eggs}'
  • رشته ها در پایتون را می توان با “افزودن” (همان عملگر برای اضافه کردن اعداد صحیح و شناور) به هم متصل کرد. به عنوان مثال بازگشت. حتی اگر رشته های شما حاوی اعداد باشد، به جای اعداد صحیح به عنوان رشته اضافه می شوند. به عنوان مثال بازگشت."spam" + "eggs""spameggs""2" + "2""22"
  • انواع مختلفی از لفظ رشته ای در پایتون وجود دارد:

    • رشته ها با گیومه های تک یا دوتایی مشخص می شوند. بر خلاف زبان های پوسته یونیکس، پرل و زبان های تحت تأثیر پرل، علامت های نقل قول تکی و علامت های نقل قول دوگانه به طور مشابه عمل می کنند. هر دو نوع رشته از بک اسلش ( \) به عنوان کاراکتر فرار استفاده می کنند. درون یابی رشته ای در پایتون 3.6 به عنوان “رشته های قالب بندی شده” در دسترس قرار گرفت. [93]
    • رشته های نقل قول سه گانه، که با یک سری از سه نقل قول یک یا دو شروع و پایان می یابد. آنها می توانند چندین خط باشند و مانند مستندات اینجا در Shells، Perl و Ruby کار کنند.
    • انواع رشته های خام با پیشوند رشته تحت اللفظی با یک rنشان داده می شوند. توالی فرار توضیح داده نشده است. بنابراین رشته‌های خام در جاهایی مفید هستند که بک اسلش‌های تحت اللفظی رایج هستند، مانند عبارات منظم و مسیرهای به سبک ویندوز. @“-quoting” را در سی شارپ مقایسه کنید.
  • پایتون دارای عبارات شاخص آرایه و برش آرایه در لیست ها است a[key]که به صورت , یا نمایش داده می شوند. شاخص ها بر اساس صفر هستند و شاخص های منفی نسبت به پایان هستند. برش ها عناصر را از نمایه شروع به نمایه توقف حرکت می دهند، اما آنها را شامل نمی شوند. سومین پارامتر برش، که step یا stride نامیده می شود ، اجازه می دهد تا عناصر را نادیده گرفته و معکوس کنند. فهرست برش را می توان حذف کرد، به عنوان مثال یک کپی از کل لیست را برمی گرداند. هر عنصر یک برش یک کپی کم عمق است.a[start:stop]a[start:stop:step]a[:]

بر خلاف زبان هایی مانند Common Lisp، Scheme یا Ruby، در پایتون، تمایز بین عبارات و عبارات به شدت اعمال می شود. این منجر به تکرار برخی از عملکردها می شود. مثلا:

  • درک لیست در مقابل for-حلقه
  • عبارت شرطی در مقابل ifبلوک
  • eval()در مقابل exec()توابع داخلی (در پایتون 2، execیک عبارت است). اولی برای عبارات است، دومی برای بیانیه ها.

عبارات نمی توانند بخشی از یک عبارت باشند، بنابراین لیست و سایر درک یا عبارات لامبدا، نه همه عبارات، می توانند عبارت باشند. یک مورد خاص این است که یک دستور انتساب مانند این نمی تواند بخشی از بیان شرطی یک دستور شرطی را تشکیل دهد. این مزیت اجتناب از خطای کلاسیک C در اشتباه گرفتن عملگر انتساب با عملگر برابری در شرایط است: کد C از نظر نحوی معتبر است (اما احتمالاً ناخواسته) اما باعث ایجاد یک خطای نحوی در پایتون می شود.a = 1===if (c = 1) { ... }if c = 1: ...

مواد و روش ها

متدهای روی اشیاء توابعی هستند که با کلاس شیء مرتبط هستند. نحو، برای روش ها و توابع عمومی، برای قند نحوی است. بر خلاف برخی دیگر از زبان‌های برنامه‌نویسی شی‌گرا (مانند C++، جاوا، Objective-C یا Ruby)، روش‌های پایتون یک پارامتر صریح برای دسترسی به داده‌های نمونه دارند. [94]instance.method(argument)Class.method(instance, argument)selfselfthis

تایپ کردن

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

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

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

قبل از نسخه 3.0، دو نوع کلاس در پایتون وجود داشت: سبک قدیمی و سبک جدید . [95] هر دو سبک نحو یکسانی دارند، تفاوت در این است که کلاس به objectطور مستقیم یا غیرمستقیم به ارث می‌رسد (همه کلاس‌های سبک جدید ارث می‌برند objectو نمونه‌هایی دارند type). در نسخه های پایتون 2 بعد از پایتون 2.2، می توان از هر دو نوع کلاس استفاده کرد. کلاس های قدیمی در پایتون 3.0 لغو شدند.

برنامه بلندمدت پشتیبانی از تایپ متوالی [96] است و از پایتون 3.5، نحو زبان اجازه می دهد تا انواع استاتیک مشخص شوند، اما در اجرای پیش فرض، CPython، بررسی نمی شوند. یک کنترل کننده نوع استاتیک اختیاری تجربی به نام mypy از بررسی نوع زمان کامپایل پشتیبانی می کند. [97]

خلاصه ای از انواع داخلی پایتون 3
نوع بی ثباتی شرح مثال نحوی
bool تزلزل ناپذیر مقدار بولی True
False
bytearray متغیر دنباله ای از بایت ها bytearray(b'Some ASCII')
bytearray(b"Some ASCII")
bytearray([119, 105, 107, 105])
bytes تزلزل ناپذیر دنباله ای از بایت ها b'Some ASCII'
b"Some ASCII"
bytes([119, 105, 107, 105])
complex تزلزل ناپذیر اعداد مختلط با اجزای واقعی و خیالی 3+2.7j
3 + 2.7j
dict متغیر آرایه انجمنی (یا فرهنگ لغت) از جفت کلید و مقدار. می تواند از نوع ترکیبی (کلید و مقدار) باشد، کلیدها باید از نوع هش شوند {'key1': 1.0, 3: False}
{}
ellipsisآ تزلزل ناپذیر یک مکان نگهدار بیضی برای استفاده به عنوان شاخص در آرایه های NumPy ...
Ellipsis
float تزلزل ناپذیر اعداد ممیز شناور با دقت دو برابر. دقت به ماشین بستگی دارد اما در عمل معمولاً به عنوان یک عدد IEEE 754 64 بیتی با دقت 53 بیت پیاده سازی می شود. [98] 1.414
frozenset تزلزل ناپذیر مجموعه نامرتب، حاوی موارد تکراری نیست. در صورت هش کردن، می تواند انواع ترکیبی داشته باشد frozenset([4.0, 'string', True])
int تزلزل ناپذیر عدد صحیح با قدر نامتناهی [99] 42
list متغیر لیست می تواند از نوع ترکیبی باشد [4.0, 'string', True]
[]
NoneTypeآ تزلزل ناپذیر یک شی نشان دهنده عدم وجود یک مقدار است که اغلب در زبان های دیگر null نامیده می شود None
NotImplementedTypeآ تزلزل ناپذیر یک مکان نگهدار که می تواند از عملگرهای بارگذاری شده بازگردانده شود تا انواع عملوند پشتیبانی نشده را نشان دهد. NotImplemented
range تزلزل ناپذیر دنباله ای از اعداد که معمولاً برای حلقه زدن تعداد مشخصی بار در forحلقه ها استفاده می شود [100] range(1, 10)
range(10, -5, -2)
set متغیر مجموعه نامرتب، حاوی موارد تکراری نیست. در صورت هش کردن، می تواند انواع ترکیبی داشته باشد {4.0, 'string', True}
set()
str تزلزل ناپذیر یک رشته کاراکتر: دنباله ای از نقاط کد یونیکد 'Wikipedia'
"Wikipedia"

""" در چندین خط پخش شده است """
tuple تزلزل ناپذیر می توان مخلوط کرد (4.0, 'string', True)
('single element',)
()

^a مستقیماً با نام قابل دسترسی نیست

عملیات حسابی

پایتون دارای نمادهای مشترک برای عملگرهای حسابی (،،،، +) ، -عملگرهای تقسیم طبقه و عملیات مدول (که در آن باقیمانده می تواند منفی باشد، مانند ). همچنین دارای یکی برای توان، به عنوان مثال و، و یک عملگر ضرب ماتریس است. [101] این عملگرها مانند ریاضیات سنتی کار می کنند. با همان قوانین تقدم، عملگر پسوند (و همچنین می تواند واحد باشد تا به ترتیب اعداد مثبت و منفی را نشان دهد).*///%4 % -3 == -2**5**3 == 1259**0.5 == 3.0@+-

تقسیم بین اعداد صحیح یک نتیجه ممیز شناور ایجاد می کند. رفتار تقسیم بندی در طول زمان به طور قابل توجهی تغییر کرده است: [102]

  • پایتون 2.1 و قبل از آن از رفتار تقسیم C استفاده می کرد. /اگر هر دو عملوند صحیح باشند، تقسیم عملگر عدد صحیح است و در غیر این صورت، تقسیم ممیز شناور است. تقسیم عدد صحیح به 0 می رسد، برای مثال و .7/3 == 2-7/3 == -2
  • پایتون 2.2 تقسیم اعداد صحیح را به دور به بی نهایت منفی تغییر داد، همانطور که 7/3 == 2در -7/3 == -3//اپراتور تقسیم طبقه معرفی شد. بنابراین 7//3 == 2، -7//3 == -3، 7.5//3 == 2.0و -7.5//3 == -3.0. افزودن یک ماژول از قوانین Python 3.0 برای تقسیم استفاده می کند (بعدی را ببینید).from __future__ import division
  • پایتون 3.0 /همیشه به تقسیم ممیز شناور مانند .5/2 == 2.5

در اصطلاح پایتون، /تقسیم واقعی (یا به سادگی تقسیم ) است و //تقسیم طبقه است. /قبل از نسخه 3.0 بخش کلاسیک است . [102]

حرکت به سمت بی‌نهایت منفی، علیرغم متفاوت بودن با بیشتر زبان‌ها، تداوم می‌افزاید. به عنوان مثال، این بدان معنی است که معادله همیشه درست است. این همچنین به این معنی است که معادله برای مقادیر مثبت و منفی معتبر است. با این حال، حفظ اعتبار این معادله به این معنی است که، همانطور که انتظار می‌رود، نتیجه در بازه نیمه باز [0, b ) ایجاد می‌شود، در جایی که a یک عدد صحیح مثبت است، باید در بازه ( b ، 0] در صورت منفی باشد. [103] . ](a + b)//b == a//b + 1b*(a//b) + a%b == aaa%bbb

roundپایتون تابعی را برای گرد کردن یک شناور به نزدیکترین عدد صحیح ارائه می دهد. برای شکستن کراوات، پایتون از 3 استفاده می کند تا زوج : را گرد کند و هر دو را تولید کند. [104] نسخه های قبل از 3 دور-از-صفر: is , is . [105]round(1.5)round(2.5)2round(0.5)1.0round(-0.5)−1.0

پایتون به عبارات بولی با روابط هم ارزی چندگانه اجازه می دهد که با استفاده رایج در ریاضیات سازگار است. به عنوان مثال، عبارت a < b < cآزمایش aمی کند که آیا is کمتر bو bکمتر از c[106] زبان‌های مشتق‌شده از C این عبارت را به‌طور متفاوتی تفسیر می‌کنند: در C، عبارت ابتدا ارزیابی a < bمی‌شود که به 0 یا 1 می‌رسد و سپس آن نتیجه با c[107]

پایتون از محاسبات با دقت دلخواه برای تمام عملیات اعداد صحیح استفاده می کند. Decimalماژول مرتب‌سازی/در کلاس decimal، اعداد ممیز شناور اعشاری را به یک دقت دلخواه از پیش تعیین‌شده و حالت‌های گرد چندگانه ارائه می‌کند. [108]Fraction ماژول in class fractionsدقت دلخواه را برای اعداد گویا فراهم می کند. [109]

با توجه به کتابخانه ریاضی گسترده پایتون و کتابخانه شخص ثالث NumPy، که قابلیت های بومی را بیشتر می کند، اغلب به عنوان یک زبان برنامه نویسی علمی برای کمک به مشکلاتی مانند پردازش و دستکاری داده های عددی استفاده می شود. [110] [111]

برنامه سلام جهان:

چاپ ( "سلام، دنیا!" )

برنامه محاسبه فاکتوریل یک عدد صحیح مثبت:

n  =  int ( ورودی ( 'عددی را تایپ کنید و فاکتوریل آن چاپ خواهد شد:' )) اگر  n  <  0 :  raise ValueError ( 'شما باید یک عدد صحیح غیر منفی وارد کنید' )  برای فاکتوریل =  1 i در محدوده ( 2 , n + 1 ) : فاکتوریل * = i print ( فاکتوریل )         

کتابخانه استاندارد گسترده پایتون، که معمولاً به عنوان یکی از بزرگترین نقاط قوت آن ذکر می شود، [112] ابزارهای مناسب برای بسیاری از وظایف را فراهم می کند. برای برنامه های متصل به اینترنت، چندین فرمت و پروتکل استاندارد مانند MIME و HTTP پشتیبانی می شوند. این شامل ماژول هایی برای ایجاد رابط های کاربر گرافیکی، اتصال به پایگاه های داده رابطه ای، تولید اعداد شبه تصادفی، محاسبات با اعشار با دقت دلخواه، [113] دستکاری عبارات منظم، و آزمایش واحد است.

برخی از بخش‌های کتابخانه استاندارد با مشخصات پوشش داده می‌شوند (به عنوان مثال، اجرای رابط دروازه سرور وب (WSGI) از wsgirefPEP 333 [114] پیروی می‌کند)، اما اکثر ماژول‌ها اینطور نیستند. آنها با کد، اسناد داخلی و مجموعه آزمایشی آنها مشخص می شوند. با این حال، از آنجایی که اکثر کتابخانه‌های استاندارد کد پایتون چند پلتفرمی هستند، تنها چند ماژول برای پیاده‌سازی‌های مختلف نیاز به تغییر یا بازنویسی دارند.

از مارس 2021، فهرست بسته پایتون (PyPI)، مخزن رسمی نرم افزار شخص ثالث پایتون، حاوی بیش از 290000 بسته [115] با طیف وسیعی از عملکردها، از جمله:

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

اکثر پیاده‌سازی‌های پایتون (از جمله CPython) شامل یک حلقه خواندن-ارزیابی-چاپ (REPL) هستند که به آنها اجازه می‌دهد به عنوان یک مفسر خط فرمان عمل کنند که کاربر را ملزم می‌کند تا به‌طور متوالی عبارات را وارد کند و نتایج را بلافاصله دریافت کند.

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

علاوه بر محیط توسعه یکپارچه دسکتاپ استاندارد، IDEهای مبتنی بر مرورگر وب نیز وجود دارد. SageMath (با هدف توسعه برنامه های پایتون مرتبط با علوم و ریاضیات)؛ PythonAnywhere، یک IDE مبتنی بر مرورگر و محیط میزبانی. و Canopy IDE، یک IDE تجاری پایتون با تاکید بر محاسبات علمی. [116]

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

CPython پیاده سازی مرجع پایتون است. به زبان C نوشته شده است و استاندارد C89 را با تعدادی از ویژگی‌های منتخب C99 برآورده می‌کند (در نسخه‌های بعدی C، قدیمی در نظر گرفته می‌شود؛ [117] [118] CPython شامل پسوندهای C خود است، اما برنامه‌های افزودنی شخص ثالث محدود به برای مثال، نسخه‌های قدیمی‌تر C. را می‌توان با C11 یا C++ [119] پیاده‌سازی کرد. [120] برنامه های پایتون را در یک بایت کد میانی [121] کامپایل می کند که سپس توسط ماشین مجازی آن اجرا می شود. [122]CPython با یک کتابخانه استاندارد بزرگ که در ترکیبی از C و Python بومی نوشته شده است توزیع شده است. برای بسیاری از پلتفرم‌ها، از جمله ویندوز (شروع با پایتون 3.9، نصب کننده پایتون عمداً روی ویندوز 7 و 8 نصب نمی‌شود؛ [123] [124] ویندوز XP تا پایتون 3.5 پشتیبانی می‌شد) و اکثر سیستم‌های مدرن یونیکس مانند در دسترس است. از جمله macOS (و Apple M1 Mac با نصب‌کننده‌های آزمایشی از Python 3.9.1) و پشتیبانی غیر رسمی مانند VMS. [125] قابلیت حمل پلت فرم یکی از اولویت های اولیه آن بود، [126] در طول جدول زمانی پایتون 1 و 2، حتی OS/2 و Solaris نیز پشتیبانی می شدند. [127] پشتیبانی از بسیاری از سیستم عامل ها از آن زمان حذف شده است.

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

  • PyPy یک مفسر سریع و سازگار Python 2.7 و 3.6 است. [128] کامپایلر به‌موقع آن نسبت به CPython بهبود قابل توجهی را در سرعت به ارمغان می‌آورد، اما بسیاری از کتابخانه‌های نوشته شده به زبان C را نمی‌توان با آن استفاده کرد. [129]
  • پایتون Stackless یکی از فورک های مهم CPython است که microthread ها را پیاده سازی می کند. از پشته تماس به روشی مشابه استفاده نمی کند، بنابراین به برنامه های همزمان اجازه می دهد. همچنین یک نسخه بدون پشته از PyPy وجود دارد. [130]
  • MicroPython و CircuitPython انواعی هستند که برای میکروکنترلرهای Python 3 از جمله Lego Mindstorms EV3 بهینه شده اند. [131]
  • پایتون گونه ای از زمان اجرا پایتون است که از کامپایل به موقع برای سرعت بخشیدن به اجرای برنامه های پایتون استفاده می کند. [132]
  • Cinder یک فورک عملکرد محور از CPython 3.8 است که شامل تعدادی بهینه‌سازی، از جمله ذخیره‌سازی درونی بایت کد، ارزیابی مشتاقانه برنامه‌های مشترک، یک روش در یک زمان JIT و یک کامپایلر آزمایشی بایت کد است. [133]

اجرای پشتیبانی نشده

سایر کامپایلرهای پایتون به موقع توسعه یافته اند، اما اکنون پشتیبانی نمی شوند:

  • گوگل در سال 2009 پروژه‌ای به نام Unladen Swallow را آغاز کرد که هدف آن این بود که مفسر پایتون را با استفاده از LLVM تا پنج برابر سریع‌تر کند و قابلیت چند رشته‌ای آن را برای مقیاس‌بندی به هزاران هسته، [134] در حالی که مفسرهای رایج جهانی را پیاده‌سازی می‌کرد. قفل شده بود. ،
  • Psyco یک کامپایلر تخصصی بسته به‌موقع است که با CPython ادغام می‌شود و بایت کد را در زمان اجرا به کد ماشین تبدیل می‌کند. کد منتشر شده مخصوص انواع داده های خاص است و سریعتر از کد استاندارد پایتون است. Psyco از Python 2.7 یا بالاتر پشتیبانی نمی کند.
  • PyS60 یک مترجم پایتون 2 برای تلفن های همراه سری 60 بود که توسط نوکیا در سال 2005 منتشر شد. چندین ماژول از کتابخانه استاندارد و چند ماژول اضافی را برای ادغام با سیستم عامل سیمبین پیاده سازی کرد. نوکیا N900 همچنین از پایتون به همراه کتابخانه ویجت GTK پشتیبانی می کند و به برنامه ها اجازه می دهد تا روی دستگاه مورد نظر نوشته و اجرا شوند. [135]

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

چندین کامپایلر برای زبان های شی سطح بالا وجود دارد، یا پایتون نامحدود، زیرمجموعه ای محدود از پایتون، یا زبانی شبیه پایتون به عنوان زبان مبدأ:

  • Cython از Python 2.7 به C (یک ابرمجموعه) کامپایل می شود (در حالی که کد به دست آمده برای مثال با Python 3 و C++ نیز قابل استفاده است).
  • Nuitka پایتون را در C++ کامپایل می کند. [136]
  • پایتون از پایتون 3 به بعد در زیر مجموعه ای از C++ کامپایل می شود. [137] [138] [139 ]
  • Pyrex (آخرین نسخه در سال 2010) و Shade Skin (آخرین نسخه در سال 2013) به ترتیب در C و C ++ گردآوری شده اند.
  • Grumpy گوگل (آخرین نسخه در سال 2017) پایتون 2 را به Go منتقل می کند. [140] [141] [142]
  • IronPython (اکنون توسط مایکروسافت رها شده است) به برنامه های Python 2.7 اجازه می دهد تا در زمان اجرا زبان مشترک دات نت اجرا شوند. [143]
  • Jython Python 2.7 را در بایت کد جاوا کامپایل می کند و به کتابخانه های جاوا اجازه می دهد از برنامه های پایتون استفاده شوند. [144]
  • MyHDL یک زبان توصیف سخت افزار مبتنی بر پایتون (HDL) است که کد MyHDL را به کد Verilog یا VHDL تبدیل می کند.
  • Numba از LLVM برای کامپایل زیر مجموعه ای از پایتون به کد ماشین استفاده می کند.
  • برایتون، [145] رونوشت [146] [147] و PyJ (آخرین نسخه در سال 2012) پایتون را به جاوا اسکریپت کامپایل می کنند.
  • RPython را می توان به C کامپایل کرد و برای ساخت مفسر PyPy پایتون استفاده می شود.

نمایش دادن

مقایسه عملکرد پیاده سازی های مختلف پایتون در بارهای کاری غیر عددی (ترکیبی) در EuroSciPy ’13 ارائه شد. [148] عملکرد پایتون در مقایسه با سایر زبان های برنامه نویسی توسط The Computer Language Benchmark Game محک زده شده است. [149]

توسعه پایتون تا حد زیادی از طریق فرآیند پیشنهاد ارتقای پایتون (PEP) انجام می‌شود، که مکانیزم اولیه برای پیشنهاد ویژگی‌های جدید اصلی، جمع‌آوری اطلاعات جامعه در مورد مسائل، و مستندسازی تصمیمات طراحی پایتون است. [150] سبک کدنویسی پایتون در PEP 8 گنجانده شده است. [151] PEP های عالی توسط انجمن و شورای حاکم پایتون بررسی و نظر داده می شوند. [150]

رشد زبان همزمان با توسعه پیاده سازی مرجع CPython است. لیست پستی پلتفرم اولیه برای توسعه زبان پایتون-dev است. مسائل خاص در ردیاب اشکال Roundup که در bugs.python.org میزبانی شده است مورد بحث قرار می گیرد. [152] توسعه در یک مخزن کد منبع خود میزبانی انجام شد که در اصل Mercurial را اجرا می کرد، تا اینکه پایتون در ژانویه 2017 به GitHub منتقل شد. [153]

نسخه‌های عمومی CPython در سه نوع عرضه می‌شوند که در قسمتی از تعداد نسخه افزایش یافته است:

  • نسخه های ناسازگار با عقب، که انتظار می رود کد شکسته شود و باید به صورت دستی منتقل شود. قسمت اول شماره نسخه افزایش می یابد. این نسخه‌ها نادر هستند—نسخه 3.0 8 سال پس از نسخه 2.0 منتشر شد.
  • انتشارهای اصلی یا «ویژگی» تقریباً هر 18 ماه یکبار اتفاق می‌افتد، اما انتظار می‌رود که یک بار در سال با شروع پایتون 3.9، با پذیرش آهنگ انتشار سالانه، انجام شود. [154] [155] آنها تا حد زیادی سازگار هستند اما ویژگی های جدیدی را معرفی می کنند. قسمت دوم شماره نسخه افزایش یافته است. هر نسخه اصلی چندین سال پس از انتشار توسط رفع اشکال پشتیبانی می شود. [156]
  • نسخه‌های رفع اشکال، [157] که هیچ ویژگی جدیدی معرفی نمی‌کنند، تقریباً هر 3 ماه یکبار اتفاق می‌افتند و زمانی ایجاد می‌شوند که تعداد کافی از باگ‌ها در بالادست از نسخه قبلی رفع شده باشند. آسیب پذیری های امنیتی نیز در این نسخه ها اصلاح شده است. قسمت سوم و آخر شماره نسخه بزرگ شده است. [157]

چندین کاندید آلفا، بتا و انتشار نیز به عنوان پیش نمایش و برای آزمایش قبل از انتشار نهایی منتشر می شوند. اگرچه برای هر نسخه برنامه زمانی مشخصی وجود دارد، اما اغلب زمانی که کد آماده نیست به تعویق می‌افتد. تیم توسعه پایتون با اجرای مجموعه‌های تست واحد بزرگ، وضعیت کد را در طول توسعه نظارت می‌کند. [158]

کنفرانس آکادمیک اصلی پایتون PyCon است. همچنین برنامه های مشاوره تخصصی پایتون مانند PyLease وجود دارد.

Python 3.10 wstr (در پایتون 3.12 حذف می‌شود؛ به این معنی که پسوندهای پایتون [159] باید تا آن زمان اصلاح شوند)، [160] و برنامه‌هایی برای افزودن تطبیق الگو به زبان وجود دارد. [161]

ابزارهایی که می‌توانند برای APIهای پایتون مستندسازی کنند عبارتند از pydoc (در دسترس به عنوان بخشی از کتابخانه استاندارد)، Sphinx، Pdoc و فورک‌های آن، Doxygen و Graphviz و غیره. [162]

پایتون نام خود را از گروه کمدی بریتانیایی مونتی پایتون گرفته است که خالق پایتون، گیدو ون روسوم، هنگام توسعه زبان از آن لذت برد. مراجع مونتی پایتون اغلب در کد و فرهنگ پایتون ظاهر می شوند. [163] برای مثال، متغیرهای متا نحوی که اغلب در ادبیات پایتون استفاده می‌شوند، هرزنامه و تخم‌مرغ هستند، به جای foo and bar سنتی. [163] [164] اسناد رسمی پایتون همچنین شامل ارجاعات مختلفی به روال‌های مونتی پایتون است. [165] [166]

پیشوند Py- برای نشان دادن اینکه چیزی به پایتون مرتبط است استفاده می شود. نمونه هایی از استفاده از این پیشوند در نام برنامه ها یا کتابخانه های پایتون عبارتند از Pygame که SDL را به پایتون متصل می کند (که معمولاً برای ساخت بازی استفاده می شود). PyQt و PyGTK که به ترتیب Qt و GTK را به پایتون متصل می کنند. و PyPy، یک پیاده سازی پایتون که به صورت بومی در پایتون نوشته شده است.

از سال 2003، پایتون به طور مداوم در میان ده زبان برنامه نویسی محبوب در فهرست انجمن برنامه نویسی TIOBE قرار گرفته است، جایی که از فوریه 2021 ، سومین زبان محبوب (پس از جاوا و C) است. [167] در سال‌های 2007، 2010، 2018 و 2020 به عنوان زبان برنامه‌نویسی سال (برای “بالاترین افزایش رتبه در یک سال”) انتخاب شد (تنها زبانی که این کار را چهار بار انجام داده است [168] ). [169]

یک مطالعه تجربی نشان داد که زبان‌های اسکریپت‌نویسی، مانند پایتون، برای مشکلات برنامه‌نویسی شامل دستکاری رشته‌ها و جستجو در فرهنگ لغت نسبت به زبان‌های سنتی، مانند C و جاوا، کارآمدتر هستند و مشخص شد که مصرف حافظه اغلب «بهتر از جاوا و بدون بدتر از C یا C++». [170]

سازمان‌های بزرگی که از پایتون استفاده می‌کنند شامل ویکی‌پدیا، گوگل، [171] Yahoo! ، [172] سرن، [173] ناسا، [174] فیس بوک، [175] آمازون، اینستاگرام، [176] Spotify [177] و برخی از سازمان های کوچکتر مانند ILM [178] و ITA. [179] سایت شبکه خبری اجتماعی ردیت بیشتر به زبان پایتون نوشته شده بود. [180]

پایتون می تواند به عنوان یک زبان برنامه نویسی برای برنامه های کاربردی وب، به عنوان مثال، برای سرورهای وب آپاچی از طریق mod wsgi عمل کند. [181] با رابط دروازه سرور وب، یک API استاندارد برای تسهیل این برنامه ها توسعه یافته است. چارچوب های وب مانند جنگو، Pylons، Pyramid، TurboGears، web2py، Tornado، Flask، Flask و Zope از توسعه دهندگان در طراحی و نگهداری برنامه های کاربردی پیچیده پشتیبانی می کنند. Pyjs و IronPython را می توان برای توسعه برنامه های کاربردی مبتنی بر Ajax در سمت مشتری استفاده کرد. SQLAlchemy را می توان به عنوان نگاشت داده در پایگاه داده های رابطه ای استفاده کرد. Twisted چارچوبی برای برنامه‌ریزی ارتباط بین رایانه‌ها است و (به عنوان مثال) Dropbox از آن استفاده می‌کند.

کتابخانه‌هایی مانند NumPy، SciPy و Matplotlib امکان استفاده مؤثر از Python را در محاسبات علمی فراهم می‌کنند، [182] [183] ​​با کتابخانه‌های تخصصی مانند BioPython و AstroPy که عملکردهای دامنه خاص را ارائه می‌دهند. SageMath یک سیستم جبر کامپیوتری با رابط نوت بوک قابل برنامه ریزی در پایتون است: کتابخانه آن بسیاری از جنبه های ریاضیات از جمله جبر، ترکیبات، ریاضیات عددی، نظریه اعداد و حساب دیفرانسیل و انتگرال را پوشش می دهد. [184] OpenCV دارای اتصالات پایتون برای بینایی کامپیوتری و پردازش تصویر با مجموعه ای غنی از ویژگی ها است. [185]

پایتون معمولاً در پروژه‌های هوش مصنوعی و پروژه‌های یادگیری ماشین با کمک کتابخانه‌هایی مانند TensorFlow، Keras، Pytorch و یادگیری Scikit استفاده می‌شود. [186] [187] [188] [189] پایتون به عنوان یک زبان برنامه نویسی با معماری مدولار، نحو ساده و ابزارهای پردازش متن غنی، اغلب برای پردازش زبان طبیعی استفاده می شود. [190]

پایتون با موفقیت به عنوان یک زبان برنامه نویسی در بسیاری از محصولات نرم افزاری جاسازی شده است، از جمله نرم افزارهای روش اجزای محدود مانند Abaqus، مدل ساز پارامتری سه بعدی مانند FreeCAD، بسته های انیمیشن سه بعدی مانند 3DS Max، Blender، Cinema 4D، Lightwave، Houdini، Maya، modo، MotionBuilder، Softimage، Visual Effects Compositor Nuke، برنامه‌های تصویربرداری دوبعدی مانند GIMP، [191] Inkscape، Scribus و Paint Shop Pro، [192] و برنامه‌های نت‌نویسی موسیقی مانند Scorewriter و Capella. دیباگر گنو از پایتون به عنوان یک چاپگر زیبا برای نشان دادن ساختارهای پیچیده مانند ظروف ++C استفاده می کند. Esri پایتون را به عنوان بهترین گزینه برای نوشتن اسکریپت در ArcGIS تبلیغ می کند. [193] همچنین در چندین بازی ویدیویی استفاده شده است، [194]195 ] و به عنوان اولین زبان از سه زبان برنامه نویسی موجود در Google App Engine، دو زبان دیگر جاوا و Go پذیرفته شده است. [196]

پایتون به عنوان یک جزء استاندارد در بسیاری از سیستم عامل ها گنجانده شده است. این سیستم با اکثر توزیع‌های لینوکس عرضه می‌شود، [197] AmigaOS 4 (با استفاده از Python 2.7)، FreeBSD (به عنوان یک بسته)، NetBSD، OpenBSD (به عنوان یک بسته) و macOS و خط فرمان (ترمینال) می‌تواند از آن استفاده شود. بسیاری از توزیع‌های لینوکس از نصب‌کننده‌های نوشته شده در پایتون استفاده می‌کنند: اوبونتو از نصب‌کننده Ubiquity استفاده می‌کند، در حالی که Red Hat Linux و Fedora از نصب‌کننده Anaconda استفاده می‌کنند. جنتو لینوکس از Python در سیستم مدیریت بسته خود یعنی Portage استفاده می کند.

پایتون به طور گسترده در صنعت امنیت اطلاعات از جمله توسعه اکسپلویت استفاده می شود. [198] [199]

بیشتر نرم افزار Sugar برای One Laptop Per Child XO که اکنون در Sugar Labs توسعه یافته است، به زبان Python نوشته شده است. [200] پروژه کامپیوتری تک برد Raspberry Pi پایتون را به عنوان زبان برنامه نویسی کاربر اصلی خود پذیرفت.

LibreOffice شامل پایتون است و قصد دارد جاوا را با پایتون جایگزین کند. ارائه‌دهنده برنامه‌نویسی پایتون آن یک ویژگی اصلی [201] از نسخه 4.0 از 7 فوریه 2013 است.

طراحی و فلسفه پایتون بر بسیاری از زبان های برنامه نویسی دیگر تأثیر گذاشته است:

  • Boo از تورفتگی، یک نحو مشابه و یک مدل شی مشابه استفاده می کند. [202]
  • Cobra از تورفتگی و نحو مشابه استفاده می کند و سند تأیید آن پایتون را به عنوان اولین زبانی که بر آن تأثیر گذاشته است فهرست می کند. [203]
  • CoffeeScript، یک زبان برنامه نویسی که جاوا اسکریپت را به صورت متقابل کامپایل می کند، دارای نحو الهام گرفته شده از پایتون است.
  • ECMAScript/JavaScript Iterators و Generators را از Python قرض گرفته است. [204]
  • GDScript، یک زبان برنامه نویسی تا حد زیادی شبیه پایتون، در موتور بازی گودو تعبیه شده است. [205]
  • Go برای “سرعت کار در یک زبان پویا مانند Python” طراحی شده است [206] و برای برش آرایه ها، نحو مشابهی دارد.
  • گرووی از تمایل به آوردن فلسفه طراحی پایتون به جاوا الهام گرفت. [207]
  • جولیا به گونه ای طراحی شده بود که «به اندازه پایتون برای برنامه نویسی عمومی قابل استفاده باشد». [26]
  • Nim از تورفتگی و نحو مشابه استفاده می کند. [208]
  • خالق روبی، یوکیهیرو ماتسوموتو، گفته است: “من یک زبان برنامه نویسی می خواستم که قوی تر از Perl و شی گراتر از پایتون باشد. بنابراین تصمیم گرفتم زبان خودم را طراحی کنم.” [209]
  • Swift، یک زبان برنامه نویسی که توسط اپل توسعه یافته است، دارای نحوی الهام گرفته از پایتون است. [210]

شیوه های توسعه پایتون توسط زبان های دیگر نیز تقلید شده است. به عنوان مثال، تمرین نیاز به سندی برای توصیف مسائل پیرامون و توجیه تغییرات زبان (در پایتون، یک PEP) در Tcl، [211] Erlang، [212] و Swift نیز استفاده می‌شود. [213]

  • نحو و معناشناسی پایتون
  • پیپ (مدیر بسته)
  • برنامه نویسی دیفرانسیل

  1. ↑ «سؤالات متداول عمومی پایتون – اسناد پایتون 3.9.2». docs.python.org . بازبینی شده در 28 مارس 2021 .
  2. ↑ A B Guttag، John V. (12 اوت 2016). مقدمه‌ای بر محاسبات و برنامه‌نویسی با استفاده از پایتون: با کاربردهایی برای درک داده‌ها . مطبوعات MIT. isbn  978-0-262-52962-4،
  3. ^ a b “Python 3.8.10، 3.9.5 و 3.10.0b1 اکنون در دسترس هستند”. 3 مه 2021 بازبینی شده در 4 مه 2021 .
  4. ↑ «چرا پایتون یک زبان پویا و یک زبان قوی تایپ شده است – پایتون ویکی». wiki.python.org بازبینی شده در 27 ژانویه 2021 .
  5. ↑ “PEP 483 – نظریه نکات نوع”. python.org _
  6. ↑ «دانلود پایتون». python.org بازبینی شده در 24 مه 2021 .
  7. ^ پسوند فایل .pyo در پایتون 3.5 حذف شد. PEP 0488 را ببینید
  8. ↑ هولث، مور (30 مارس 2014). “PEP 0441 – بهبود پشتیبانی از برنامه زیپ پایتون” بازبینی شده در 12 نوامبر 2015 .
  9. ↑ «زبان استارلارک» بازبینی شده در 25 مه 2019 .
  10. ^ a b “چرا پایتون در وهله اول ایجاد شد؟” ، سوالات متداول پایتون بنیاد نرم افزار پایتون بازیابی شده در 22 مارس 2007 .
  11. ↑ «دستورالعمل مرجع ADA 83 (توسعه بیانیه)».
  12. ↑ کوچلینگ، اندرو ام. (22 دسامبر 2006). “مصاحبه با گیدو ون روسوم (ژوئیه 1998)”. AMK.CA. _ بایگانی شده از نسخه اصلی در 1 مه 2007 بازیابی شده در 12 مارس 2012 .
  13. ^ A B “itertools – توابعی که یک تکرار کننده برای حلقه کارآمد ایجاد می کنند – Python 3.7.1 Documentation”. docs.python.org .
  14. ↑ ون روسوم، گیدو (1993). “معرفی پایتون برای برنامه نویسان یونیکس/سی”. مجموعه مقالات NLUUG Najaarsconferentie (گروه کاربر یونیکس هلندی) . SiteSeerX   10.1.1.38.22023 . حتی اگر طراحی C از ایده آل فاصله زیادی دارد، تأثیر آن بر پایتون قابل توجه است. 
  15. ^ a b “کلاس ها”. آموزش پایتون . بنیاد نرم افزار پایتون بازبینی شده در 20 فوریه 2012 . این C++ و Modula-3 است. سیستم کلاس موجود در ترکیبی از 
  16. لوند، فردریک. “تماس با شی”. effbot.org بازبینی شده در 21 نوامبر 2017 . “CLU” را با “Python”، “Record” را با “instance” و “Procedure” را با “function or Method” جایگزین کنید، و توضیح بسیار دقیقی از مدل شی پایتون دریافت خواهید کرد. 
  17. سیمیوناتو، میشل. “Python 2.3 Method Resolution Order”. بنیاد نرم افزار پایتون روش C3 هیچ ارتباطی با پایتون ندارد، زیرا توسط افرادی که روی Dylan کار می‌کنند اختراع شده است و در مقاله‌ای برای Lispers توضیح داده شده است. 
  18. ↑ Kuchling، AM “Functional Programming Howto”. مستندات پایتون نسخه 2.7.2 . بنیاد نرم افزار پایتون بازبینی شده در 9 فوریه 2012 .
  19. شیمناور، نیل؛ پیترز، تیم؛ هتلند، مگنوس لای (18 مه 2001). “PEP 255 – ژنراتورهای ساده”. پیشنهاد بهبود پایتون بنیاد نرم افزار پایتون بازبینی شده در 9 فوریه 2012 .
  20. اسمیت، کوین دی. جوت، جیم جی. مونتانارو، پرش. باکستر، آنتونی (2 سپتامبر 2004). “PEP 318 – تزئینات برای عملکردها و روش ها”. پیشنهاد بهبود پایتون بنیاد نرم افزار پایتون بازبینی شده در 24 فوریه 2012 .
  21. “ابزارهای کنترل جریان بیشتر”. مستندات پایتون 3 . بنیاد نرم افزار پایتون بازبینی شده در 24 جولای 2015 .
  22. ↑ «کافی اسکریپت». coffeescript.org _
  23. ↑ «آموزش زبان برنامه نویسی جن» بازبینی شده در 28 فوریه 2020 .
  24. ↑ «اثرات پرل و پایتون در جاوا اسکریپت». www.2ality.com . 24 فوریه 2013 بازبینی شده در 15 مه 2015 .
  25. ↑ راوشمایر، اکسل. “فصل 3: ماهیت جاوا اسکریپت؛ مفاهیم”. اوریلی، صحبت از جاوا اسکریپت بازبینی شده در 15 مه 2015 .
  26. ^ A B “چرا جولیا را خلق کردیم”. وب سایت جولیا فوریه 2012 بازبینی شده در 5 ژوئن 2014 . ما چیزی به اندازه پایتون برای برنامه نویسی عمومی می خواهیم […] 
  27. ↑ تیم حلقه (4 دسامبر 2017). “حلقه و زبانهای دیگر”. ring-lang.net . رینگ لنگ.
  28. ↑ بینی، اولا (2007). پروژه های عملی JRuby on Rails Web 2.0: آوردن Ruby on Rails به پلتفرم جاوا . برکلی: اپی پرس. ص 3. isbn  978-1-59059-881-8،
  29. ↑ لاتنر، کریس (3 ژوئن 2014). “صفحه اصلی کریس لاتنر”. کریس لاتنر بازبینی شده در 3 ژوئن 2014 . زبان سوئیفت محصول تلاش خستگی‌ناپذیر تیمی از متخصصان زبان، استادان مستندسازی، نینجاهای بهینه‌سازی کامپایلر و یک گروه آزمایشی داخلی بسیار مهم است که برای کمک به اصلاح و آزمایش ایده‌ها، بازخورد ارائه کردند. البته، از تجربیاتی که بسیاری از زبان‌های دیگر در این زمینه به دست آورده‌اند، با استفاده از ایده‌هایی از Objective-C، Rust، Haskell، Ruby، Python، C#، CLU و بسیاری دیگر که فهرست شده‌اند، بهره زیادی برده است. 
  30. کوهمن، دیو. “کتاب پایتون: تمرین های ابتدایی پایتون، پایتون پیشرفته و پایتون”. بخش 1.1. بایگانی شده از نسخه اصلی (PDF) در 23 ژوئن 2012.
  31. ↑ «درباره پایتون». بنیاد نرم افزار پایتون بازبینی شده در 24 آوریل 2012 . بخش دوم «طرفداران پایتون از عبارت «باتری‌ها گنجانده شده» برای توصیف کتابخانه استاندارد استفاده می‌کنند که شامل همه چیز از پردازش ناهمزمان گرفته تا فایل‌های ZIP است.
  32. ↑ Rossum, Guido Van (20 ژانویه 2009). “تاریخچه پایتون: جدول زمانی مختصر پایتون”. تاریخچه پایتون بازبینی شده در 5 مارس 2021 .
  33. ↑ پترسون، بنجامین (20 آوریل 2020). “Python Insider: Python 2.7.18، نسخه نهایی Python 2”. Python Insider بازبینی شده در 27 آوریل 2020 .
  34. ↑ TIOBE Index (دسامبر 2020). “شاخص TIOBE برای دسامبر 2020”. TIOBE.com بازیابی شده در 20 دسامبر 2020 .
  35. “شاخص | TIOBE – شرکت کیفیت نرم افزار”. www.tiobe.com بازبینی شده در 2 فوریه 2021 . پایتون برنده جایزه زبان برنامه نویسی سال TIOBE شد! این چهارمین بار در تاریخ است که یک رکورد است! این عنوان به زبان برنامه نویسی داده می شود که در یک سال بیشترین محبوبیت را به دست آورده است. 
  36. ↑ «Stack Overflow Developer Survey 2020». سرریز پشته بازبینی شده در 5 مارس 2021 .
  37. ↑ «وضعیت اکوسیستم توسعه‌دهنده در اینفوگرافیک ۲۰۲۰». JetBrains: ابزارهای توسعه دهنده برای حرفه ای ها و تیم ها بازبینی شده در 5 مارس 2021 .
  38. ↑ «محبوبیت شاخص زبان برنامه نویسی PYPL». pypl.github.io بازبینی شده در 26 مارس 2021 .
  39. ↑ A B Venners، Bill (13 ژانویه 2003). “ساخت پایتون”. توسعه دهنده Artima . آرتیما بازیابی شده در 22 مارس 2007 .
  40. ↑ Van Rossum, Guido (29 اوت 2000). “SETL (بود: زمزمه کردن در مورد لفظ محدوده)”. python-dev (لیست پستی) بازیابی شده در 13 مارس 2011 .
  41. ↑ Van Rossum، Guido (20 ژانویه 2009). “خط زمانی مختصر پایتون”. تاریخچه پایتون بازیابی شده در 20 ژانویه 2009 .
  42. ↑ فرچایلد، کارلی (12 ژوئیه 2018). «گویدو ون روسوم از نقش دیکتاتور خیرخواه پایتون برای زندگی کنار می‌رود». مجله لینوکس بازبینی شده در 13 جولای 2018 .
  43. ↑ «PEP 8100». بنیاد نرم افزار پایتون بازبینی شده در 4 مه 2019 .
  44. ↑ «PEP 13 – حاکمیت زبان پایتون». python.org بازبینی شده در 26 مه 2021 .
  45. کوچلینگ، AM; زادکا، موشه (16 اکتبر 2000). “چیزهای جدید در Python 2.0”. بنیاد نرم افزار پایتون بازبینی شده در 11 فوریه 2012 .
  46. ↑ «نسخه پایتون 3.0». بنیاد نرم افزار پایتون بازیابی شده در 8 جولای 2009 .
  47. ↑ Van Rossum, Guido (5 آوریل 2006). “PEP 3000 – Python 3000”. پیشنهاد بهبود پایتون بنیاد نرم افزار پایتون بایگانی شده از نسخه اصلی در 3 مارس 2016 بازیابی شده در 27 ژوئن 2009 .
  48. “2to3 – ترجمه خودکار کد پایتون 2 به 3”. docs.python.org بازبینی شده در 2 فوریه 2021 .
  49. ↑ “PEP 373 – Python 2.7 Release Schedule”. python.org بازیابی شده در 9 ژانویه 2017 .
  50. ↑ “PEP 466 – بهبود امنیت شبکه برای Python 2.7.x”. python.org بازیابی شده در 9 ژانویه 2017 .
  51. ↑ «Sunsetting Python 2». python.org بازبینی شده در 22 سپتامبر 2019 .
  52. ↑ “PEP 373 – Python 2.7 Release Schedule”. python.org بازبینی شده در 22 سپتامبر 2019 .
  53. ↑ «راهنمای توسعه‌دهنده پایتون – راهنمای توسعه‌دهنده پایتون». devguide.python.org بازبینی شده در 17 دسامبر 2019 .
  54. ↑ لانگا، لوکاس (19 فوریه 2021). Python Insider: Python 3.9.2 و 3.8.8 اکنون در دسترس هستند. Python Insider بازبینی شده در 26 فوریه 2021 .
  55. ↑ “پورتال مشتریان کلاه قرمزی – دسترسی 24×7 به پشتیبانی و دانش”. access.redhat.com بازبینی شده در 26 فوریه 2021 .
  56. ↑ «CVE – CVE-2021-3177». cve.mitre.org بازبینی شده در 26 فوریه 2021 .
  57. ↑ «CVE – CVE-2021-23336». cve.mitre.org بازبینی شده در 26 فوریه 2021 .
  58. ↑ The Ken Gang Ltd. “Metaclasses Python: چه کسی؟ چرا؟ چه زمانی؟” (PDF) . بایگانی شده از نسخه اصلی (PDF) در 30 مه 2009 بازیابی شده در 27 ژوئن 2009 .
  59. ↑ «3.3. نام‌های روش خاص». مرجع زبان پایتون بنیاد نرم افزار پایتون بازیابی شده در 27 ژوئن 2009 .
  60. ↑ «PyDBC: پیش‌شرط‌های متد، شرایط پس‌شرط متد و متغیرهای کلاس برای پایتون» بازبینی شده در 24 سپتامبر 2011 .
  61. ↑ «Contracts for Python» بازبینی شده در 24 سپتامبر 2011 .
  62. ↑ «PyDatalog» بازبینی شده در 22 جولای 2012 .
  63. ↑ «بسط و جاسازی مفسر پایتون: زمینه اهمیت دارد». Docs.python.org بازیابی شده در 5 ژوئن 2020 . از آنجایی که پایتون به شدت از و استفاده می کند ، به یک استراتژی برای جلوگیری از نشت حافظه و همچنین استفاده از حافظه آزاد نیاز دارد. روش انتخاب شده شمارش مرجع نامیده می شود . malloc()free()
  64. ↑ A B Hettinger، Raymond (30 ژانویه 2002). “PEP 289 – عبارات ژنراتور”. پیشنهاد بهبود پایتون بنیاد نرم افزار پایتون بازبینی شده در 19 فوریه 2012 .
  65. “6.5 itertools – توابعی که یک تکرار کننده برای حلقه زدن کارآمد ایجاد می کنند”. Docs.python.org بازبینی شده در 22 نوامبر 2016 .
  66. ↑ A B Peters, Tim (19 اوت 2004). “PEP 20 – ذن پایتون”. پیشنهاد بهبود پایتون بنیاد نرم افزار پایتون بازیابی شده در 24 نوامبر 2008 .
  67. مارتلی، الکس؛ ریونسکرافت، آنا؛ آشر، دیوید (2005). کتاب آشپزی پایتون، ویرایش دوم. رسانه اوریلی ص 230. isbn  978-0-596-00797-3،
  68. ↑ «فرهنگ پایتون». eBay _ اصل بایگانی شده از 21 ژانویه 2014، 30 ژانویه 2014.
  69. ↑ «سؤالات متداول عمومی پایتون». پایتون نسخه 2.7.3 مستندات . Docs.python.org بازبینی شده در 4 ژوئن 2020 .
  70. ↑ «۱۵ روشی که پایتون یک نیروی قدرتمند در وب است».
  71. ↑ “8.18. pprint – چاپگر زیبای داده – مستندات Python 3.8.3”. docs.python.org .
  72. ↑ کلارک، رابرت (26 آوریل 2019). “چگونه پایتونیک باشیم و چرا باید اهمیت دهیم”. متوسط _
  73. ↑ “Code Style – The Hitchhiker’s Guide to Python”. docs.python-guide.org .
  74. گودگار، دیوید. “Code Like a Pythonista: Python اصطلاحی”. بایگانی شده از نسخه اصلی در 27 مه 2014 بازیابی شده در 24 مارس 2009 .
  75. ↑ «چگونه مانند پایتونیستا فکر کنیم».
  76. ↑ “آیا پایتون زبان خوبی برای یک برنامه نویس مبتدی است؟” ، سوالات متداول پایتون بنیاد نرم افزار پایتون بازیابی شده در 21 مارس 2007 .
  77. ↑ “افسانه ها در مورد تورفتگی در پایتون”. seknetics.d بازبینی شده در 19 آوریل 2011 .
  78. ↑ «PEP 8 – Style Guide for Python Code». python.org _
  79. ↑ «برترین‌ها: Python 2.5». python.org _
  80. ↑ Van Rossum, Guido (22 آوریل 2009). “حذف بازگشت دم”. Neopythonic.blogspot.be بازیابی شده در 3 دسامبر 2012 .
  81. ↑ Van Rossum، Guido (9 فوریه 2006). “طراحی زبان فقط حل معما نیست”. انجمن آرتیما . آرتیما بازیابی شده در 21 مارس 2007 .
  82. ↑ ون روسوم، گیدو؛ ابی، فیلیپ جی. (10 مه 2005). “PEP 342 – کوروتین ها از طریق ژنراتورهای پیشرفته”. پیشنهاد بهبود پایتون بنیاد نرم افزار پایتون بازبینی شده در 19 فوریه 2012 .
  83. ↑ «PEP 380». python.org بازیابی شده در 3 دسامبر 2012 .
  84. ↑ «پارتیشن». python.org _
  85. “PEP 0465 – یک عملگر infix اختصاصی برای ضرب ماتریس”. python.org بازیابی شده در 1 ژانویه 2016 .
  86. ↑ «Python 3.5.1 Release and Changelog». python.org بازیابی شده در 1 ژانویه 2016 .
  87. ↑ «چیزهای جدید در پایتون 3.8» بازبینی شده در 14 اکتبر 2019 .
  88. “فصل 15. عبارات – 15.21.1. عملگرهای برابری عددی == و !=”. شرکت اوراکل بازبینی شده در 28 اوت 2016 .
  89. “فصل 15. عبارات – 15.21.3. عملگرهای برابری مرجع == و !=”. شرکت اوراکل بازبینی شده در 28 اوت 2016 .
  90. ↑ ون روسوم، گیدو؛ هتینگر، ریموند (7 فوریه 2003). “PEP 308 – عبارات شرطی”. پیشنهاد بهبود پایتون بنیاد نرم افزار پایتون بازبینی شده در 13 جولای 2011 .
  91. ↑ «4. انواع داخلی – اسناد پایتون 3.6.3rc1». python.org بازیابی شده در 1 اکتبر 2017 .
  92. ↑ “5.3. Tuples and Sequences – Python 3.7.1rc2 Documentation”. python.org بازبینی شده در 17 اکتبر 2018 .
  93. ^ a b “PEP 498 — Literal String Interpolation”. python.org بازبینی شده در 8 مارس 2017 .
  94. “چرا باید “خود” به صراحت در تعاریف و فراخوانی متدها استفاده شود؟” ، سوالات متداول طراحی و تاریخچه بنیاد نرم افزار پایتون بازبینی شده در 19 فوریه 2012 .
  95. ↑ «مرجع زبان پایتون، جلد 3.3. کلاس‌های سبک جدید و کلاسیک، برای نسخه 2.7.1» بازیابی شده در 12 ژانویه 2011 .
  96. ↑ «نکات تایپ برای پایتون». lwn.net. 24 دسامبر 2014 بازبینی شده در 5 مه 2015 .
  97. “mypy – تایپ استاتیک جایگزین برای Python” بازبینی شده در 28 ژانویه 2017 .
  98. ↑ “15. محاسبات ممیز شناور: مسائل و محدودیت ها – اسناد پایتون 3.8.3”. docs.python.org بازبینی شده در 6 ژوئن 2020 . امروزه (نوامبر 2000) تقریباً همه ماشین‌ها از محاسبات ممیز شناور IEEE-754 استفاده می‌کنند و تقریباً همه پلتفرم‌ها شناورهای Python را به IEEE-754 «دقت مضاعف» ترسیم می‌کنند. 
  99. ↑ زادکا، موشه؛ ون روسوم، گیدو (11 مارس 2001). “PEP 237 – ادغام اعداد صحیح طولانی و اعداد صحیح”. پیشنهاد بهبود پایتون بنیاد نرم افزار پایتون بازبینی شده در 24 سپتامبر 2011 .
  100. ↑ «انواع ضمنی» بازیابی شده در 3 اکتبر 2019 .
  101. “PEP 465 – یک عملگر اختصاصی infix برای ضرب ماتریس”. python.org _
  102. ^ ا ب زادکا، موشه؛ ون روسوم، گیدو (11 مارس 2001). “PEP 238 – تغییر اپراتور بخش”. پیشنهاد بهبود پایتون بنیاد نرم افزار پایتون بازبینی شده در 23 اکتبر 2013 .
  103. ↑ «چرا طبقات تقسیم عدد صحیح پایتون» بازبینی شده در 25 اوت 2010 .
  104. ↑ «Round»، کتابخانه استاندارد پایتون، نسخه 3.2، 2: توابع داخلی ، بازیابی شده در 14 اوت 2011
  105. ↑ «Round»، کتابخانه استاندارد پایتون، نسخه ۲.۷، ۲: توابع داخلی ، بازیابی شده در ۱۴ اوت ۲۰۱۱
  106. ↑ بیزلی، دیوید ام. (2009). مرجع Python Essentials (ویرایش چهارم). ص 66.
  107. ↑ کرنیگان، برایان دبلیو. ریچی، دنیس ام. (1988). زبان برنامه نویسی C (ویرایش دوم). ص 206.
  108. ↑ باتیستا، فایسوندو. “PEP 0327 – انواع داده اعشاری”. python.org بازبینی شده در 26 سپتامبر 2015 .
  109. ↑ «چیزهای جدید در Python 2.6 – Python v2.6. docs.python.org بازبینی شده در 26 سپتامبر 2015 .
  110. ↑ «۱۰ دلیل برای تحقیقات پایتون (و برخی از دلایلی که این کار را نمی کند) – هویت کوپکه». www.stat.washington.edu بازبینی شده در 3 فوریه 2019 .
  111. ↑ شل، اسکات (17 ژوئن 2014). “مقدمه ای بر پایتون برای محاسبات علمی” (PDF) بازبینی شده در 3 فوریه 2019 .
  112. ↑ Piotrowski، Przemysloe (ژوئیه 2006). “ساخت یک محیط توسعه سریع وب برای صفحات سرور پایتون و اوراکل”. شبکه فناوری اوراکل اوراکل بازیابی شده در 12 مارس 2012 .
  113. ↑ باتیستا، فایسوندو (17 اکتبر 2003). “PEP 327 – انواع داده اعشاری”. پیشنهاد بهبود پایتون بنیاد نرم افزار پایتون بازیابی شده در 24 نوامبر 2008 .
  114. ↑ ابی، فیلیپ جی. (7 دسامبر 2003). “PEP 333 – Python Web Server Gateway Interface v1.0”. پیشنهاد بهبود پایتون بنیاد نرم افزار پایتون بازبینی شده در 19 فوریه 2012 .
  115. دبیل، اریک. “ماژول مهم است”. محاسبه ماژول بازبینی شده در 2 فوریه 2021 .
  116. هیجان، سایبان. “سایبان”. www.en think.com بازبینی شده در 20 اوت 2016 .
  117. “Mailman 3 چرا ما اجازه استفاده از C11 را نمی دهیم؟ – python-dev – python.org”. mail.python.org بازیابی شده در 1 مارس 2021 .
  118. ↑ «مشکل 35473: کامپایلر اینتل (ICC) به طور کامل از ویژگی های C11، از جمله ردیاب اتم-پایتون پشتیبانی نمی کند». bugs.python.org بازیابی شده در 1 مارس 2021 .
  119. ↑ “4. ساخت برنامه های افزودنی C و C++ – مستندات Python 3.9.2”. docs.python.org بازیابی شده در 1 مارس 2021 .
  120. ↑ ون روسوم، گیدو (5 ژوئن 2001). “PEP 7 – Style Guide for C Code”. پیشنهاد بهبود پایتون بنیاد نرم افزار پایتون بازیابی شده در 24 نوامبر 2008 .
  121. ↑ «کد بایت CPython». Docs.python.org بازبینی شده در 16 فوریه 2016 .
  122. ↑ «Python 2.5 Internals» (PDF) بازبینی شده در 19 آوریل 2011 .
  123. ↑ “Changelog – Python 3.9.0 Documentation”. docs.python.org بازبینی شده در 8 فوریه 2021 .
  124. ↑ «دانلود پایتون». python.org بازبینی شده در 13 دسامبر 2020 .
  125. ↑ «تاریخچه [vmspython]». www.vmspython.org بازبینی شده در 4 دسامبر 2020 .
  126. ↑ «مصاحبه با گیدو ون روسوم». Orelie.com بازیابی شده در 24 نوامبر 2008 .
  127. ↑ «دانلود پایتون برای پلتفرم‌های دیگر». python.org بازبینی شده در 4 دسامبر 2020 .
  128. ↑ «سازگاری با PyPY». Pypy.org بازیابی شده در 3 دسامبر 2012 .
  129. ↑ «مقایسه سرعت بین CPython و Pypy». سرعت . pypy.org بازیابی شده در 3 دسامبر 2012 .
  130. ↑ «ویژگی‌های بدون پشته در سطح برنامه – PyPy 2.0. Doc.pypy.org بازبینی شده در 17 جولای 2013 .
  131. ↑ «Python-for-EV3». آموزش لگو بازبینی شده در 17 آوریل 2019 .
  132. ↑ یگلاپ، سردار (29 اکتبر 2020). “پیستون برای سرعت بخشیدن به پایتون از مرده باز می گردد.” دنیای اطلاعات بازبینی شده در 26 ژانویه 2021 .
  133. ↑ «سیندر: چنگال عملکرد محور CPython در اینستاگرام» بازبینی شده در 4 مه 2021 .
  134. ↑ «طرح‌های بهینه‌سازی پایتون». میزبانی پروژه گوگل 15 دسامبر 2009 بازبینی شده در 24 سپتامبر 2011 .
  135. ↑ «Python on Nokia N900». هندسه تصادفی . 29 آوریل 2010.
  136. ↑ “خانه نویتکا | خانه نویتکا”. nuitka.net بازبینی شده در 18 اوت 2017 .
  137. ↑ مرزی، اولیویه (24 ژانویه 2019). “Python: Python در C++ Speed!” ، متوسط _
  138. ↑ «Python – Python 0.9.5 Documentation». python.readthedocs.io .
  139. ^ https://conference.scipy.org/proceedings/scipy2013/html/pdfs/guelton.pdf
  140. ↑ «Google/Grumpy». 10 آوریل 2020 – از طریق GitHub.
  141. ↑ «پروژه ها». opensource.google .
  142. در سانفرانسیسکو، توماس کلیبرن. “کد Grumpy گوگل پایتون گو را می سازد”. www.thereregister.com .
  143. ↑ «IronPython.net/». IronPython.net بازبینی شده در 22 آوریل 2021 .
  144. ↑ «سؤالات متداول جیتون». www.jython.org بازبینی شده در 22 آوریل 2021 .
  145. ↑ «برایتان». brythan.info بازیابی شده در 21 ژانویه 2021 .
  146. “رونویسی – پایتون در مرورگر”. transcrypt.org بازیابی شده در 22 دسامبر 2020 .
  147. ↑ «رونویسی: آناتومی پایتون به کامپایلر جاوا اسکریپت». چرا اطلاعات ؟
  148. ↑ موری، ریکاردو (2013). نمایش زمان اجرا پایتون در کد علمی غیر عددی . کنفرانس اروپایی پایتون در علم (EuroSciPy). arxiv : 1404.6388 . bibcode: 2014arXiv1404.6388M.
  149. ↑ «بازی معیار زبان رایانه» بازبینی شده در 30 آوریل 2020 .
  150. ^ a b ورشو، بری; هیلتون، جرمی؛ گودگار، دیوید (13 ژوئن 2000). “PEP 1 – اهداف و دستورالعمل های PEP”. پیشنهاد بهبود پایتون بنیاد نرم افزار پایتون بازبینی شده در 19 آوریل 2011 .
  151. ↑ «PEP 8 – Style Guide for Python Code». python.org _
  152. کانن، برت. “Guido، برخی از افراد، و یک لیست پستی: Python چگونه توسعه می یابد”. python.org _ بنیاد نرم افزار پایتون بایگانی شده از نسخه اصلی در 1 ژوئن 2009 بازیابی شده در 27 ژوئن 2009 .
  153. ↑ «راهنمای توسعه‌دهنده پایتون – راهنمای توسعه‌دهنده پایتون». devguide.python.org .
  154. ↑ «PEP 602 – چرخه انتشار سالانه برای پایتون». python.org بازبینی شده در 6 نوامبر 2019 .
  155. ↑ «تغییر آهنگ انتشار پایتون [LWN.net]». lwn.net بازبینی شده در 6 نوامبر 2019 .
  156. ↑ نورویتز، نیل (8 آوریل 2002). “برنامه انتشار [python-dev] (دارای ثبات و تغییرات بود)” بازیابی شده در 27 ژوئن 2009 .
  157. ^ a b ahz; باکستر، آنتونی (15 مارس 2001). “PEP 6 – رفع اشکال منتشر شد”. پیشنهاد بهبود پایتون بنیاد نرم افزار پایتون بازیابی شده در 27 ژوئن 2009 .
  158. ↑ «بیلد بات پایتون». راهنمای برنامه نویس پایتون بنیاد نرم افزار پایتون بازبینی شده در 24 سپتامبر 2011 .
  159. “1. گسترش پایتون با C یا C++ – Python 3.9.1 Documentation”. docs.python.org بازبینی شده در 14 فوریه 2021 .
  160. ↑ “PEP 623 – wstr را از یونیکد حذف کنید”. python.org بازبینی شده در 14 فوریه 2021 .
  161. ↑ “PEP 634 – تطبیق الگوی ساختاری: مشخصات”. python.org بازبینی شده در 14 فوریه 2021 .
  162. ↑ «ابزارهای مستندسازی». python.org بازبینی شده در 22 مارس 2021 .
  163. ^ A B “اشتهای خود را بارگیری کنید”. آموزش پایتون . بنیاد نرم افزار پایتون بازبینی شده در 20 فوریه 2012 .
  164. “در پایتون، آیا باید بعد از بازگشت در بلوک if از other استفاده کنم؟” ، سرریز پشته . صرافی پشته. 17 فوریه 2011 بازبینی شده در 6 مه 2011 .
  165. ↑ لوتز، مارک (2009). یادگیری پایتون: برنامه نویسی قدرتمند شی گرا. O’Reilly Media, Inc. ص 17. شابک  9781449379322،
  166. ↑ فیهیلی، کریس (2002). پایتون . پرس هلو. P XV ISBN  9780201748840،
  167. ↑ «شاخص TIOBE». TIOBE – شرکت کیفیت نرم افزار بازبینی شده در 26 فوریه 2021 .
  168. ↑ بلیک، نویسنده تروی (18 ژانویه 2021). “شاخص TIOBE برای ژانویه 2021”. اخبار و اطلاعات فناوری توسط SeniorDBA بازبینی شده در 26 فوریه 2021 .
  169. ↑ TIOBE Software Index (2015). “TIOBE Programming Community Index Python” بازبینی شده در 10 سپتامبر 2015 .
  170. ↑ پریچالت، لوتز (14 مارس 2000). “مقایسه تجربی C، C++، Java، Perl، Python، Rex، و Tcl” (PDF) بازبینی شده در 30 اوت 2013 .
  171. ↑ «نقل قول در مورد پایتون». بنیاد نرم افزار پایتون بازیابی شده در 8 ژانویه 2012 .
  172. ↑ «سازمان‌هایی که از پایتون استفاده می‌کنند». بنیاد نرم افزار پایتون بازیابی شده در 15 ژانویه 2009 .
  173. ↑ «پایتون: جام مقدس برنامه‌نویسی». بولتن سرن انتشارات سرن (31/2006). 31 جولای 2006 بازبینی شده در 11 فوریه 2012 .
  174. ↑ شفر، دانیل جی. (17 ژانویه 2003). “پایتون طراحی ماموریت شاتل فضایی را ساده می کند”. بنیاد نرم افزار پایتون بازیابی شده در 24 نوامبر 2008 .
  175. ↑ «تورنادو: چارچوب وب بلادرنگ فیس بوک برای پایتون – فیس بوک برای توسعه دهندگان». فیس بوک برای توسعه دهندگان بازبینی شده در 19 ژوئن 2018 .
  176. ↑ «What Powers Instagram: صدها نمونه، ده‌ها فناوری». مهندسی اینستاگرام بازبینی شده در 27 مه 2019 .
  177. ↑ «نحوه استفاده از پایتون در اسپاتیفای». Spotify Labs 20 مارس 2013 بازبینی شده در 25 جولای 2018 .
  178. ↑ فورتنبری، تیم (17 ژانویه 2003). “نور صنعتی و جادو روی پایتون اجرا می شود”. بنیاد نرم افزار پایتون بازبینی شده در 11 فوریه 2012 .
  179. ↑ تافت، داریل کی. (5 مارس 2007). “پایتون به سیستم می لغزد”. eWeek.com _ جیف دیویس هلدینگ بازبینی شده در 24 سپتامبر 2011 .
  180. کد تاریخی از GitHub – reddit-archive/reddit: reddit.com. ، بایگانی Reddit ، بازیابی شده در 20 مارس 2019
  181. ↑ «سهم بازار پایتون برای آمار استفاده و وب‌سایت‌ها». 2012 بازبینی شده در 18 دسامبر 2012 .
  182. ↑ اولیفانت، تراویس (2007). “پایتون برای محاسبات علمی”. محاسبات در علوم و مهندسی . 9 (3): 10-20. Bibcode : 2007CSE ….. 9c..10O . SiteSeerX   10.1.1.474.6460 . doi: 10.1109/mcse.2007.58. S2CID 206457124 .
  183. میلمن، ک. جارود؛ آیوازیس، مایکل (2011). “پایتون برای دانشمندان و مهندسان”. محاسبات در علوم و مهندسی . 13 (2): 9-12. Bibcode : 2011CSE …. 13b … 9M . doi: 10.1109/mcse.2011.36.
  184. آموزش علوم با SageMath، محاسبات نوآورانه در آموزش علوم ، بازیابی شده در 22 آوریل 2019
  185. ↑ «OpenCV: The OpenCV-Python Tutorial». docs.opencv.org بازبینی شده در 14 سپتامبر 2020 .
  186. دین، جف؛ مونگا، نقره؛ و دیگران. (9 نوامبر 2015). “TensorFlow: یادگیری ماشین در مقیاس بزرگ در سیستم های ناهمگن” (PDF) . TensorFlow.org _ تحقیق گوگل بازبینی شده در 10 نوامبر 2015 .
  187. ↑ پیاتتسکی، گریگوری. Python eats in R: نرم افزار برتر برای تجزیه و تحلیل، علم داده، یادگیری ماشین در سال 2018: روندها و تجزیه و تحلیل ها. Cadengates . Cadengates بازبینی شده در 30 مه 2018 .
  188. ↑ “چه کسی از scikit-learn استفاده می کند؟ – scikit-learn 0.20.1 Documentation”. scikit-learn.org .
  189. جوپی، هنجار. «گوگل وظایف یادگیری ماشینی را با تراشه سفارشی TPU افزایش می‌دهد». وبلاگ Google Cloud Platform بازبینی شده در 19 مه 2016 .
  190. ↑ «کتاب ابزار زبان طبیعی — مستندات NLTK 3.5b1». www.nltk.org .
  191. “نصب کننده برای GIMP برای ویندوز – سوالات متداول”. 26 جولای 2013. بایگانی شده از نسخه اصلی در 17 جولای 2013 بازبینی شده در 26 جولای 2013 .
  192. ↑ “JSC PSP 9 Components”. بایگانی شده از نسخه اصلی در 19 مارس 2008.
  193. ↑ «درباره شروع کار با نوشتن اسکریپت های پردازش جغرافیایی». ArcGIS Desktop Help 9.2 . پژوهشکده سیستم های زیست محیطی. 17 نوامبر 2006 بازبینی شده در 11 فوریه 2012 .
  194. ↑ CCP Porkbelly (24 اوت 2010). «پایتون بدون پشته 2.7». وبلاگ برنامه نویس اجتماع حوا . بازی های CCP. همانطور که می دانید، در هسته EVE زبان برنامه نویسی به نام Stackless Python قرار دارد. 
  195. ↑ کودیل، بری (20 سپتامبر 2005). “بازنگری در تمدن سید مایر IV”. وبلاگ توسعه دهنده Sid Meier’s Civilization IV . بازی های Firaxis. بایگانی شده از نسخه اصلی در 2 دسامبر 2010. ما سه سطح ابزار ایجاد کردیم… سطح بعدی پشتیبانی از Python و XML را فراهم می‌کند و به مددرها با تجربه بیشتر اجازه می‌دهد دنیای بازی و همه چیز را در آن دستکاری کنند. 
  196. ↑ «راهنمای زبان پایتون (نسخه 1.0)». Google Documents List Data API نسخه 1.0 . بایگانی شده از نسخه اصلی در 15 جولای 2010.
  197. ↑ «راه اندازی و استفاده از پایتون». بنیاد نرم افزار پایتون بازیابی شده در 10 ژانویه 2020 .
  198. ↑ «مصونیت: دانستن اینکه ایمن هستید». بایگانی شده از نسخه اصلی در 16 فوریه 2009.
  199. ↑ «امنیت اصلی». امنیت اصلی .
  200. “شکر چیست؟” ، آزمایشگاه قند بازبینی شده در 11 فوریه 2012 .
  201. ↑ «4.0 ویژگی‌ها و پیشرفت‌های جدید». LibreOffice.org _ بنیاد سند. 2013 بازبینی شده در 25 فوریه 2013 .
  202. ↑ «Gotchas برای کاربران پایتون». boo.codehaus.org . بنیاد کدهاوس بایگانی شده از نسخه اصلی در 11 دسامبر 2008 بازیابی شده در 24 نوامبر 2008 .
  203. ↑ استربروک، چارلز. “پذیرش – پذیرفته شدن” . cobra-bhasha.com . زبان کبری بازیابی شده در 7 آوریل 2010 .
  204. ↑ «پیشنهاد: تکرارکننده‌ها و تولیدکنندگان [ES4 wiki]». wiki.ecmascript.org. بایگانی شده از نسخه اصلی در 20 اکتبر 2007 بازیابی شده در 24 نوامبر 2008 .
  205. ↑ «سوالات متداول». مستندات موتور گودو
  206. ↑ کینکید، جیسون (10 نوامبر 2009). Google’s Go: زبان برنامه نویسی جدیدی که پایتون با C++ روبرو می شود. TechCrunch بازیابی شده در 29 ژانویه 2010 .
  207. ↑ Strachan، James (29 اوت 2003). “Groovy – تولد یک زبان پویا جدید برای پلت فرم جاوا”. بایگانی شده از نسخه اصلی در 5 آوریل 2007 بازیابی شده در 11 ژوئن 2007 .
  208. ↑ Yegulalp، Serdar (16 ژانویه 2017). “زبان Nim بهترین مشتق شده از Python، Rust، Go و Lisp”. دنیای اطلاعات نحو Nim به شدت یادآور Python است، زیرا از بلوک‌های کد فرورفته و نحوی تا حدی مشابه (مانند نحوه ساخت بلوک‌های if/elif/then/else) استفاده می‌کند. 
  209. ↑ «مصاحبه با خالق یاقوت». Linuxdevcenter.com بازیابی شده در 3 دسامبر 2012 .
  210. ↑ لاتنر، کریس (3 ژوئن 2014). “صفحه اصلی کریس لاتنر”. کریس لاتنر بازبینی شده در 3 ژوئن 2014 . من کار بر روی زبان برنامه نویسی سویفت را در جولای 2010 شروع کردم. من بسیاری از ساختارهای اساسی زبان را پیاده‌سازی کردم که فقط تعداد کمی از افراد از وجود آن آگاه بودند. چند نفر دیگر (شگفت انگیز) در اواخر سال 2011 شروع به مشارکت جدی کردند و در ژوئیه 2013 تمرکز اصلی برای گروه ابزارهای توسعه دهنده اپل شد […] Objective-C، Rust، Haskell، Ruby، Python برای جذب ایده از . C#، CLU، و بسیاری دیگر برای فهرست کردن. 
  211. ↑ کوپریس، آندریاس؛ همکار، دونال ک. (14 سپتامبر 2000). “نکته شماره 3: فرمت نکته”. tcl.tk _ Tcl Developer Exchange بازیابی شده در 24 نوامبر 2008 .
  212. گوستافسون، هر Niskanen, Raimo (29 ژانویه 2007). “EEP 1: اهداف و دستورالعمل های EEP”. erlang.org بازبینی شده در 19 آوریل 2011 .
  213. ↑ «فرآیند توسعه سریعتر». مخزن تکامل زبان برنامه نویسی سویفت در GitHub . 18 فوریه 2020 بازبینی شده در 27 آوریل 2020 .

منابع می گویند

  • “پایتون برای هوش مصنوعی”. wiki.python.org. اصلی از 19 ژوئیه 2012 تا 1 نوامبر 2012 بایگانی شده است. بازیابی شده در 3 دسامبر 2012 .
  • پین، جوسلین، ویرایش. (اوت 2005). “هوش مصنوعی در پایتون”. روزنامه خبره هوش مصنوعی امی!. بایگانی شده از نسخه اصلی 26 مارس 2012 بازبینی شده در 11 فوریه 2012 .
  • “PyAIML 0.8.5: Python Package Index”. pypy.python.org بازبینی شده در 17 جولای 2013 .
  • راسل، استوارت جی. و نورویگ، پیتر (2009). هوش مصنوعی: یک رویکرد مدرن (ویرایش سوم). رودخانه فوقانی زین، نیوجرسی: سالن پرنتیس. isbn 978-0-13-604259-4،

  • داونی، آلن بی. (مه 2012). Think Python: How to Think Like a Computer Scientist (نسخه 1.6. isbn 978-0-521-72596-5،
  • همیلتون، نائومی (5 اوت 2008). “A-Z زبان های برنامه نویسی: پایتون”. دنیای کامپیوتر بایگانی شده از نسخه اصلی در 29 دسامبر 2008 بازیابی شده در 31 مارس 2010 .
  • لوتز، مارک (2013). یادگیری پایتون (ویرایش پنجم). رسانه اوریلی isbn 978-0-596-15806-4،
  • زائر، مارک (2004). شیرجه رفتن به پایتون Apres. isbn 978-1-59059-356-1،
  • زائر، مارک (2009). به پایتون 3 شیرجه بزنید. Apres. isbn 978-1-4302-2415-0،
  • سامرفیلد، مارک (2009). برنامه نویسی در پایتون 3 (ویرایش دوم) . ادیسون وسلی حرفه ای. isbn 978-0-321-68056-3،

8 نظرات

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