Skip to content

Commit 1c1f822

Browse files
author
Saeid Darvish
committed
fixed code blocks
1 parent 88bd76e commit 1c1f822

11 files changed

+130
-48
lines changed

source/lessons/l02-setup-python.rst

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,11 @@
8585
8686
البته امکان دستکاری Path در هر زمانی وجود دارد:
8787

88-
مسیر Control Panel > System > Advanced system settings > Advanced را طی کرده و سپس با کلیک بر روی Environment Variables پنجره‌ جدیدی باز می‌گردد که در قسمت System variables آن Path را پیدا و انتخاب نمایید. بر روی Edit در پایین همان پنجره کلیک کرده و عبارت ``;C:\Python34;C:\Python34\Scripts`` (برای نسخه 3.4) را به ابتدای متن موجود در قسمت Variable value پنجره‌ جدید وارد و سپس بر روی دکمه‌ OK کلیک نمایید. :)
88+
مسیر Control Panel > System > Advanced system settings > Advanced را طی کرده و سپس با کلیک بر روی Environment Variables پنجره‌ جدیدی باز می‌گردد که در قسمت System variables آن Path را پیدا و انتخاب نمایید. بر روی Edit در پایین همان پنجره کلیک کرده و عبارت زیر (برای نسخه 3.4) را به ابتدای متن موجود در قسمت Variable value پنجره‌ جدید وارد و سپس بر روی دکمه‌ OK کلیک نمایید. :)
89+
90+
::
91+
92+
C:\Python34;C:\Python34\Scripts;
8993

9094

9195
.. image:: /_static/lessons/l02-add-path-on-windows.png
@@ -352,7 +356,9 @@ pip از زمان انتشار نسخه‌ 3.4 به بسته‌ نصبی پای
352356

353357
برای بروز رسانی خود pip نیز از همین الگو استفاده می‌شود: ``pip install --upgrade pip``
354358

355-
البته در ویندوز می‌بایست از دستور ``python -m pip install -U pip`` استفاده نمایید.
359+
البته در ویندوز می‌بایست از دستور زیر استفاده نمایید::
360+
361+
python -m pip install -U pip
356362

357363
به جای ``upgrade--`` می توانید از ``U-`` نیز استفاده نمایید.
358364

source/lessons/l03-create-and-run-a-python-project.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,9 +224,9 @@
224224

225225
.. admonition:: تمرین
226226

227-
یک اسکریپت پایتون ایجاد کنید که نام و سن شما را تنها با یکبار استفاده از تابع ``()print`` به صورت پایین بر روی خروجی نمایش دهد:
227+
یک اسکریپت پایتون ایجاد کنید که نام و سن شما را تنها با یکبار استفاده از تابع ``()print`` به صورت پایین بر روی خروجی نمایش دهد::
228228
229-
``Name: Hideyoshi Nagachika - Age: 19``
229+
Name: Hideyoshi Nagachika - Age: 19
230230

231231
** حالت‌های مختلفی که می‌توان به این ساختار از خروجی رسید را امتحان نمایید (ورودی‌های متفاوت)
232232

source/lessons/l04-python-interactive-mode.rst

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -543,11 +543,15 @@
543543

544544
نمونه دستور اجرای اسکریپت:
545545

546-
``python script.py "Hideyoshi Nagachika" 19``
546+
::
547+
548+
python script.py "Hideyoshi Nagachika" 19
547549

548550
نمونه خروجی اسکریپت:
549551

550-
``Name: Hideyoshi Nagachika - Age: 19``
552+
::
553+
554+
Name: Hideyoshi Nagachika - Age: 19
551555

552556

553557
.. _lesson-04-footer:

source/lessons/l11-python-standard-library.rst

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -637,7 +637,9 @@ os.path
637637
>>>
638638

639639
.. note::
640-
هر مسیر می‌بایست دقیقا شامل یک کاراکتر جدا کننده دایرکتوری (``os.sep``) باشد در غیر این صورت اجزا فقط از آخرین نمونه به بعد در نظر گرفته می‌شوند. این اتفاق در توپِل سوم ``('one', 'two', '/three', 'four/')`` از نمونه کد بالا رخ داده است.
640+
هر مسیر می‌بایست دقیقا شامل یک کاراکتر جدا کننده دایرکتوری (``os.sep``) باشد در غیر این صورت اجزا فقط از آخرین نمونه به بعد در نظر گرفته می‌شوند. این اتفاق در توپِل سوم از نمونه کد بالا رخ داده است::
641+
642+
('one', 'two', '/three', 'four/')
641643

642644

643645
* ``(os.path.expanduser(path``: این تابع تنها یک پارامتر با ترکیب ``user~`` می‌پذیرد و کاراکتر ``~`` را به مسیر دایرکتوری کاربر user در سیستم عامل تبدیل می‌کند [`اسناد پایتون <https://docs.python.org/3/library/os.path.html#os.path.expanduser>`__]::
@@ -713,7 +715,9 @@ os.path
713715
one\..\one\two\three : one\two\three
714716

715717

716-
* ``(os.path.abspath(path``: مسیر نسبی را نرمال‌سازی کرده و به مسیر مطلق (Absolute - مسیری از ابتدا یا همان روت سیستم فایل - در گنولینوکس: مسیری که با ``/`` شروع شده باشد - در ویندوز: مسیری که با نام یک درایو شروع شده باشد) تبدیل می‌کند. حاصل این تابع برابر با حاصل ``(os.path.normpath(os.path.join(os.getcwd(), path)`` می‌باشد. [`اسناد پایتون <https://docs.python.org/3/library/os.path.html#os.path.abspath>`__]:
718+
* ``(os.path.abspath(path``: مسیر نسبی را نرمال‌سازی کرده و به مسیر مطلق (Absolute - مسیری از ابتدا یا همان روت سیستم فایل - در گنولینوکس: مسیری که با ``/`` شروع شده باشد - در ویندوز: مسیری که با نام یک درایو شروع شده باشد) تبدیل می‌کند. حاصل این تابع برابر با حاصل متد پایین می‌باشد. [`اسناد پایتون <https://docs.python.org/3/library/os.path.html#os.path.abspath>`__]::
719+
720+
(os.path.normpath(os.path.join(os.getcwd(), path)
717721

718722

719723
.. code:: python

source/lessons/l12-function-in-python.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -862,7 +862,9 @@
862862
>>>
863863

864864
.. tip::
865-
با توضیحات ارائه شده، در یک تابع با سرآیندی همچون ``def f(a, b, /, c, d, *, e, f)`` ارسال آرگومان برای دو پارامتر ``a`` و ``b`` به روش نام=مقدار ممنوع است (positional-only) و ارسال آرگومان برای دو پارامتر ``c`` و ``d`` می‌تواند با استفاده از هر دو روش نام=مقدار یا موقعیت باشد (positional or keyword) و همچنین ارسال آرگومان برای دو پارامتر ``e`` و ``f`` تنها با روش مقدار=نام مجاز خواهد بود (keyword-only).
865+
با توضیحات ارائه شده، در یک تابع با سرآیندی همچون نمونه پایین ارسال آرگومان برای دو پارامتر ``a`` و ``b`` به روش نام=مقدار ممنوع است (positional-only) و ارسال آرگومان برای دو پارامتر ``c`` و ``d`` می‌تواند با استفاده از هر دو روش نام=مقدار یا موقعیت باشد (positional or keyword) و همچنین ارسال آرگومان برای دو پارامتر ``e`` و ``f`` تنها با روش مقدار=نام مجاز خواهد بود (keyword-only)::
866+
867+
def f(a, b, /, c, d, *, e, f)
866868

867869

868870
|

source/lessons/l13-decorator-generator-and-lambda-with-python-functions.rst

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -620,7 +620,11 @@ List Comprehensions
620620

621621
توجه داشته باشید، چنانچه نتیجه اعمال List Comprehensions در هر نوبت شامل بیش از یک عضو باشد، می‌بایست مقادیر نتایج در داخل یک پرانتز قرار داده شوند (به صورت یک شی توپِل - tuple).
622622

623-
به نمونه ``[x,y) for x in a for y in b if x > 0)]`` و خروجی آن توجه نمایید. با توجه به این موضوع عبارت زیر از نظر مفسر پایتون نادرست می‌باشد::
623+
مانند::
624+
625+
[(x,y) for x in a for y in b if x > 0]
626+
627+
با توجه به این موضوع عبارت زیر از نظر مفسر پایتون نادرست می‌باشد::
624628

625629
>>> [x,y for x in a for y in b]
626630
File "<stdin>", line 1
@@ -638,7 +642,7 @@ List Comprehensions
638642
'before'
639643

640644

641-
اکنون List Comprehensions حوزه خود را دارد. [`توضیحات بیشتر <https://stackoverflow.com/a/4199355/8434370>`__]
645+
اکنون List Comprehensions حوزه خود را دارد، در نتیجه مقدار متغیر خارج از آن بدون تغییر باقی می‌ماند. [`توضیحات بیشتر <https://stackoverflow.com/a/4199355/8434370>`__]
642646

643647

644648

source/lessons/l14-recursive-functions-and-memoization-in-python.rst

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,11 @@ Function Attributes
313313

314314
function_name.attribute_name = attribute_value
315315

316-
همچنین برای این منظور می‌توان از تابع آماده ``(setattr(object, name, value`` استفاده کرد [`اسناد پایتون <https://docs.python.org/3/library/functions.html#setattr>`__]. این تابع سه آرگومان دریافت می‌کند؛ شی‌ای که می‌خواهید یک Attribute به آن اضافه کنید (در اینجا تابع)، نام (از نوع رشته - string) و مقدار Attribute مورد نظر::
316+
همچنین برای این منظور می‌توان از تابع آماده ``setattr`` استفاده کرد [`اسناد پایتون <https://docs.python.org/3/library/functions.html#setattr>`__]. این تابع سه آرگومان دریافت می‌کند؛ شی‌ای که می‌خواهید یک Attribute به آن اضافه کنید (در اینجا تابع)، نام (از نوع رشته - string) و مقدار Attribute مورد نظر::
317+
318+
setattr(object, name, value)
319+
320+
::
317321

318322
>>> setattr(foo, 'name', 'Saeid')
319323
>>> setattr(foo, 'age', 32)
@@ -328,7 +332,12 @@ Function Attributes
328332
>>> foo.__dict__
329333
{'is_done': True, 'name': 'Saeid', 'age': 32}
330334

331-
برای دریافت مقدار یک Attribute مشخص می‌توانید از تابع آماده ``([getattr(object, name[, default`` نیز استفاده کرد [`اسناد پایتون <https://docs.python.org/3/library/functions.html#getattr>`__]. این تابع دو پارامتر اجباری (``object`` و ``name``) و یک پارامتر اختیاری (``default``) دارد. در صورتی که شی مورد نظر (در اینجا تابع) فاقد صفت مورد نظر باشد مقدار default (در صورت ارسال) برگردانده خواهد شد::
335+
برای دریافت مقدار یک Attribute مشخص می‌توانید از تابع آماده ``getattr`` نیز استفاده کرد [`اسناد پایتون <https://docs.python.org/3/library/functions.html#getattr>`__]. این تابع دو پارامتر اجباری (``object`` و ``name``) و یک پارامتر اختیاری (``default``) دارد. در صورتی که شی مورد نظر (در اینجا تابع) فاقد صفت مورد نظر باشد مقدار default (در صورت ارسال) برگردانده خواهد شد::
336+
337+
338+
getattr(object, name[, default])
339+
340+
::
332341

333342
>>> getattr(foo, 'is_done')
334343
True
@@ -402,7 +411,12 @@ eval
402411
>>> eval('math.sin(3.5+x) + 7.2')
403412
6.494459674429608
404413

405-
بر اساس تعریف موجود در اسناد پایتون ``([[eval(object[, globals[, locals``، این تابع شامل دو پارامتر ``globals`` و ``locals`` نیز می‌شود که ارسال آرگومان به آن‌ها اختیاری است. هر دو از نوع دیکشنری (dict) هستند که Scope یا حوزه‌های global و local کدی که باید اجرا شود (پارامتر یکم تابع) را ارايه می‌دهند::
414+
بر اساس تعریف موجود در اسناد پایتون ``eval``، این تابع شامل دو پارامتر ``globals`` و ``locals`` نیز می‌شود که ارسال آرگومان به آن‌ها اختیاری است. هر دو از نوع دیکشنری (dict) هستند که Scope یا حوزه‌های global و local کدی که باید اجرا شود (پارامتر یکم تابع) را ارايه می‌دهند::
415+
416+
417+
eval(object[, globals[, locals]])
418+
419+
::
406420

407421
>>> globals_env = {'x': 7, 'y': 10, 'birds': ['Parrot', 'Swallow', 'Albatross']}
408422
>>> locals_env = {}
@@ -432,11 +446,6 @@ exec
432446
3
433447
4
434448

435-
.. note::
436-
``exec`` در پایتون نسخه 2x به صورت تابع تعریف نشده است و به صورت یک دستور به کار می‌رود [`اسناد پایتون <https://docs.python.org/2.7/reference/simple_stmts.html#exec>`__]::
437-
438-
>>> exec 'import math; x=2; print(math.sin(3.5+x) + 7.2)'
439-
6.49445967443
440449

441450
این تابع همانند ``eval`` شامل دو پارامتر ``globals`` و ``locals`` نیز می‌شود::
442451

@@ -449,12 +458,6 @@ exec
449458
Swallow
450459
Albatross
451460

452-
که البته در نسخه‌های 2x از سینتکس ``[[exec code[ in globals[,locals`` پیروی می‌شود::
453-
454-
>>> exec "for b in birds: print b" in globals_env, locals_env
455-
Parrot
456-
Swallow
457-
Albatross
458461

459462

460463
compile

source/lessons/l15-regular-expression-in-python.rst

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -628,7 +628,9 @@
628628

629629

630630
.. tip::
631-
می‌توان با استفاده از کاراکتر ``|`` در زمان ارسال آرگومان به flags، همزمان چندین مقدار را تنظیم نمود. به مانند: ``re.compile(pattern, re.I | re.M)``
631+
می‌توان با استفاده از کاراکتر ``|`` در زمان ارسال آرگومان به flags، همزمان چندین مقدار را تنظیم نمود. به مانند::
632+
633+
re.compile(pattern, re.I | re.M)
632634

633635

634636
پارامتر flags می‌تواند مقادیر دیگری نیز بپذیرد که برای مطالعه بیشتر می‌توانید به مستندات پایتون مراجعه نمایید.
@@ -899,7 +901,11 @@
899901
معکوس حالت قبل است. به این معنی که انطباق یک متن منوط به عدم برقرای شرط (انطباق) **قبل** از آن است. آن بخشی از الگو که بعد از این ساختار قرار دارد، تنها زمانی انطباق داده می‌شود که این ساختار منطبق **نباشد**.
900902

901903

902-
* Yes/No Pattern ``(?(id/name)yes-pattern|no-pattern)``
904+
* Yes/No Pattern
905+
906+
::
907+
908+
(?(id/name)yes-pattern|no-pattern)
903909

904910
این ساختار نیز نوعی شرط گذاری است. به این صورت که می‌توان تعیین کرد بر اساس وضعیت انطباق گروه‌بندی‌های موجود (با ذکر نام گروه یا شماره اندیس آن) در الگو، یکی از الگوهای بله (yes-pattern) یا خیر (no-pattern) این ساختار بررسی شود::
905911

0 commit comments

Comments
 (0)