آموزش زبان پایتون | Python

آموزش پایتون نیز یکی از ارائه های دوست داشتنی من در درس طراحی و پیاده سازی زبانهای برنامه سازی بود. اسلاید ، نرم افزار ، پی دی اف ، آموزش و تاریخپه رو براتون قرار دادم. امیدوارم مفید باشه.
نرم افزار (تمامی نسخه ها و تمامی محیط ها)
پیتون یا پایتون یک زبان برنامهنویسی عام منظوره، سطح بالا، شیءگرا و تفسیری است که توسط گیدو ون روسوم (Guido van Rossum) در سال ۱۹۹۱ طراحی شد.
فلسفهٔ ایجاد آن به دو هدف اصلی خوانایی بالای برنامههای نوشته شده و حاصل دهی با بازدهی بالای کارهای برنامه نویس برمیگردد. کلمات کلیدی و اصلی این زبان به صورت حداقلی تهیه شده اند و در مقابل کتابخانههایی که در اختیار کاربر است بسیار وسیع هستند. یک کار غیر معمول که در طراحی این زبان انجام گرفته استفاده از فاصله و جلوبردن متن برنامه برای مشخص کردن بلوک های مختلف کد است.
پایتون مدل های مختلف برنامه نویسی (از جمله شیء گرا و برنامه نویسی دستوری و تابع محور) را پشتیبانی میکند و برای مشخص کردن نوع متغییر ها از یک سامانهٔ پویا استفاده میکند.
این زبان از زبان های برنامه نویسی تفسیری بوده و به صورت کامل یک زبان شیگرا است که در ویژگیها با زبانهای تفسیری پرل، روبی، اسکیم، اسمالتاک و تیسیال مشابهت دارد و از مدیریت خودکار حافظه استفاده میکند.
پایتون پروژهای متنباز توسعهیافته است و توسط بنیاد نرمافزار پایتون مدیریت میگردد. نسخهٔ کنونی (مارس ۲۰۰۸) این زبان ۲.۶ است.همچنین نسخهٔ آزمایشی ۳.۰ نیز موجود است
تاریخچه
پایتون اواخر سال ۱۹۸۰(میلادی) توسط گیدو ون روسوم در موسسه ملی تحقیقات ریاضی و رایانه ( CVVI ) در شهر هلند ایجاد شد. هدف گیدو ایجاد جانشینی برای زبان برنامه نویسی «ایبیسی» بود که با قابلیت پردازش استثنا را داشته باشد. گیدو طراح اصلی پایتون است و نقش مداوم او در تصمیم گیری پیرامون اهداف پایتون ، باعث شد که انجمن پایتون به او لقب دیکتاتور خیراندیش زندگی (به انگلیسی: Benevolent Dictator For Life) را بدهد.
نسخههای اولیه
در سال ۱۹۹۱ ون روسوم کدی با برچسب نسخهء۰.۹.۰ را منتشر کرد. البته در این مرحله از پیشرفت کلاس هایی با خاصیت ارث بری ، پردازش استثنا ، توابع و نوع داده list , dict , str وجود داشت. همچنین در این نسخه ابتدایی یک سیستم ماژول با اقتباس از ماژول-۳ وجود داشت. که ون روسوم این ماژول را به عنوان «یکی از واحد های عمده برنامه نویسی پایتون» توصیف کرد. مدل استثناء پایتون نیز شباهت هایی به ماژول-۳ داشت ، به علاوه شرط else . در سال ۱۹۹۴ اولین مجمع مباحثه پیرامون پایتون شکل گرفت که مرحله برجستهای در پیشرفت کاربری پایتون بود.
نسخه ۱.۰
پایتون در ژانویه ۱۹۹۴ به ورژن ۱.۰ رسید. خصوصیات عمده جدید این نسخه شامل ابزار های برنامه نویسی تابعی lambda , map , filter , reduce بود. ورژن پایتون ۱.۲ در سال ۱۹۹۵ ، زمانیکه گیدو در CVVI بود ٬ بدست آمد. گیدو به فعالیت های خود روی پایتون در موسسه ملی تحقیقات و ابتکارات (CNRI) در رستون ادامه داد و در همانجا چندین نسخه جدید انتشار یافت. در نسخه ۱.۴ به پایتون چندین ویژگی جدید اضافه شد. از ویژگیهای جالب توجه در میان این اضافات میتوان بهالهام گرفتن از آرگومان های کلیدی ماژول-۳ (که خود از آرگومان های کلیدی لیسپ الهام گرفته بود) و همچنین پیشتیبانی اعداد مختلط اشاره کرد. در مدت فعالیت ون روسوم در CNRI ، او پروژه «برنامه نویسی کامپیوتر برای هر کس» (CP4E) را ایجاد کرد تا برنامه نویسی را در دسترس افراد بیشتری که اطلاعات پایهای برای برنامه نویسی (برای مثال توانایی در زبان انگلیسی و مهارتهای اولیهء ریاضی) را دارند، قرار دهد. زبان برنامهنویسی پایتون به دلیل تمرکزش بر روی پاکسازی فرم دستوراتش، نقش مرکزی را ایفا کرد. این پروژه توسط دارپا سرمایه گذاری شد واز سال ۲۰۰۷ غیر فعال شد.
باز بودن
در سال ۲۰۰۰ تیم توسعه دهنده پایتون به BeOpen.com منتقل شد و بدین صورت تیم کتابخانه باز پایتون شکل گرفت. به پیشنهاد CNRI ورژن ۱.۶ساخته شد ، بدین ترتیب برنامههای تولید شده برای ۱.۶و ۲.۰اشتراک های قابل توجهی داشتند. فقط پایتون ۲.۰ توسط BeOpen.com طراحی شده بود. بعد از تولید پایتون ۲.۰ توسط BeOpen.com ، گیدو و دیگر توسعه دهندگان کتابخانه پایتون به ایجاد دیجیتال روی آوردند. تولید پایتون ۱.۶ شامل جواز جدید CNRI بود که به طور قابل توجهی طولانی تر از جواز CWI ( که برای تولیدات قبلی استفاده شده بود) بود. موسسه مستقل از نرم افزار توضیح داد که انتخاب شرط قانون با GNU GPL ناسازگار بود., BeOpen CNRI و FSF تغییراتی را در جواز پایتون مستقل از نرم افزار ایجاد کردند که با GPL سازگار باشد. پایتون ۱.۶.۱ عمدتاً مشابه پایتون ۱.۶ است فقط با کمی اشکال ، و با جواز سازگار با GPL .
نسخه ۲.۰
پایتون ۲.۰ لیستی از ویژگی هایی را که از زبان های برنامه نویسی تابعی ستل و هاسکل اقتباس شده بود ، معرفی کرد. نحو پایتون برای این ساختار ( جدا از برتری هاسکل برای کاراکتر های نقطه گذاری و کلمات الفبا ) بسیار مشابه هاسکل بود. پایتون ۲.۰ همچنین یک سیستم بازیافت حافظه با قابلیت جمع آوری منابع معرفی کرد. پایتون ۲.۱ به پایتون ۱.۶.۱ و ۲.۰ نزدیک بود. جواز آن به جواز مؤسسه نرم افزار پایتون تغییر نام یافت. همه کد ها ، اسناد و مشخصات اضافه شده را از زمان تولید الفبای پایتون ۲.۱ توسط مؤسسه نرم افزار پایتون ( PFS ) دارا شد. یک سازمان غیر انتفاعی در سال ۲۰۰۱ تشکیل شد که از مؤسسه نرم افزار آپاچی مدل گرفته بود. تولیدات شامل تغییراتی در خصوصیات زبان در پوشش حوزههای تو در تو بود ، مشابه دیگر زبان های حوزهای ایستا. ( این خصوصیات دوباره از بین رفتند و به پایتون ۲٫۲ منتقل نشدند.) یک تغییر بزرگ در پایتون ۲.۲ یکسان سازی انواع دادهای پایتون و کلاس ها به یک سلسله مراتب بود. این یکسان سازی اشیاء پایتون را کاملاً شیء گرا کرد.
میراث جاوا
انتخاب نحو و ضمایم کتابخانه استاندارد پایتون شدیداً وابسته به بعضی موارد در جاوا بود : بسته logging در ورژن ۲٫۳ ، تجزیه کننده SAX در ورژن ۲٫۰ و ساختمان های نحو که در ورژن ۲٫۴ اضافه شد.
توسعه خصوصیات
یک طرح افزایش ( PEP ) در پایتون یکنواخت کردن اسنادی است که اطلاعات عمومی ای را که پایتون را شرح میدهند تولید میکنند ؛ شامل پیشنهادات ، توصیف ها و توضیح ها برای خصوصیات زبان . PEP در نظر داشت همانند روش های اولیه ، برای پیشنهاد خصوصیات جدید و نیز برای مستند سازی طرح های اساسی ، هر عامل بزرگ در پایتون را توضیح دهد. طرح های برجسته توسط van Rossum تجدید نظر شده و توضیح داده شدند.
پایتون ۳۰۰۰
پایتون ۳٫۰(که پایتون۳۰۰۰ ویاPy3k نیز خوانده میشود) به منظور شکستن backward compatibility یا به عبارتی قطع سازگاری با گذشته پایتون .۲ و بهبود خطا ها و رخنهها در ورژن ۲٫ وهمچنین حذف روشهای قدیمی طراحی شد.به عبارتی دیگر لازم نیست که پایتون۳ بتواند کدی که با پایتون .۲ نوشته شده را تفسیر کند.که البته این مشکل توسط نرم افزار ۲to3 حل میشود.
فلسفه
پایتون ۳٫۰ با همان فلسفه ورژن های قبل ، در حال توسعه یافتن است ، بنابراین هر منبعی در فلسفه پایتون ، در پایتون ۳٫۰ به خوبی ظاهر خواهد شد. اگر چه ، همانطور که پایتون روش های جدید در برنامه ریزی را جمع آوری کرده ، پایتون ۳٫۰ تأکید زیادی بر از بین بردن ساختار ها و ماژول های تکراری دارد: ” باید یک – و ترجیحاًً فقط یک – روش بدیهی برای انجام آن وجود داشته باشد.” با این وجود پایتون ۳٫۰ به ساختار زبان چند نمونهای ادامه خواهد داد. کد نویس ها همچنان اختیارات شیء گرایی ، برنامه نویسی ساخت یافته ، برنامه نویسی تابعی و دیگر نمونهها را دارند ، اما در انتخاب های وسیع ، جزئیات در پایتون ۳٫۰ آشکار تر از پایتون سری ۲٫x هستند.
سازگاری و همزمانی
اولین کاندید پایتون ۳٫۰ در ۱۷سپتامبر ۲۰۰۸ منتشر شد. پایتون سری ۲٫x و ۳٫x به طور موازی با هم وجود خواهند داشت ، جایی که سری ۲٫x سازگاری بیشتری دارد ، به جای سری ۳٫x مورد استفاده قرار خواهد گرفت. PEP 3000 اطلاعات بیشتری را در مورد فهرست نشریات دارا ست. پایتون ۳٫۰ سازگاری قبل را نقض خواهد کرد. الزامی ندارد که کد هایی که با پایتون ۲٫x اجرا میشوند ، برای پایتون ۳٫۰ بدون تغییر اجرا شوند. چون تغییرات اساسی بین این دو ورژن وجود دارد مثل اختلاف در حالت پرینت ( بنابراین هر استفاده از پرینت به عنوان توضیح باعث شکست برنامه میشود.) نوع پویای پایتون با طرح های تغییر معنای روش های خاص دیکشنری ترکیب میشود ، به عنوان مثال ، انتقال مکانیکی بی نقص از پایتون ۲٫x به پایتون ۳٫۰ را بسیار دشوار میکند. اگرچه ابزاری به نام ” ۲to3 ” بسیاری از این وظایف انتقال را انجام میدهد ، اما باید توجه داشت که استفاده از توضیحات یا اخطار ها با ابهام همراه است. البته در یک مرحله از الفبا ، ۲to3 انتقال را حقیقتاً کامل انجام میدهد. PEP 3000 پیشنهاد میکند که یک منبع نگه داشته شود (برای سری ۲٫x) ، و نسخهای بر مبنای پایتون ۳٫۰ با استفاده از ۲to3 تولید شود. کد های نتیجه شده نباید تصحیح شوند ، مگر اینکه کدی طولانی تر از محدوده سری ۲٫x باشد. پایتون ۲٫۶ شامل خصوصیات سازگاری مستقیم است ، به طوریکه یک روش اخطار ( warning ) به صورت خودکار به مسائل انتقال هشدار میدهد. هشدار ها باید برای تشخیص خطا گزارش داده شوند ، مشابه خصوصیات ورژن های قبلی پایتون. ( برای اطلاعات بیشتر به PEP 361 رجوع کنید. )
خصوصیات
فهرست برخی از تغییرات عمده پایتون ۳٫۰ :
- تغییر پرینت چون یک تابع غیر قابل انتقال است نه یک توضیح. این باعث میشود که تغییر یک ماژول برای استفاده از یک تابع پرینت متفاوت ، آسان باشد و بنابراین ایجاد نحو منظم تر میشود. در پایتون ۲٫۶ این امکان با تایپ کردن from – future – import print – function فراهم شد.
- اضافه شدن حمایت از یادآوری تابع انتخابی که میتواند برای معرفی تایپ خصوصی یا اهداف دیگر استفاده شود.
- یکسان کردن تایپ str/Unicode ، به نمایندگی از یک متن ، و معرفی یک تایپ byte تغییر ناپذیر ؛ با یک تایپ مطابق با bytearray تغییر پذیر ، که هر دو آرایه از بایت را ارائه میکنند.
- از بین بردن خصوصیات سازگاری معکوس ، شامل کلاس های به فرم قبل ، قسمت کردن اعداد صحیح ، استثناء های رشتهای ، و گزارش های نسبتاً نا آشکار.
کاربرد
سازمان های بزرگی که امکان استفاده از پایتون را فراهم میکنند ، شامل گوگل ، یاهو ، سرن و ناسا هستند. ITA نیز از پایتون برای بعضی از اجزای خود استفاده میکند.
امنیت اطلاعات
پایتون همچنین استفاده وسیعی از صنعت ایمنی اطلاعات میکند. مثلاً در چندین ابزار پیشنهاد شده توسط تأمین امنیت و امنیت مرکزی و اسکنر امنیت کاربردی وب واپیتی. پایتون معمولاً در توسعه کاربرد مورد استفاده قرار میگیرد.
جاسازی
پایتون با موفقیت در تعدادی از تولیدات نرم افزاری مثل زبان فایل آغاز گر تعبیه شده است.پایتون معمولاً در بستههای انیمیشن ۳D استفاده میشود ، مانند Houdini , Maya , Softimage XSI , TrueSpace , Poser , Modo , Nuke , Blender . GIMP , Krita , Inkcape , Scribus , Paint Shop Pro ESRI هم اکنون در حال ترقی دادن پایتون به عنوان بهترین انتخاب برای نوشتن فایل آغازگر در ArcGIS است. همچنین در بازی ها استفاده میشود ، مانند Civilization IV و Mount&Blade به عنوان زبان کنترل برای نمایش و عکس العمل حوادث.
مقبولیت
در بسیاری از سیستم های عملیاتی ، پایتون یک جزء استاندارد است ؛ چون با بیشتر بخش های لینوکس انتقال داده میشود، با NetBSD و OpenBSD وRed Hat Linux .Mac OS X و Fedora هر دو از نصب کنده پایتونی استفاده میکنند. لینوکس Gentoo از پایتون در سیستم مدیریت بسته ، حمل و ابزار های دستیابی خود استفاده میکند. Pardus از آن برای مدیریت و در طول راه اندازی سیستم استفاده میکند.
صرف و نحو
پایتون در نظر دارد که زبانی بسیار قابل خواندن باشد. بنابراین به سمت یک طرح بندی ویژوال بدون پارازیت میرود ، و اغلب از کلمات کلیدی انگلیسی استفاده میکند ، در صورتیکه دیگر زبان ها از نقطه گذاری استفاده میکنند. پایتون نسبت به زبان های ساخت یافته سنتی ، مثل C و پاسکال ، نیاز به تکیه کلام های کمتر و همچنین استثناء های نحوی و موارد خاص کمتری دارد.
ایجاد فضای خالی
پایتون از فضاهای خالی بیشتر از آکولاد یا کلمات کلیدی برای تعیین بلوک های حالت استفاده میکند ( ویژگی ای که به نام قانون off-side نیز شناخته میشود.)
شرط ها و روند کنترل
شرط های پایتون شامل:
- شرط if ، که یک بلوک کد ، تا else و elif را اجرا میکند. (یک اختصار از else-if )
- شرط for ، که روی یک شیء تکرار شدنی تکرار میشود ، به هر متغیر محلی مقدار داده میشود برای استفاده توسط بلوک مربوطه.
- شرط class ، که یک بلوک کد را اجرا میکند و فضاهای محلی آن را به یک کلاس ملحق میکند ، برای استفاده در برنامه نویسی شیء گرا.
- شرط def ، که یک تابع را تعریف میکند.
- شرط with ، که یک بلوک کد را به یک مدیر متن ضمیمه میکند. ( به عنوان مثال ، اندوختن یک قفل قبل از اجرای بلوک کد و آزاد کردن قفل بعد از اجرا.)
هر شرطی برای خود قواعد معنایی خاصی دارد: به عنوان مثال ، شرط def ، بر خلاف دیگر شرط ها بلوک خود را فوراً اجرا نمیکند.
سی پایتون استمرار را پشتیبانی نمیکند ، و مطابق نظر Guido van Rossum هرگز نخواهد کرد. در ورژن های قبلی مولد تکرار کند بود چون اطلاعات تنها در یک جهت از مولد عبور میکردند.
روش ها
روش ها در اشیاء پایتون ، ملحق کردن توابع به اشیاء کلاس است ؛ با نحو (instance.method(argument برای روش ها و توابع نرمال ،و(Class.method (instance,argument . روش های پایتون ، یک پارامتر self آشکار برای دستیابی به دادههای instance دارند ، در برابر پارامتر self غیر آشکار در برخی زبان های برنامه نویسی شیء گرا ( مانند جاوا ، C++ ، یا روبی )
نوع دهی
پایتون از اشیاء تایپ شده و در مقابل نام متغیر های غیر تایپ استفاده میکند. محدودیت تایپ در زمان کامپایل چک نمیشود ؛ بنابراین عمل گر های روی یک شیء ممکن است شکست بخورند ، به این مفهوم که شیء داده شده از یک تایپ مناسب نیست. با اینکه اجباری در تایپ دهی ایستا نیست ، پایتون شدیداً تایپ دهی شده ، و عمل گر های نامناسب را نهی میکند. ( مثل مقدار دهی یک رشته با یک عدد )
تایپ توصیف مثال نحو strیک رشته غیر قابل تغییر از کاراکتر ها 'Wikipedia'
"Wikipedia"listتغییر پذیر ، میتواند تایپ های مختلف را دارا باشد. [۴٫۰, 'string', True]tupleتغییر ناپذیر ، میتواند تایپ های مختلف را دارا باشد. (۴٫۰, 'string', True)set,frozensetنامرتب ، هیچ نسخه دومی را دارا نیست. set([4.0, 'string', True])
{4.0, 'string', True}
frozenset([4.0, 'string', True])dictگروهی از کلید ها با جفت عددی {'key1': 1.0, 'key2': False}intیک عدد با دقت ثابت(وقتی ذخیره کردن یک عدد صحیح سر ریز داشته باشد ، به یک دقت نامحدود Long بسط خواهد یافت.) ۴۲floatیک عدد حقیقی ۳٫۱۴۱۵۹۲۷complexیک عدد مختلط با عدد حقیقی و قسمت موهومی ۳+۲jboolعدد درستی True
Falseپایتون همچنین به برنامه نویس ها اجازه میدهد که تایپ دلخواه خود را تعریف کنند. این کار با استفاده از کلاس ها امکان پذیر است ، و اغلب برای شیء گرایی در برنامه نویسی استفاده میشود. نمونههای جدید از کلاس ها با صدا زدن کلاس ساخته میشوند ، و کلاس ها خودشان نمونههایی از کلاس type هستند ( خودش یک نمونه از خودش است).
پیاده سازی
مسیر اصلی پیاده سازی پایتون ، که با عنوان سی پایتون نیز شناخته میشود ، در نشست C در استاندارد C89 نوشته شد. سی پایتون برنامههای پایتون را به کد بایت تبدیل میکند ، که سپس توسط ماشین مجازی اجرا میشود. سی پایتون با یک کتابخانه استاندارد بزرگ که به صورت مخلوطی از C و پایتون نوشته شده ، توزیع شده است. سی پایتون در ورژن های مختلف برای پایگاههای زیادی کار میکند ، شامل مایکروسافت ویندوز و بیشتر سیستم های پیشرفته یونیکس. استفاده و توسعه آن روی پایگاههای محرمانه مانند Amoeba ، در کنار پایگاههای متداول مانند یونیکس یا مکینتاش ، به طور عمده در این نظر کمک شده است.
پایتون بدون پشته ، انشعابی از سی پایتون است که ریز برنامهها را اجرا میکند ؛ و از پشته حافظه استفاده نمیکند. سی پایتون از GIL استفاده میکند تا وقتی برنامه پایتون بدون پشته ، وابسته به OS است و میتواند به صورت همزمان اجرا شود ، در هر لحظه فقط به یک زیر برنامه اجازه اجرا داده شود. پایتون برای استفاده در میکرو کنترلر ها یا وظایف محدود دیگر پایگاههای مرجع ، متناسب تر است. پیش بینی میشود که پایتون بدون پشته بتواند تقریباً روی همان پایگاهی که سی پایتون اجرا میشود ، اجرا شود.
جی تون برنامههای پایتون را به کد بایت جاوا کامپایل میکند ، که بدین ترتیب میتواند با هر ماشین مجازی جاوا اجرا شود. و همچنین این امکان فراهم میشود که توابع کتابخانهای کلاس جاوا از برنامه پایتون به کار گرفته شود. آی رون پایتون از همین شیوه برای اجرای برنامههای پایتون روی زبان .NET استفاده میکند.
پای پای یک پیاده سازی تجربی از پایتون است که میتواند چندین تایپ از کد بایت را تولید نماید.
چندین برنامه در بسته مفسر پایتون با برنامههای کاربردی ( یا آغازگر ) وجود دارد که مستقلاً اجرا میشوند مانند یونیکس ، لینوکس ، ویندوز ، AmigaOS 4 یا Mac OS X . بسیاری از کتابخانههای سه قسمتی (و حتی بعضی از یک قسمتی ها) فقط روی ویندوز ، لینوکس ، BSD و Mac OS X موجود هستند.
در نوکیا ۲۰۰۵ یک مفسر پایتون برای موبایل های سری ۶۰ با نام PyS60 تولید شد که شامل بسیاری از ماژول ها از سی پایتون بود ، و همچنین برخی ماژول های اضافه شده برای یکپارچه شدن با سیستم عامل. این پروژه به منظور اجرا روی همه پایگاههای مختلف S60 ، به روز نگاه داشته میشود.
همچنین مفسری به نام پایتون سی ای برای ابزار ویندوز CE ( شامل بسته PC ) وجود دارد. که در آن ابزار هایی برای اجرای آسان و توسعه GUI اضافه شده است. اطلاعات بیشتر را میتوانید روی وبگاه PythonCE بیابید.
پایتون چینی زبان برنامه نویسی پایتونی است که از لغت نامه زبان چینی استفاده میکند. در کنار کلمات رزرو شده و نام متغیر ها ، بیشتر عمل گر های تایپ داده ، در چینی میتوانند به خوبی کد دهی شوند.
تفسیر معنایی
بیشتر پیاده سازی های پایتون ( شامل سی پایتون ، اولین پیاده سازی ) میتوانند به عنوان یک مفسر خط فرمان عمل کنند ، برای زمانی که کاربر رشته شرط را وارد میکند و فوراً نتیجه را می پذیرد. خلاصه پایتون به عنوان یک برنامه واسط عمل میکند. وقتی صرف دیگر شیوههای اجرا ( کامپایل کد بایت یا کامپایل کد محلی ) به صورت یک رشته صرف ذخیره میشود ، یک افزایش سرعت در هزینههای متقابل به وجود میآید ، بنابراین آنها معمولاً فقط خارج از مفسر خط فرمان استفاده میشوند. ( وقتی یک ماژول وارد میشود. )
برنامههای واسط دیگر ، امکانات تحت آن را در مفسر بیسیک افزایش میدهند ، شامل IDLE و I Python . وقتی عموماً از برنامه واسط پایتون پیروی میشود ، خصوصیاتی مشابه تکمیل خودکار ، نگه داشتن زمان اجرای برنامه ، و نشان دادن صرف پیاده سازی میشود.
برخی از پیاده سازی ها نه تنها به صورت کد بایت میتوانند کامپایل شوند ، بلکه میتوانند کد پایتون را به کد ماشین تبدیل کنند. تا کنون ، این عمل فقط برای زیر مجموعههای انحصاری پایتون انجام شده است. پای پای این روش را پذیرفته و ورژن های قابل کامپایل انحصاری پایتون را RPython نامید.
Psyco یک کامپایلر اختصاصی در زمان است که کد بایت را به کد ماشین ، در زمان اجرا تبدیل میکند. کد تولید شده ، اختصاصی برای تایپ های داده خاصی است و از کد های استاندارد پایتون سریع تر است. Psyco با همه کد های پایتون سازگار است ، نه فقط یک زیر مجموعه.
کتابخانه استاندارد
پایتون یک کتابخانه استاندارد بزرگ دارد ، که از آن به عنوان یکی از بزرگ ترین توانایی های پایتون یاد میشود ، مشروط به اینکه ابزار های از پیش نوشته شده ، با بسیاری از وظایف سازگار باشد. ماژول های کتابخانه استاندارد میتوانند به شیوه ماژول های نوشته شده در سی یا پایتون آرگومان دهی شوند. اخیراً کتابخانههای C++ به یک کتابخانه به نام Boost.Python رشد یافته است ، برای ایجاد قابلیت همکاری بین C++ و پایتون. به دلیل تنوع گسترده در ابزار های تولید شده توسط کتابخانه استاندارد ، این کتابخانه با توانایی استفاده یک زبان سطح پایین ترکیب شده ، مثل C و C++ ، که البته به عنوان واسط بین کتابخانههای دیگر است ، پایتون میتواند یک واسط قوی بین زبان ها و ابزار ها باشد.
کتابخانه استاندارد با تعداد زیاد فرمت ها و پروتکل هایی که حمایت میکند (مانند MIME و HTTP ) ، خصوصاً برای نوشتن علائم اینترنت مناسب است. ماژول ها برای ایجاد واسط کاربر گرافیکی ، به پایگاه داده مربوطه متصل میشود ، محاسبات را با دقت دلخواه دسیمال انجام میدهد ، و عبارت های منظم را دستکاری میکند. پایتون همچنین یک واحد تست مدیریت پایگاه داده برای تست کردن رشتهها دارد.
بعضی از قسمت های کتابخانه استاندارد با مشخصات پوشانده شده ، اما اکثریت ماژول ها اینگونه نیستند. آنها از طریق کدها ، اسناد داخلی ، و دنباله تست شان ( اگر موجود باشد ) تعیین میشوند. اگر چه ، به دلیل اینکه اکثر کتابخانههای استاندارد ، کد پایتون مربوط به پایگاه را دارند ، فقط ماژول های اندکی هستند که باید تغییر داده شوند یا مجدّداً با یک پیاده سازی دیگر نوشته شوند.
فلسفه برنامه نویسی
پایتون یک زبان برنامه نویسی چند الگویی است. به این معنی که بیشتر برنامه نویس های قدرتمند برای وقتی یک مدل برنامه نویسی را انتخاب میکنند ، مجاز به چندین مدل هستند: شیء گرایی و برنامه نویسی ساخت یافته کاملاً تحت پوشش هستند ، و تعدادی از خصوصیات زبان های برنامه نویسی هستند که برنامه نویسی تابعی و ظاهر سازی را پشتیبانی میکنند. پایتون از تایپ پویا و یک ترکیبی از شمارش مرجع و یک حلقه کشف و بازیافت قسمت های هدر رفته حافظه برای مدیریت حافظه ، استفاده میکند. یک ویژگی مهم پایتون تحلیل نام پویا است ، که روش ها و نام متغیر ها را در طول اجرای برنامه به هم ملحق میکند.
هدف دیگر طراحی زبان آسان کردن توسعه پذیری است. ماژول هایی که تازه ساخته شده اند ، به سادگی در C و C++ نوشته میشوند. پایتون همچنین میتواند به عنوان زبان توسعه برای ماژول ها و کاربرد های موجود که به برنامه واسط قابل برنامه ریزی نیاز دارد ، استفاده شود. این طرح که یک زبان هسته کوچک با یک کتابخانه استاندارد بزرگ و یک مفسر آسان توسعه پذیر همراه باشد ، توسط Van Rossum بیان شد.
طرح پایتون به پشتیبانی محدود برای برنامه نویسی تابعی به شیوه لیسپ ، ارائه شد. اگر چه ، تشابههای عمدهای بین پایتون و زبان خانواده لیسپ وجود دارد. این کتابخانه دو ماژول دارد ( تکرار و تابعی ) که ابزار های تابعی را با اقتباس از هاسکل و ام ال استاندارد پیاده سازی میکند.
وقتی انتخاب هایی در روش شناسی کد ها ارائه شد ، پایتون نحو های فراوان را کنار گذاشت. همچنان که با پرل ، توسعه دهندگان پایتون فوراً یک فرهنگ یا ایدئولوژی را بر مبنای آنچه از یک زبان می خواهند ، ترقی دادند ، ساختار زبان ها زیبا ، آشکار و ساده شد. Alex Martelli این مطلب را در کتاب خود قرار داد: “برای توضیح برخی مسائل ، در فرهنگ پایتون تعریفی مطرح نشده است.” پایتون روش پرل را (بیش از یک روش در انجام آن وجود دارد) در طراحی زبان در حمایت از ” باید یک راه – و ترجیحاً فقط یک راه – آشکار برای انجام آن وجود دارد.” رد کرد.
پایتون از بهینه سازی بی موقع اجتناب کرد ، و بعلاوه به هم جور کردن قسمت های غیر ضروری سی پایتون را که افزایش سرعت نهایی در هزینه را ارائه میکرد ، رد کرد. آن گاهی اوقات با نام ‘ slow ‘ شناخته میشود. اگر چه ، بیشتر مسائل چندان بحرانی نیستند ، و همین طور سرعت سخت افزار کامپیوتر با سرعت نمائی رو به رشد است. وقتی سرعت یک مسأله باشد ، برنامه نویسان پایتون بیشتر تلاش میکنند تا عملیات محدود را با بهبود الگوریتم یا تغییر ساختار داده ، بهینه کنند.
واژه تراشی
یک واژه تراشی رایج در انجمن پایتون ، در pythonic است ، که میتواند محدوده وسیع معنایی وابسته به استیل برنامه داشته باشد. در مقابل یک کد unpythonic تلاش میکند تا یک کد ++C را در پایتون بنویسد.
برنامههای نوشته شده با پایتون
- بیتتورنت (BitTorrent) : نرم افزاری برای جستجوی فایلهای به اشتراک گذاشته شده(p۲p) و …
- بلندر (Blender) : یک نرم افزار ۳ بعدی و اپن سورس بسیار معروف
- چندلر (Chandler) : مدیر اطلاعات شخصی شامل تقویم ، میل ، کارهای روزلنه ، یادداشتها و …
- Civilization IV : یک گیم کامپیوتری بر مبنای پایتون که از boost.python استفاده میکند
- میلمن (Mailman) : یکی از معروفترین نرم افزارهای مرتبط با ایمیل
- کمبیلوKombilo : مدیر پایگاه داده و مرورگرگیمهای go
- موینموین (MoinMoin) : یکی از قدرتمندترین و معروفتریم ویکیهای موجود
- پلون (Plone) : یک ابزار مدیریتی محتوایی اپن سورس ، قدرتمند و کاربر پسند
- پورتاژ (Portage) : قلب توزیع جنتو . یک مدیر بستهای سیستم لینوکس
- زوپ (zope) : یک پلاتفورم شی گرای مبتنی بر وب . زوپ شامل یک سرور نرم افزار به همراه پایگاه داده شی گرا و یک رابط مدیریتی درونی مبتنی بر وب میباشد







بسیار عالی بود – متشکر از زحمات شما
آیا می توانید ودره آمزشی برگزار کنید؟
Very useful while brief. Thank you so much.
کار بسیار عالی بود. ممنون
@علی
من برای برگزاری دوره آموزشی تسلط کافی که دوستان نیاز دارند رو ندارم. اصولا برای یه همچین زبونهایی باید خورتون پی دی اف هاش رو گیر بیارید بخونید