You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _build/html/_sources/lessons/l01.txt
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -115,15 +115,15 @@ CPython (سیپایتون) پیادهسازی استاندارد و اصل
115
115
116
116
در هر پروژهای بسته به چیزی که میخواهیم میبایست انتخاب نماییم. اگر مبنای کارایی برای یک پروژه در سرعت بالای اجرا باشد (مانند برنامههای سیستمی)؛ زبان C همیشه بهترین انتخاب است ولی اگر مبنا در سرعت بالای توسعه و صرفه جویی در منابع از جمله هزینه باشد انتخاب مناسب پایتون است. گاهی نیز بهترین کارایی با استفاده ترکیبی از زبانهای متفاوت به دست میآید.
117
117
118
-
در بسیاری از کاربردها سرعت پایتون کاملا قابل قبول است، وجود بایتکد موجب افزایش سرعت در اجراهای بعدی برنامه میشود، نکات برنامهنویسی زیادی برای بهبود سرعت اجرا در پایتون وجود دارد که در این مجموعه به تدریج به آنها اشاره خواهد شد، داشتن الگوریتم بهینه و نوشتن ماژولها به زبان C نقش زیادی در افزایش قابل توجه کارایی پایتون دارد - `پایتون کند است اگر اشتباه استفاده شود <http://apenwarr.ca/diary/2011-10-pycodeconf-apenwarr.pdf>`_ - با این وجود در حالت عادی اگر هزار مورد وجود داشته باشد که پایتون برای آنها بهترین انتخاب باشد، سرعت یکی از آنها نخواهد بود و برای توسعه برنامههایی که سرعت اجرا نقش تعیین کننده دارد باید از زبانهای دیگری استفاده نمایید.
118
+
در بسیاری از کاربردها سرعت پایتون کاملا قابل قبول است، وجود بایتکد موجب افزایش سرعت در اجراهای بعدی برنامه میشود، نکات برنامهنویسی زیادی برای بهبود سرعت اجرا در پایتون وجود دارد که در این مجموعه به تدریج به آنها اشاره خواهد شد و داشتن الگوریتم بهینه و نوشتن ماژولها به زبان C موجب افزایش قابل توجه کارایی پایتون میشود - `پایتون کند است اگر اشتباه استفاده شود <http://apenwarr.ca/diary/2011-10-pycodeconf-apenwarr.pdf>`_ - با این وجود در حالت عادی اگر هزار مورد وجود داشته باشد که پایتون برای آنها بهترین انتخاب باشد، سرعت یکی از آنها نخواهد بود و برای توسعه برنامههایی که سرعت اجرا نقش تعیین کننده دارد باید از زبانهای دیگری استفاده نمایید.
119
119
120
120
لازم است به این نکته توجه داشته باشیم که تمام این صحبتها در مورد پیادهسازی CPython از زبان پایتون بوده و پیادهسازیهای دیگری نیز از زبان پایتون با هدف سرعت بالای اجرا (به مانند `PyPy <http://pypy.org/>`_) توسعه یافته است.
121
121
122
122
نسخههای پایتون
123
123
----------------
124
124
هم اکنون دو شاخه از پایتون به صورت موازی (Parallel) در کنار یکدیگر در دسترس هستند: نسخههای 2x و 3x.
125
125
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) پایتون قادر به اجرای سورس کدی که بر پایه مفسر نسخههای پیشین تهیه شده است، نخواهد بود. (که این اتفاق در جامعه پایتون بسیار بحث برانگیز بوده و هست!)
127
127
128
128
ظاهرا آقای روسوم خیلی پیش از این زمان نیاز به ایجاد یک سری تغییرات در ساختار و سینتکس این زبان را احساس کرده بود. شاید نخستین نشانه از لزوم ایجاد تغییرات در پایتون را بتوان از صحبتهای ایشان در همایش متن باز اوریلی (OSCON) سال ۲۰۰۲ با عنوان پشیمانیهای پایتون (`Python Regrets <http://legacy.python.org/doc/essays/ppt/regrets/PythonRegrets.pdf>`_) دریافت کرد. به هر صورت تیم توسعه پایتون در پی رفع این نیاز، از بین حفظ گذشته پایتون و پایبندی به فلسفه سادگی آن؛ دومی را انتخاب میکند، ویژگیهای کهنه کنار گذاشته و ویژگیهای جدید جایگزین میگردند.
Copy file name to clipboardExpand all lines: _build/html/_sources/lessons/l02.txt
+4-4Lines changed: 4 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -143,7 +143,7 @@
143
143
144
144
.. code::
145
145
146
-
# default
146
+
--- default
147
147
148
148
$ python --version
149
149
Python 2.7.5
@@ -154,7 +154,7 @@
154
154
155
155
.. code::
156
156
157
-
# make altinstall
157
+
--- make altinstall
158
158
159
159
$ which python3
160
160
/usr/bin/python3
@@ -170,7 +170,7 @@
170
170
171
171
.. code::
172
172
173
-
# make install
173
+
--- make install
174
174
175
175
$ which python3
176
176
/usr/local/bin/python3
@@ -233,7 +233,7 @@
233
233
234
234
به عنوان نمونه برای نصب `Bottle <http://bottlepy.org/>`_ که یک وب فریمورک (Web Framework) برای پایتون است از دستور ``pip install bottle`` استفاده میگردد. با وارد کردن این دستور، Bottle در PyPI (به عنوان مخزن پیشفرض pip) جستجو میشود و پس از یافتن، دانلود، سپس نصب و به پایتون افزوده میشود (درون دایرکتوری site-packages).
235
235
236
-
برای کسب دانش بیشتر از چگونگی استفادهی pip به `اسناد آن <http://pip.pypa.io/en/stable/>`_ مراجعه نمایید.
236
+
برای کسب دانش بیشتر از چگونگی استفاده pip به `اسناد آن <http://pip.pypa.io/en/stable/>`_ مراجعه نمایید.
237
237
238
238
pip از زمان انتشار نسخه 3.4 به بسته نصبی پایتون افزوده شده است و به همراه آن نصب میشود ولی در صورت نیاز به pip برای نسخههای قدیمیتر، میبایست آن را به صورت جداگانه نصب نمایید.
<h2>کارایی توسط پایتون<aclass="headerlink" href="#id12" title="لینک ثابت به این سر مقاله">¶</a></h2>
191
191
<p>معمولا افراد در مواجه با یادگیری زبان پایتون نگرانیهایی در مورد کارایی (Performance) برنامههای توسعه یافته با این زبان خواهند داشت به خصوص در جایگاه مقایسه با زبان Java، به هر حال پایتون یک زبان تفسیرشده است و در اجرا سرعت کمتری نسبت به زبانهای کامپایلشده مانند C و Java خواهد داشت - برای مقایسه میتوانید از <aclass="reference external" href="http://benchmarksgame.alioth.debian.org/">این صفحه</a> استفاده نمایید - معمولا کارایی بالا برابر با سرعت بالاست ولی قضاوت در مورد کارایی به این سادگی درست نیست!</p>
192
192
<p>در هر پروژهای بسته به چیزی که میخواهیم میبایست انتخاب نماییم. اگر مبنای کارایی برای یک پروژه در سرعت بالای اجرا باشد (مانند برنامههای سیستمی)؛ زبان C همیشه بهترین انتخاب است ولی اگر مبنا در سرعت بالای توسعه و صرفه جویی در منابع از جمله هزینه باشد انتخاب مناسب پایتون است. گاهی نیز بهترین کارایی با استفاده ترکیبی از زبانهای متفاوت به دست میآید.</p>
193
-
<p>در بسیاری از کاربردها سرعت پایتون کاملا قابل قبول است، وجود بایتکد موجب افزایش سرعت در اجراهای بعدی برنامه میشود، نکات برنامهنویسی زیادی برای بهبود سرعت اجرا در پایتون وجود دارد که در این مجموعه به تدریج به آنها اشاره خواهد شد، داشتن الگوریتم بهینه و نوشتن ماژولها به زبان C نقش زیادی در افزایش قابل توجه کارایی پایتون دارد - <aclass="reference external" href="http://apenwarr.ca/diary/2011-10-pycodeconf-apenwarr.pdf">پایتون کند است اگر اشتباه استفاده شود</a> - با این وجود در حالت عادی اگر هزار مورد وجود داشته باشد که پایتون برای آنها بهترین انتخاب باشد، سرعت یکی از آنها نخواهد بود و برای توسعه برنامههایی که سرعت اجرا نقش تعیین کننده دارد باید از زبانهای دیگری استفاده نمایید.</p>
193
+
<p>در بسیاری از کاربردها سرعت پایتون کاملا قابل قبول است، وجود بایتکد موجب افزایش سرعت در اجراهای بعدی برنامه میشود، نکات برنامهنویسی زیادی برای بهبود سرعت اجرا در پایتون وجود دارد که در این مجموعه به تدریج به آنها اشاره خواهد شد و داشتن الگوریتم بهینه و نوشتن ماژولها به زبان C موجب افزایش قابل توجه کارایی پایتون میشود - <aclass="reference external" href="http://apenwarr.ca/diary/2011-10-pycodeconf-apenwarr.pdf">پایتون کند است اگر اشتباه استفاده شود</a> - با این وجود در حالت عادی اگر هزار مورد وجود داشته باشد که پایتون برای آنها بهترین انتخاب باشد، سرعت یکی از آنها نخواهد بود و برای توسعه برنامههایی که سرعت اجرا نقش تعیین کننده دارد باید از زبانهای دیگری استفاده نمایید.</p>
194
194
<p>لازم است به این نکته توجه داشته باشیم که تمام این صحبتها در مورد پیادهسازی CPython از زبان پایتون بوده و پیادهسازیهای دیگری نیز از زبان پایتون با هدف سرعت بالای اجرا (به مانند <aclass="reference external" href="http://pypy.org/">PyPy</a>) توسعه یافته است.</p>
195
195
</div>
196
196
<divclass="section" id="id16">
197
197
<h2>نسخههای پایتون<aclass="headerlink" href="#id16" title="لینک ثابت به این سر مقاله">¶</a></h2>
198
198
<p>هم اکنون دو شاخه از پایتون به صورت موازی (Parallel) در کنار یکدیگر در دسترس هستند: نسخههای 2x و 3x.</p>
199
-
<p>در یک سیر تاریخی، نسخه پایدار 2.0 در شانزدهم اکتبر سال ۲۰۰۰ میلادی و در ادامه نسخه 1.6 منتشر (Release) میشود؛ پس از آن نیز توسعه پایتون به همان صورت پیشین ادامه مییابد تا این که در دسمبر سال ۲۰۰۸ میلادی نسخهای از پایتون با شمارهی 3.0 که از آن با عنوان ”Python 3000“ یا ”Py3K“ نیز یاد میشود، با رویکرد شکستن «سازگاری با نسخههای پیشین» (<aclass="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“ نیز یاد میشود، با رویکرد شکستن «سازگاری با نسخههای پیشین» (<aclass="reference external" href="http://en.wikipedia.org/wiki/Backward_compatibility">Backward Compatibility</a>) منتشر میگردد. به بیان دیگر: مفسر نسخههای جدید (3x) پایتون قادر به اجرای سورس کدی که بر پایه مفسر نسخههای پیشین تهیه شده است، نخواهد بود. (که این اتفاق در جامعه پایتون بسیار بحث برانگیز بوده و هست!)</p>
200
200
<p>ظاهرا آقای روسوم خیلی پیش از این زمان نیاز به ایجاد یک سری تغییرات در ساختار و سینتکس این زبان را احساس کرده بود. شاید نخستین نشانه از لزوم ایجاد تغییرات در پایتون را بتوان از صحبتهای ایشان در همایش متن باز اوریلی (OSCON) سال ۲۰۰۲ با عنوان پشیمانیهای پایتون (<aclass="reference external" href="http://legacy.python.org/doc/essays/ppt/regrets/PythonRegrets.pdf">Python Regrets</a>) دریافت کرد. به هر صورت تیم توسعه پایتون در پی رفع این نیاز، از بین حفظ گذشته پایتون و پایبندی به فلسفه سادگی آن؛ دومی را انتخاب میکند، ویژگیهای کهنه کنار گذاشته و ویژگیهای جدید جایگزین میگردند.</p>
201
201
<p>با انتشار یک نسخه جدید به صورت معمول میبایست توسعه نسخه قدیمی متوقف شود، ولی از آنجا که زیرساخت شرکتهای بزرگی به پایتون وابسته بوده (مانند Google) و ارتقا نسخه برای آنها حداقل بسیار زمانبر خواهد شد، برنامهها و کتابخانههای کوچک و بزرگ بسیار زیادی توسط کاربران جامعه پایتون برای نیازهای ریز و کلان گوناگونی توسعه یافته است که سازگار شدن تمام آنها با نسخه جدید پایتون بعید به نظر میرسد و از همه مهمتر خود برنامهنویسان پایتون میباشند که پس از سالها اکنون مجبور هستند کارهای دیروز خود را با سینتکس و در مواقعی حتی با کتابخانه و ماژولهایی متفاوت به انجام برسانند؛ تیم توسعه پایتون، برای پر کردن شکاف به وجود آمده بین دیروز و امروز پایتون یا به بیانی هموار کردن مسیر مهاجرت به نسخه جدید پایتون، علاوه بر اینکه از پیش سعی کرده بود تا ویژگیهای جدید و سینتکس نسخه 3.0 را به نسخه 2.6 (که دو ماه زودتر منتشر شده بود) پورت (Port) کند، به توسعه نسخه قدیمی پایان نمیدهد و نسخه دیگری را با شماره 2.7 در سوم جولای ۲۰۱۰، تقریبا یک سال پس از انتشار نسخه 3.1 به همراه بسیاری از ویژگیهای جدید آن منتشر میسازد.</p>
202
202
<p>بر طبق سند <aclass="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