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: translations/fa-farsi/README.md
+27-20Lines changed: 27 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -869,7 +869,7 @@ for i, some_dict[i] in enumerate(some_string):
869
869
870
870
- عبارت مقداردهی `i = 10` به خاطر نحوه کار کردن حلقهها، هیچوقت باعث تغییر در تکرار حلقه نمیشه. قبل از شروع هر تکرار، مقدار بعدی که توسط شیء قابل تکرار (که در اینجا `range(4)` است) ارائه میشه، از بسته خارج میشه و به متغیرهای لیست هدف (که در اینجا `i` است) مقداردهی میشه.
871
871
872
-
* تابع `enumerate(some_string)`، یک متغیر `i` (که یک شمارنده اقزایشی است) و یک حرف از حروف رشته `some_string` رو در هر تکرار برمیگردونه. و بعدش برای کلید `i` (تازه مقداردهیشده) در دیکشنری `some_dict`، مقدار اون حرف رو تنظیم میکنه. بازشده این حلقه میتونه مانند مثال زیر ساده بشه:
872
+
* تابع `enumerate(some_string)`، یک متغیر `i` (که یک شمارنده افزایشی است) و یک حرف از حروف رشته `some_string` رو در هر تکرار برمیگردونه. و بعدش برای کلید `i` (تازه مقداردهیشده) در دیکشنری `some_dict`، مقدار اون حرف رو تنظیم میکنه. بازشده این حلقه میتونه مانند مثال زیر ساده بشه:
873
873
```py
874
874
>>> i, some_dict[i] = (0, 'w')
875
875
>>> i, some_dict[i] = (1, 't')
@@ -969,10 +969,15 @@ False
969
969
<!-- Example ID: 69329249-bdcb-424f-bd09-cca2e6705a7a --->
970
970
971
971
```py
972
+
972
973
# بیاید یک سطر تشکیل بدیم
974
+
973
975
row = [""] *3#row i['', '', '']
976
+
974
977
# حالا بیاید تخته بازی رو ایجاد کنیم
978
+
975
979
board = [row] *3
980
+
976
981
```
977
982
978
983
**خروجی:**
@@ -1036,7 +1041,7 @@ for x in range(7):
1036
1041
defsome_func():
1037
1042
return x
1038
1043
funcs.append(some_func)
1039
-
results.append(some_func()) #note the function call here
- هیچ کلاس پایه واقعی بین کلاسهای `object` و `type` وجود نداره. سردرگمی که در قطعهکدهای بالا به وجود اومده، به خاطر اینه که ما به این روابط (یعنی `issubclass` و `isinstance`) از دیدگاه کلاسهای پایتون فکر میکنیم. رابطه بین `object` و `type` رو در پایتون خالص نمیشه بازتولید کرد. برای اینکه دقیقتر باشیم، رابطههای زیر در پایتون خالص نمیتونند بازتولید بشن.
1151
1156
+ کلاس A یک نمونه از کلاس B، و کلاس B یک نمونه از کلاس A باشه.
1152
1157
+ کلاس A یک نمونه از خودش باشه.
1153
-
-
1154
1158
- این روابط بین `object` و `type` (که هردو نمونه یکدیگه و همچنین خودشون باشند) به خاطر "تقلب" در مرحله پیادهسازی، وجود دارند.
1155
1159
1156
1160
---
@@ -1289,7 +1293,7 @@ True
1289
1293
1290
1294
چرا این تغییر درست-نادرسته؟
1291
1295
1292
-
#### 💡 Explanation:
1296
+
#### 💡 توضیحات:
1293
1297
1294
1298
- پیادهسازی تابع `all` معادل است با
1295
1299
@@ -1400,7 +1404,7 @@ True
1400
1404
SyntaxError: invalid syntax
1401
1405
```
1402
1406
1403
-
#### 💡 Explanation:
1407
+
#### 💡 توضیح:
1404
1408
1405
1409
* تقدم عملگرها بر نحوهی ارزیابی یک عبارت تأثیر میگذارد، و در پایتون، عملگر `==` تقدم بالاتری نسبت به عملگر `not` دارد.
1406
1410
* بنابراین عبارت `not x == y` معادل `not (x == y)` است که خودش معادل `not (True==False)` بوده و در نهایت به `True` ارزیابی میشود.
+ پایتون از الحاق ضمنی [رشتههای متنی](https://docs.python.org/3/reference/lexical_analysis.html#string-literal-concatenation) پشتیبانی میکند. برای مثال،
1435
+
1431
1436
```
1432
1437
>>> print("wtf" "python")
1433
1438
wtfpython
1434
1439
>>> print("wtf" "") # or "wtf"""
1435
1440
wtf
1436
1441
```
1442
+
1437
1443
+`'''` و `"""` نیز جداکنندههای رشتهای در پایتون هستند که باعث ایجاد SyntaxError میشوند، چون مفسر پایتون هنگام اسکن رشتهای که با سهنقلقول آغاز شده، انتظار یک سهنقلقول پایانی بهعنوان جداکننده را دارد.
- از نسخهی ۳.۸ به بعد، پایتون دیگر اجازهی استفاده از `yield` در داخل درک لیستی را نمیدهد و خطای `SyntaxError` ایجاد خواهد کرد.
1631
1638
1632
1639
---
1633
1640
1634
1641
1635
-
### ◀ Yielding from... return! *
1642
+
### ◀ بازگرداندن با استفاده از `yield from`!
1636
1643
<!-- Example ID: 5626d8ef-8802-49c2-adbc-7cda5c550816 --->
1637
1644
1\.
1638
1645
@@ -1677,7 +1684,7 @@ def some_func(x):
1677
1684
1678
1685
+ از پایتون نسخه ۳.۳ به بعد، امکان استفاده از عبارت `return` همراه با مقدار در داخل ژنراتورها فراهم شد (نگاه کنید به [PEP380](https://www.python.org/dev/peps/pep-0380/)). [مستندات رسمی](https://www.python.org/dev/peps/pep-0380/#enhancements-to-stopiteration) میگویند:
1679
1686
1680
-
> "... `return expr` در یک ژنراتور باعث میشود که هنگام خروج از ژنراتور، `StopIteration(expr)` ایجاد شود."
1687
+
> دلیل: "... `return expr` در یک ژنراتور باعث میشود که هنگام خروج از ژنراتور، `StopIteration(expr)` ایجاد شود."
1681
1688
1682
1689
+ در حالت `some_func(3)`، استثنای `StopIteration` در ابتدای اجرا به دلیل وجود دستور `return` رخ میدهد. این استثنا بهطور خودکار درون پوشش `list(...)` و حلقه `for` گرفته میشود. بنابراین، دو قطعهکد بالا منجر به یک لیست خالی میشوند.
1683
1690
@@ -1752,7 +1759,7 @@ True
1752
1759
1753
1760
#### 💡 توضیح:
1754
1761
1755
-
- `'inf'` و `'nan'` رشتههایی خاص هستند (نسبت به حروف بزرگ و کوچک حساس نیستند) که وقتی بهطور صریح به نوع `float` تبدیل شوند، به ترتیب برای نمایش "بینهایت" ریاضی و "عدد نیست" استفاده میشوند.
1762
+
- در اینجا، `'inf'` و `'nan'` رشتههایی خاص هستند (نسبت به حروف بزرگ و کوچک حساس نیستند) که وقتی بهطور صریح به نوع `float` تبدیل شوند، به ترتیب برای نمایش "بینهایت" ریاضی و "عدد نیست" استفاده میشوند.
1756
1763
1757
1764
- از آنجا که طبق استاندارد IEEE، `NaN != NaN`، پایبندی به این قانون فرض بازتابپذیری (reflexivity) یک عنصر در مجموعهها را در پایتون نقض میکند؛ یعنی اگر `x` عضوی از مجموعهای مثل `list` باشد، پیادهسازیهایی مانند مقایسه، بر اساس این فرض هستند که `x == x`. به دلیل همین فرض، ابتدا هویت (identity) دو عنصر مقایسه میشود (چون سریعتر است) و فقط زمانی مقادیر مقایسه میشوند که هویتها متفاوت باشند. قطعهکد زیر موضوع را روشنتر میکند،
1758
1765
@@ -2244,7 +2251,7 @@ for idx, item in enumerate(list_4):
2244
2251
2245
2252
میتوانید حدس بزنید چرا خروجی `[2, 4]` است؟
2246
2253
2247
-
#### 💡 Explanation:
2254
+
#### 💡 توضیح:
2248
2255
2249
2256
* هیچوقت ایدهی خوبی نیست که شیئی را که روی آن پیمایش میکنید تغییر دهید. روش درست این است که روی یک کپی از آن شیء پیمایش کنید؛ در اینجا `list_3[:]` دقیقاً همین کار را میکند.
0 commit comments