Skip to content

Commit 17046d4

Browse files
committed
Fix some rtl
1 parent 48b0b96 commit 17046d4

1 file changed

Lines changed: 27 additions & 20 deletions

File tree

translations/fa-farsi/README.md

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -869,7 +869,7 @@ for i, some_dict[i] in enumerate(some_string):
869869

870870
- عبارت مقداردهی `i = 10` به خاطر نحوه کار کردن حلقه‌ها، هیچوقت باعث تغییر در تکرار حلقه نمیشه. قبل از شروع هر تکرار، مقدار بعدی که توسط شیء قابل تکرار (که در اینجا `range(4)` است) ارائه میشه، از بسته خارج میشه و به متغیرهای لیست هدف (که در اینجا `i` است) مقداردهی میشه.
871871

872-
* تابع `enumerate(some_string)`، یک متغیر `i` (که یک شمارنده اقزایشی است) و یک حرف از حروف رشته `some_string` رو در هر تکرار برمیگردونه. و بعدش برای کلید `i` (تازه مقداردهی‌شده) در دیکشنری `some_dict`، مقدار اون حرف رو تنظیم می‌کنه. بازشده این حلقه می‌تونه مانند مثال زیر ساده بشه:
872+
* تابع `enumerate(some_string)`، یک متغیر `i` (که یک شمارنده افزایشی است) و یک حرف از حروف رشته `some_string` رو در هر تکرار برمیگردونه. و بعدش برای کلید `i` (تازه مقداردهی‌شده) در دیکشنری `some_dict`، مقدار اون حرف رو تنظیم می‌کنه. بازشده این حلقه می‌تونه مانند مثال زیر ساده بشه:
873873
```py
874874
>>> i, some_dict[i] = (0, 'w')
875875
>>> i, some_dict[i] = (1, 't')
@@ -969,10 +969,15 @@ False
969969
<!-- Example ID: 69329249-bdcb-424f-bd09-cca2e6705a7a --->
970970

971971
```py
972+
972973
# بیاید یک سطر تشکیل بدیم
974+
973975
row = [""] * 3 #row i['', '', '']
976+
974977
# حالا بیاید تخته بازی رو ایجاد کنیم
978+
975979
board = [row] * 3
980+
976981
```
977982

978983
**خروجی:**
@@ -1036,7 +1041,7 @@ for x in range(7):
10361041
def some_func():
10371042
return x
10381043
funcs.append(some_func)
1039-
results.append(some_func()) # note the function call here
1044+
results.append(some_func()) # به فراخوانی تابع دقت کنید.
10401045

10411046
funcs_results = [func() for func in funcs]
10421047
```
@@ -1150,7 +1155,6 @@ False
11501155
- هیچ کلاس پایه واقعی بین کلاس‌های `object` و `type` وجود نداره. سردرگمی که در قطعه‌کدهای بالا به وجود اومده، به خاطر اینه که ما به این روابط (یعنی `issubclass` و `isinstance`) از دیدگاه کلاس‌های پایتون فکر می‌کنیم. رابطه بین `object` و `type` رو در پایتون خالص نمیشه بازتولید کرد. برای اینکه دقیق‌تر باشیم، رابطه‌های زیر در پایتون خالص نمی‌تونند بازتولید بشن.
11511156
+ کلاس A یک نمونه از کلاس B، و کلاس B یک نمونه از کلاس A باشه.
11521157
+ کلاس A یک نمونه از خودش باشه.
1153-
-
11541158
- این روابط بین `object` و `type` (که هردو نمونه یکدیگه و همچنین خودشون باشند) به خاطر "تقلب" در مرحله پیاده‌سازی، وجود دارند.
11551159

11561160
---
@@ -1289,7 +1293,7 @@ True
12891293

12901294
چرا این تغییر درست-نادرسته؟
12911295

1292-
#### 💡 Explanation:
1296+
#### 💡 توضیحات:
12931297

12941298
- پیاده‌سازی تابع `all` معادل است با
12951299

@@ -1400,7 +1404,7 @@ True
14001404
SyntaxError: invalid syntax
14011405
```
14021406

1403-
#### 💡 Explanation:
1407+
#### 💡 توضیح:
14041408

14051409
* تقدم عملگرها بر نحوه‌ی ارزیابی یک عبارت تأثیر می‌گذارد، و در پایتون، عملگر `==` تقدم بالاتری نسبت به عملگر `not` دارد.
14061410
* بنابراین عبارت `not x == y` معادل `not (x == y)` است که خودش معادل `not (True == False)` بوده و در نهایت به `True` ارزیابی می‌شود.
@@ -1417,7 +1421,7 @@ SyntaxError: invalid syntax
14171421
wtfpython
14181422
>>> print("wtfpython""")
14191423
wtfpython
1420-
>>> # The following statements raise `SyntaxError`
1424+
>>> # کد های زیر خطای سینکس دارند.
14211425
>>> # print('''wtfpython')
14221426
>>> # print("""wtfpython")
14231427
File "<input>", line 3
@@ -1428,12 +1432,14 @@ SyntaxError: EOF while scanning triple-quoted string literal
14281432
14291433
#### 💡 توضیح:
14301434
+ پایتون از الحاق ضمنی [رشته‌های متنی](https://docs.python.org/3/reference/lexical_analysis.html#string-literal-concatenation) پشتیبانی می‌کند. برای مثال،
1435+
14311436
```
14321437
>>> print("wtf" "python")
14331438
wtfpython
14341439
>>> print("wtf" "") # or "wtf"""
14351440
wtf
14361441
```
1442+
14371443
+ `'''` و `"""` نیز جداکننده‌های رشته‌ای در پایتون هستند که باعث ایجاد SyntaxError می‌شوند، چون مفسر پایتون هنگام اسکن رشته‌ای که با سه‌نقل‌قول آغاز شده، انتظار یک سه‌نقل‌قول پایانی به‌عنوان جداکننده را دارد.
14381444
14391445
---
@@ -1442,9 +1448,10 @@ SyntaxError: EOF while scanning triple-quoted string literal
14421448
<!-- Example ID: 0bba5fa7-9e6d-4cd2-8b94-952d061af5dd --->
14431449
1\.
14441450
1451+
&#x202b; یک مثال ساده برای شمردن تعداد مقادیر بولی # اعداد صحیح در یک iterable با انواع داده‌ی مخلوط.
1452+
14451453
```py
1446-
# یک مثال ساده برای شمردن تعداد مقادیر بولی و
1447-
# اعداد صحیح در یک iterable با انواع داده‌ی مخلوط.
1454+
14481455
mixed_list = [False, 1.0, "some_string", 3, True, [], False]
14491456
integers_found_so_far = 0
14501457
booleans_found_so_far = 0
@@ -1528,7 +1535,7 @@ I have lost faith in truth!
15281535
15291536
---
15301537
1531-
### ◀ ویژگی‌های کلاس و ویژگی‌های نمونه
1538+
### ◀ متغیرهای کلاس و متغیرهای نمونه
15321539
<!-- Example ID: 6f332208-33bd-482d-8106-42863b739ed9 --->
15331540
1\.
15341541
```py
@@ -1599,7 +1606,7 @@ True
15991606
16001607
---
16011608
1602-
### ◀ yielding None
1609+
### ◀ واگذار کردن None
16031610
<!-- Example ID: 5a40c241-2c30-40d0-8ba9-cf7e097b3b53 --->
16041611
```py
16051612
some_iterable = ('a', 'b')
@@ -1608,7 +1615,7 @@ def some_func(val):
16081615
return "something"
16091616
```
16101617
1611-
**Output (<= 3.7.x):**
1618+
**خروجی (<= 3.7.x):**
16121619
16131620
```py
16141621
>>> [x for x in some_iterable]
@@ -1623,16 +1630,16 @@ def some_func(val):
16231630
['a', 'something', 'b', 'something']
16241631
```
16251632
1626-
#### 💡 Explanation:
1627-
- This is a bug in CPython's handling of `yield` in generators and comprehensions.
1628-
- Source and explanation can be found here: https://stackoverflow.com/questions/32139885/yield-in-list-comprehensions-and-generator-expressions
1629-
- Related bug report: https://bugs.python.org/issue10544
1630-
- Python 3.8+ no longer allows `yield` inside list comprehension and will throw a `SyntaxError`.
1633+
#### 💡 توضیح:
1634+
- این یک باگ در نحوه‌ی مدیریت `yield` توسط CPython در ژنراتورها و درک لیستی (comprehensions) است.
1635+
- منبع و توضیحات را می‌توانید اینجا ببینید: https://stackoverflow.com/questions/32139885/yield-in-list-comprehensions-and-generator-expressions
1636+
- گزارش باگ مرتبط: https://bugs.python.org/issue10544
1637+
- از نسخه‌ی ۳.۸ به بعد، پایتون دیگر اجازه‌ی استفاده از `yield` در داخل درک لیستی را نمی‌دهد و خطای `SyntaxError` ایجاد خواهد کرد.
16311638
16321639
---
16331640
16341641
1635-
### ◀ Yielding from... return! *
1642+
### ◀ بازگرداندن با استفاده از `yield from`!
16361643
<!-- Example ID: 5626d8ef-8802-49c2-adbc-7cda5c550816 --->
16371644
1\.
16381645
@@ -1677,7 +1684,7 @@ def some_func(x):
16771684
16781685
+ از پایتون نسخه ۳.۳ به بعد، امکان استفاده از عبارت `return` همراه با مقدار در داخل ژنراتورها فراهم شد (نگاه کنید به [PEP380](https://www.python.org/dev/peps/pep-0380/)). [مستندات رسمی](https://www.python.org/dev/peps/pep-0380/#enhancements-to-stopiteration) می‌گویند:
16791686
1680-
> "... `return expr` در یک ژنراتور باعث می‌شود که هنگام خروج از ژنراتور، `StopIteration(expr)` ایجاد شود."
1687+
> دلیل: "... `return expr` در یک ژنراتور باعث می‌شود که هنگام خروج از ژنراتور، `StopIteration(expr)` ایجاد شود."
16811688
16821689
+ در حالت `some_func(3)`، استثنای `StopIteration` در ابتدای اجرا به دلیل وجود دستور `return` رخ می‌دهد. این استثنا به‌طور خودکار درون پوشش `list(...)` و حلقه `for` گرفته می‌شود. بنابراین، دو قطعه‌کد بالا منجر به یک لیست خالی می‌شوند.
16831690
@@ -1752,7 +1759,7 @@ True
17521759
17531760
#### 💡 توضیح:
17541761
1755-
- `'inf'` و `'nan'` رشته‌هایی خاص هستند (نسبت به حروف بزرگ و کوچک حساس نیستند) که وقتی به‌طور صریح به نوع `float` تبدیل شوند، به ترتیب برای نمایش "بی‌نهایت" ریاضی و "عدد نیست" استفاده می‌شوند.
1762+
- در اینجا، `'inf'` و `'nan'` رشته‌هایی خاص هستند (نسبت به حروف بزرگ و کوچک حساس نیستند) که وقتی به‌طور صریح به نوع `float` تبدیل شوند، به ترتیب برای نمایش "بی‌نهایت" ریاضی و "عدد نیست" استفاده می‌شوند.
17561763
17571764
- از آنجا که طبق استاندارد IEEE، `NaN != NaN`، پایبندی به این قانون فرض بازتاب‌پذیری (reflexivity) یک عنصر در مجموعه‌ها را در پایتون نقض می‌کند؛ یعنی اگر `x` عضوی از مجموعه‌ای مثل `list` باشد، پیاده‌سازی‌هایی مانند مقایسه، بر اساس این فرض هستند که `x == x`. به دلیل همین فرض، ابتدا هویت (identity) دو عنصر مقایسه می‌شود (چون سریع‌تر است) و فقط زمانی مقادیر مقایسه می‌شوند که هویت‌ها متفاوت باشند. قطعه‌کد زیر موضوع را روشن‌تر می‌کند،
17581765
@@ -2244,7 +2251,7 @@ for idx, item in enumerate(list_4):
22442251
22452252
می‌توانید حدس بزنید چرا خروجی `[2, 4]` است؟
22462253
2247-
#### 💡 Explanation:
2254+
#### 💡 توضیح:
22482255
22492256
* هیچ‌وقت ایده‌ی خوبی نیست که شیئی را که روی آن پیمایش می‌کنید تغییر دهید. روش درست این است که روی یک کپی از آن شیء پیمایش کنید؛ در این‌جا `list_3[:]` دقیقاً همین کار را می‌کند.
22502257

0 commit comments

Comments
 (0)