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: source/lessons/l02-setup-python.rst
+8-2Lines changed: 8 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -85,7 +85,11 @@
85
85
86
86
البته امکان دستکاری Path در هر زمانی وجود دارد:
87
87
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 کلیک نمایید. :)
Copy file name to clipboardExpand all lines: source/lessons/l11-python-standard-library.rst
+6-2Lines changed: 6 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -637,7 +637,9 @@ os.path
637
637
>>>
638
638
639
639
.. note::
640
-
هر مسیر میبایست دقیقا شامل یک کاراکتر جدا کننده دایرکتوری (``os.sep``) باشد در غیر این صورت اجزا فقط از آخرین نمونه به بعد در نظر گرفته میشوند. این اتفاق در توپِل سوم ``('one', 'two', '/three', 'four/')`` از نمونه کد بالا رخ داده است.
640
+
هر مسیر میبایست دقیقا شامل یک کاراکتر جدا کننده دایرکتوری (``os.sep``) باشد در غیر این صورت اجزا فقط از آخرین نمونه به بعد در نظر گرفته میشوند. این اتفاق در توپِل سوم از نمونه کد بالا رخ داده است::
641
+
642
+
('one', 'two', '/three', 'four/')
641
643
642
644
643
645
* ``(os.path.expanduser(path``: این تابع تنها یک پارامتر با ترکیب ``user~`` میپذیرد و کاراکتر ``~`` را به مسیر دایرکتوری کاربر user در سیستم عامل تبدیل میکند [`اسناد پایتون <https://docs.python.org/3/library/os.path.html#os.path.expanduser>`__]::
@@ -713,7 +715,9 @@ os.path
713
715
one\..\one\two\three : one\two\three
714
716
715
717
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>`__]::
Copy file name to clipboardExpand all lines: source/lessons/l12-function-in-python.rst
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -862,7 +862,9 @@
862
862
>>>
863
863
864
864
.. 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)::
Copy file name to clipboardExpand all lines: source/lessons/l13-decorator-generator-and-lambda-with-python-functions.rst
+6-2Lines changed: 6 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -620,7 +620,11 @@ List Comprehensions
620
620
621
621
توجه داشته باشید، چنانچه نتیجه اعمال List Comprehensions در هر نوبت شامل بیش از یک عضو باشد، میبایست مقادیر نتایج در داخل یک پرانتز قرار داده شوند (به صورت یک شی توپِل - tuple).
622
622
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
+
با توجه به این موضوع عبارت زیر از نظر مفسر پایتون نادرست میباشد::
624
628
625
629
>>> [x,y for x in a for y in b]
626
630
File "<stdin>", line 1
@@ -638,7 +642,7 @@ List Comprehensions
638
642
'before'
639
643
640
644
641
-
اکنون List Comprehensions حوزه خود را دارد. [`توضیحات بیشتر <https://stackoverflow.com/a/4199355/8434370>`__]
645
+
اکنون List Comprehensions حوزه خود را دارد، در نتیجه مقدار متغیر خارج از آن بدون تغییر باقی میماند. [`توضیحات بیشتر <https://stackoverflow.com/a/4199355/8434370>`__]
Copy file name to clipboardExpand all lines: source/lessons/l14-recursive-functions-and-memoization-in-python.rst
+17-14Lines changed: 17 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -313,7 +313,11 @@ Function Attributes
313
313
314
314
function_name.attribute_name = attribute_value
315
315
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
+
::
317
321
318
322
>>> setattr(foo, 'name', 'Saeid')
319
323
>>> setattr(foo, 'age', 32)
@@ -328,7 +332,12 @@ Function Attributes
328
332
>>> foo.__dict__
329
333
{'is_done': True, 'name': 'Saeid', 'age': 32}
330
334
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
+
::
332
341
333
342
>>> getattr(foo, 'is_done')
334
343
True
@@ -402,7 +411,12 @@ eval
402
411
>>> eval('math.sin(3.5+x) + 7.2')
403
412
6.494459674429608
404
413
405
-
بر اساس تعریف موجود در اسناد پایتون ``([[eval(object[, globals[, locals``، این تابع شامل دو پارامتر ``globals`` و ``locals`` نیز میشود که ارسال آرگومان به آنها اختیاری است. هر دو از نوع دیکشنری (dict) هستند که Scope یا حوزههای global و local کدی که باید اجرا شود (پارامتر یکم تابع) را ارايه میدهند::
414
+
بر اساس تعریف موجود در اسناد پایتون ``eval``، این تابع شامل دو پارامتر ``globals`` و ``locals`` نیز میشود که ارسال آرگومان به آنها اختیاری است. هر دو از نوع دیکشنری (dict) هستند که Scope یا حوزههای global و local کدی که باید اجرا شود (پارامتر یکم تابع) را ارايه میدهند::
``exec`` در پایتون نسخه 2x به صورت تابع تعریف نشده است و به صورت یک دستور به کار میرود [`اسناد پایتون <https://docs.python.org/2.7/reference/simple_stmts.html#exec>`__]::
Copy file name to clipboardExpand all lines: source/lessons/l15-regular-expression-in-python.rst
+8-2Lines changed: 8 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -628,7 +628,9 @@
628
628
629
629
630
630
.. tip::
631
-
میتوان با استفاده از کاراکتر ``|`` در زمان ارسال آرگومان به flags، همزمان چندین مقدار را تنظیم نمود. به مانند: ``re.compile(pattern, re.I | re.M)``
631
+
میتوان با استفاده از کاراکتر ``|`` در زمان ارسال آرگومان به flags، همزمان چندین مقدار را تنظیم نمود. به مانند::
632
+
633
+
re.compile(pattern, re.I | re.M)
632
634
633
635
634
636
پارامتر flags میتواند مقادیر دیگری نیز بپذیرد که برای مطالعه بیشتر میتوانید به مستندات پایتون مراجعه نمایید.
@@ -899,7 +901,11 @@
899
901
معکوس حالت قبل است. به این معنی که انطباق یک متن منوط به عدم برقرای شرط (انطباق) **قبل** از آن است. آن بخشی از الگو که بعد از این ساختار قرار دارد، تنها زمانی انطباق داده میشود که این ساختار منطبق **نباشد**.
این ساختار نیز نوعی شرط گذاری است. به این صورت که میتوان تعیین کرد بر اساس وضعیت انطباق گروهبندیهای موجود (با ذکر نام گروه یا شماره اندیس آن) در الگو، یکی از الگوهای بله (yes-pattern) یا خیر (no-pattern) این ساختار بررسی شود::
0 commit comments