Skip to content

Commit a222e68

Browse files
author
Saeid Darvishi
committed
Edit lesson: 01 & 02 ready!
1 parent 6a121fb commit a222e68

10 files changed

Lines changed: 19 additions & 19 deletions

File tree

_build/doctrees/environment.pickle

0 Bytes
Binary file not shown.
-30 Bytes
Binary file not shown.
12 Bytes
Binary file not shown.

_build/html/_sources/lessons/l01.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,15 +115,15 @@ CPython (سی‌پایتون) پیاده‌سازی استاندارد و اصل
115115

116116
در هر پروژه‌ای بسته به چیزی که می‌خواهیم می‌بایست انتخاب نماییم. اگر مبنای کارایی برای یک پروژه در سرعت بالای اجرا باشد (مانند برنامه‌های سیستمی)؛‌ زبان C همیشه بهترین انتخاب است ولی اگر مبنا در سرعت بالای توسعه و صرفه جویی در منابع از جمله هزینه باشد انتخاب مناسب پایتون است. گاهی نیز بهترین کارایی با استفاده ترکیبی از زبان‌های متفاوت به دست می‌آید.
117117

118-
در بسیاری از کاربردها سرعت پایتون کاملا قابل قبول است، وجود بایت‌کد‌ موجب افزایش سرعت در اجراهای بعدی برنامه می‌شود، نکات برنامه‌نویسی زیادی برای بهبود سرعت اجرا در پایتون وجود دارد که در این مجموعه به تدریج به آن‌ها اشاره خواهد شد، داشتن الگوریتم بهینه و نوشتن ماژول‌ها به زبان C نقش زیادی در افزایش قابل توجه کارایی پایتون دارد - `پایتون کند است اگر اشتباه استفاده شود <http://apenwarr.ca/diary/2011-10-pycodeconf-apenwarr.pdf>`_ - با این وجود در حالت عادی اگر هزار مورد وجود داشته باشد که پایتون برای آن‌ها بهترین انتخاب باشد، سرعت یکی از آن‌ها نخواهد بود و برای توسعه برنامه‌هایی که سرعت اجرا نقش تعیین کننده‌ دارد باید از زبان‌های دیگری استفاده نمایید.
118+
در بسیاری از کاربردها سرعت پایتون کاملا قابل قبول است، وجود بایت‌کد‌ موجب افزایش سرعت در اجراهای بعدی برنامه می‌شود، نکات برنامه‌نویسی زیادی برای بهبود سرعت اجرا در پایتون وجود دارد که در این مجموعه به تدریج به آن‌ها اشاره خواهد شد و داشتن الگوریتم بهینه و نوشتن ماژول‌ها به زبان C موجب افزایش قابل توجه کارایی پایتون می‌شود - `پایتون کند است اگر اشتباه استفاده شود <http://apenwarr.ca/diary/2011-10-pycodeconf-apenwarr.pdf>`_ - با این وجود در حالت عادی اگر هزار مورد وجود داشته باشد که پایتون برای آن‌ها بهترین انتخاب باشد، سرعت یکی از آن‌ها نخواهد بود و برای توسعه برنامه‌هایی که سرعت اجرا نقش تعیین کننده‌ دارد باید از زبان‌های دیگری استفاده نمایید.
119119

120120
لازم است به این نکته توجه داشته باشیم که تمام این صحبت‌ها در مورد پیاده‌سازی CPython از زبان پایتون بوده و پیاده‌سازی‌های دیگری نیز از زبان پایتون با هدف سرعت بالای اجرا (به مانند `PyPy <http://pypy.org/>`_) توسعه یافته است.
121121

122122
نسخه‌های پایتون
123123
----------------
124124
هم اکنون دو شاخه از پایتون به صورت موازی (Parallel) در کنار یکدیگر در دسترس هستند: نسخه‌های 2x و 3x.
125125

126-
در یک سیر تاریخی، نسخه‌ پایدار 2.0 در شانزدهم اکتبر سال ۲۰۰۰ میلادی و در ادامه‌ نسخه 1.6 منتشر (Release) می‌شود؛ پس از آن نیز توسعه‌ پایتون به همان صورت پیشین ادامه می‌یابد تا این که در دسمبر سال ۲۰۰۸ میلادی نسخه‌ای از پایتون با شماره‌ی 3.0 که از آن با عنوان ”Python 3000“ یا ”Py3K“ نیز یاد می‌شود، با رویکرد شکستن «سازگاری با نسخه‌های پیشین» (`Backward Compatibility <http://en.wikipedia.org/wiki/Backward_compatibility>`_) منتشر می‌گردد. به بیان دیگر: مفسر نسخه‌های جدید (3x) پایتون قادر به اجرای سورس کدی که بر پایه‌ مفسر نسخه‌های پیشین تهیه شده است، نخواهد بود. (که این اتفاق در جامعه پایتون بسیار بحث برانگیز بوده و هست!)
126+
در یک سیر تاریخی، نسخه‌ پایدار 2.0 در شانزدهم اکتبر سال ۲۰۰۰ میلادی و در ادامه‌ نسخه 1.6 منتشر (Release) می‌شود؛ پس از آن نیز توسعه‌ پایتون به همان صورت پیشین ادامه می‌یابد تا این که در دسمبر سال ۲۰۰۸ میلادی نسخه‌ای از پایتون با شماره‌ 3.0 که از آن با عنوان ”Python 3000“ یا ”Py3K“ نیز یاد می‌شود، با رویکرد شکستن «سازگاری با نسخه‌های پیشین» (`Backward Compatibility <http://en.wikipedia.org/wiki/Backward_compatibility>`_) منتشر می‌گردد. به بیان دیگر: مفسر نسخه‌های جدید (3x) پایتون قادر به اجرای سورس کدی که بر پایه‌ مفسر نسخه‌های پیشین تهیه شده است، نخواهد بود. (که این اتفاق در جامعه پایتون بسیار بحث برانگیز بوده و هست!)
127127

128128
ظاهرا آقای روسوم خیلی پیش از این زمان نیاز به ایجاد یک سری تغییرات در ساختار و سینتکس این زبان را احساس کرده بود. شاید نخستین نشانه‌ از لزوم ایجاد تغییرات در پایتون را بتوان از صحبت‌های ایشان در همایش متن باز اوریلی (OSCON) سال ۲۰۰۲ با عنوان پشیمانی‌های پایتون (`Python Regrets <http://legacy.python.org/doc/essays/ppt/regrets/PythonRegrets.pdf>`_) دریافت کرد. به هر صورت تیم توسعه‌ پایتون در پی رفع این نیاز، از بین حفظ گذشته‌ پایتون و پایبندی به فلسفه‌ سادگی آن؛ دومی را انتخاب می‌کند، ویژگی‌های کهنه کنار گذاشته و ویژگی‌های جدید جایگزین می‌گردند.
129129

_build/html/_sources/lessons/l02.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@
143143

144144
.. code::
145145

146-
# default
146+
--- default
147147

148148
$ python --version
149149
Python 2.7.5
@@ -154,7 +154,7 @@
154154

155155
.. code::
156156

157-
# make altinstall
157+
--- make altinstall
158158

159159
$ which python3
160160
/usr/bin/python3
@@ -170,7 +170,7 @@
170170

171171
.. code::
172172

173-
# make install
173+
--- make install
174174

175175
$ which python3
176176
/usr/local/bin/python3
@@ -233,7 +233,7 @@
233233

234234
به عنوان نمونه برای نصب `Bottle <http://bottlepy.org/>`_ که یک وب فریم‌ورک (Web Framework) برای پایتون است از دستور ``pip install bottle`` استفاده می‌گردد. با وارد کردن این دستور، Bottle در PyPI (به عنوان مخزن پیش‌فرض pip) جستجو می‌شود و پس از یافتن، دانلود، سپس نصب و به پایتون افزوده می‌شود (درون دایرکتوری site-packages).
235235

236-
برای کسب دانش بیشتر از چگونگی استفاده‌ی pip به `اسناد آن <http://pip.pypa.io/en/stable/>`_ مراجعه نمایید.
236+
برای کسب دانش بیشتر از چگونگی استفاده‌ pip به `اسناد آن <http://pip.pypa.io/en/stable/>`_ مراجعه نمایید.
237237

238238
pip از زمان انتشار نسخه‌ 3.4 به بسته‌ نصبی پایتون افزوده شده است و به همراه آن نصب می‌شود ولی در صورت نیاز به pip برای نسخه‌های قدیمی‌تر، می‌بایست آن را به صورت جداگانه‌ نصب نمایید.
239239

_build/html/lessons/l01.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,13 +190,13 @@ <h3>تفاوت عملکرد کامپایلر و مفسر<a class="headerlink" hr
190190
<h2>کارایی توسط پایتون<a class="headerlink" href="#id12" title="لینک ثابت به این سر مقاله"></a></h2>
191191
<p>معمولا افراد در مواجه با یادگیری زبان پایتون نگرانی‌هایی در مورد کارایی (Performance) برنامه‌های توسعه یافته با این زبان خواهند داشت به خصوص در جایگاه مقایسه با زبان Java، به هر حال پایتون یک زبان تفسیر‌شده است و در اجرا سرعت کمتری نسبت به زبان‌های کامپایل‌شده مانند C و Java خواهد داشت - برای مقایسه می‌توانید از <a class="reference external" href="http://benchmarksgame.alioth.debian.org/">این صفحه</a> استفاده نمایید - معمولا کارایی بالا برابر با سرعت بالاست ولی قضاوت در مورد کارایی به این سادگی درست نیست!</p>
192192
<p>در هر پروژه‌ای بسته به چیزی که می‌خواهیم می‌بایست انتخاب نماییم. اگر مبنای کارایی برای یک پروژه در سرعت بالای اجرا باشد (مانند برنامه‌های سیستمی)؛‌ زبان C همیشه بهترین انتخاب است ولی اگر مبنا در سرعت بالای توسعه و صرفه جویی در منابع از جمله هزینه باشد انتخاب مناسب پایتون است. گاهی نیز بهترین کارایی با استفاده ترکیبی از زبان‌های متفاوت به دست می‌آید.</p>
193-
<p>در بسیاری از کاربردها سرعت پایتون کاملا قابل قبول است، وجود بایت‌کد‌ موجب افزایش سرعت در اجراهای بعدی برنامه می‌شود، نکات برنامه‌نویسی زیادی برای بهبود سرعت اجرا در پایتون وجود دارد که در این مجموعه به تدریج به آن‌ها اشاره خواهد شد، داشتن الگوریتم بهینه و نوشتن ماژول‌ها به زبان C نقش زیادی در افزایش قابل توجه کارایی پایتون دارد - <a class="reference external" href="http://apenwarr.ca/diary/2011-10-pycodeconf-apenwarr.pdf">پایتون کند است اگر اشتباه استفاده شود</a> - با این وجود در حالت عادی اگر هزار مورد وجود داشته باشد که پایتون برای آن‌ها بهترین انتخاب باشد، سرعت یکی از آن‌ها نخواهد بود و برای توسعه برنامه‌هایی که سرعت اجرا نقش تعیین کننده‌ دارد باید از زبان‌های دیگری استفاده نمایید.</p>
193+
<p>در بسیاری از کاربردها سرعت پایتون کاملا قابل قبول است، وجود بایت‌کد‌ موجب افزایش سرعت در اجراهای بعدی برنامه می‌شود، نکات برنامه‌نویسی زیادی برای بهبود سرعت اجرا در پایتون وجود دارد که در این مجموعه به تدریج به آن‌ها اشاره خواهد شد و داشتن الگوریتم بهینه و نوشتن ماژول‌ها به زبان C موجب افزایش قابل توجه کارایی پایتون می‌شود - <a class="reference external" href="http://apenwarr.ca/diary/2011-10-pycodeconf-apenwarr.pdf">پایتون کند است اگر اشتباه استفاده شود</a> - با این وجود در حالت عادی اگر هزار مورد وجود داشته باشد که پایتون برای آن‌ها بهترین انتخاب باشد، سرعت یکی از آن‌ها نخواهد بود و برای توسعه برنامه‌هایی که سرعت اجرا نقش تعیین کننده‌ دارد باید از زبان‌های دیگری استفاده نمایید.</p>
194194
<p>لازم است به این نکته توجه داشته باشیم که تمام این صحبت‌ها در مورد پیاده‌سازی CPython از زبان پایتون بوده و پیاده‌سازی‌های دیگری نیز از زبان پایتون با هدف سرعت بالای اجرا (به مانند <a class="reference external" href="http://pypy.org/">PyPy</a>) توسعه یافته است.</p>
195195
</div>
196196
<div class="section" id="id16">
197197
<h2>نسخه‌های پایتون<a class="headerlink" href="#id16" title="لینک ثابت به این سر مقاله"></a></h2>
198198
<p>هم اکنون دو شاخه از پایتون به صورت موازی (Parallel) در کنار یکدیگر در دسترس هستند: نسخه‌های 2x و 3x.</p>
199-
<p>در یک سیر تاریخی، نسخه‌ پایدار 2.0 در شانزدهم اکتبر سال ۲۰۰۰ میلادی و در ادامه‌ نسخه 1.6 منتشر (Release) می‌شود؛ پس از آن نیز توسعه‌ پایتون به همان صورت پیشین ادامه می‌یابد تا این که در دسمبر سال ۲۰۰۸ میلادی نسخه‌ای از پایتون با شماره‌ی 3.0 که از آن با عنوان ”Python 3000“ یا ”Py3K“ نیز یاد می‌شود، با رویکرد شکستن «سازگاری با نسخه‌های پیشین» (<a class="reference external" href="http://en.wikipedia.org/wiki/Backward_compatibility">Backward Compatibility</a>) منتشر می‌گردد. به بیان دیگر: مفسر نسخه‌های جدید (3x) پایتون قادر به اجرای سورس کدی که بر پایه‌ مفسر نسخه‌های پیشین تهیه شده است، نخواهد بود. (که این اتفاق در جامعه پایتون بسیار بحث برانگیز بوده و هست!)</p>
199+
<p>در یک سیر تاریخی، نسخه‌ پایدار 2.0 در شانزدهم اکتبر سال ۲۰۰۰ میلادی و در ادامه‌ نسخه 1.6 منتشر (Release) می‌شود؛ پس از آن نیز توسعه‌ پایتون به همان صورت پیشین ادامه می‌یابد تا این که در دسمبر سال ۲۰۰۸ میلادی نسخه‌ای از پایتون با شماره‌ 3.0 که از آن با عنوان ”Python 3000“ یا ”Py3K“ نیز یاد می‌شود، با رویکرد شکستن «سازگاری با نسخه‌های پیشین» (<a class="reference external" href="http://en.wikipedia.org/wiki/Backward_compatibility">Backward Compatibility</a>) منتشر می‌گردد. به بیان دیگر: مفسر نسخه‌های جدید (3x) پایتون قادر به اجرای سورس کدی که بر پایه‌ مفسر نسخه‌های پیشین تهیه شده است، نخواهد بود. (که این اتفاق در جامعه پایتون بسیار بحث برانگیز بوده و هست!)</p>
200200
<p>ظاهرا آقای روسوم خیلی پیش از این زمان نیاز به ایجاد یک سری تغییرات در ساختار و سینتکس این زبان را احساس کرده بود. شاید نخستین نشانه‌ از لزوم ایجاد تغییرات در پایتون را بتوان از صحبت‌های ایشان در همایش متن باز اوریلی (OSCON) سال ۲۰۰۲ با عنوان پشیمانی‌های پایتون (<a class="reference external" href="http://legacy.python.org/doc/essays/ppt/regrets/PythonRegrets.pdf">Python Regrets</a>) دریافت کرد. به هر صورت تیم توسعه‌ پایتون در پی رفع این نیاز، از بین حفظ گذشته‌ پایتون و پایبندی به فلسفه‌ سادگی آن؛ دومی را انتخاب می‌کند، ویژگی‌های کهنه کنار گذاشته و ویژگی‌های جدید جایگزین می‌گردند.</p>
201201
<p>با انتشار یک نسخه‌ جدید به صورت معمول می‌بایست توسعه‌ نسخه‌ قدیمی متوقف شود، ولی از آنجا که زیر‌ساخت شرکت‌های بزرگی به پایتون وابسته بوده (مانند Google) و ارتقا نسخه برای آن‌ها حداقل بسیار زمان‌بر خواهد شد، برنامه‌ها و کتابخانه‌های کوچک و بزرگ بسیار زیادی توسط کاربران جامعه‌ پایتون برای نیاز‌های ریز و کلان گوناگونی توسعه یافته است که سازگار شدن تمام آن‌ها با نسخه‌ جدید پایتون بعید به نظر می‌رسد و از همه مهم‌تر خود برنامه‌نویسان پایتون می‌باشند که پس از سال‌ها اکنون مجبور هستند کارهای دیروز خود را با سینتکس و در مواقعی حتی با کتابخانه و ماژول‌هایی متفاوت به انجام برسانند؛ تیم توسعه‌ پایتون، برای پر کردن شکاف به وجود آمده بین دیروز و امروز پایتون یا به بیانی هموار کردن مسیر مهاجرت به نسخه‌ جدید پایتون،‌ علاوه بر اینکه از پیش سعی کرده بود تا ویژگی‌های جدید و سینتکس نسخه‌ 3.0 را به نسخه‌ 2.6 (که دو ماه زودتر منتشر شده بود) پورت (Port) کند، به توسعه‌ نسخه قدیمی پایان نمی‌دهد و نسخه‌ دیگری را با شماره‌ 2.7 در سوم جولای ۲۰۱۰، تقریبا یک سال پس از انتشار نسخه‌ 3.1 به همراه بسیاری از ویژگی‌های جدید آن منتشر می‌سازد.</p>
202202
<p>بر طبق سند <a class="reference external" href="http://www.python.org/dev/peps/pep-0404">PEP 404</a><sup>13</sup> ، هرگز نسخه‌ای با شماره‌ 2.8 به صورت رسمی منتشر نخواهد شد و نسخه‌ 2.7 با یک پشتیبانی طولانی مدت، نقطه‌ پایان نسخه‌ قدیمی پایتون خواهد بود. ابتدا قرار شد از این نسخه به مدت پنج سال پشتیبانی (تلاش برای رفع باگ‌ها) شود ولی چند ماه پیش، این زمان به ده سال یعنی تا سال ۲۰۲۰ افزایش یافت.</p>

0 commit comments

Comments
 (0)