1
0
mirror of https://github.com/satwikkansal/wtfpython synced 2025-05-19 18:53:46 +02:00

Update Farsi translations by replacing bullet indicators with arrow indicators in the README.md file.

This commit is contained in:
Leo Alavi 2025-04-05 21:48:15 +02:00
parent 2bd726ba98
commit ebe443e0af

View File

@ -44,73 +44,73 @@
- [استفاده](#استفاده)
- [👀 مثالها](#-مثالها)
- [بخش: ذهن خود را به چالش بکشید!](#بخش-ذهن-خود-را-به-چالش-بکشید)
- [ اول از همه! \*](#-اول-از-همه-)
- [ بعضی وقتها رشتهها میتوانند دردسرساز شوند](#-بعضی-وقتها-رشتهها-میتوانند-دردسرساز-شوند)
- [ مراقب عملیاتهای زنجیرهای باشید](#-مراقب-عملیاتهای-زنجیرهای-باشید)
- [ چطور از عملگر `is` استفاده نکنیم](#-چطور-از-عملگر-is-استفاده-نکنیم)
- [ کلیدهای هش](#-کلیدهای-هش)
- [ در عمق وجود همه ما یکسان هستیم](#-در-عمق-وجود-همه-ما-یکسان-هستیم)
- [ بینظمی در خود نظم \*](#-بینظمی-در-خود-نظم-)
- [ تلاش کن... \*](#-تلاش-کن-)
- [ برای چی؟](#-برای-چی)
- [ اختلاف زمانی در محاسبه](#-اختلاف-زمانی-در-محاسبه)
- [ هر گردی، گردو نیست](#-هر-گردی-گردو-نیست)
- [ یک بازی دوز که توش X همون اول برنده میشه!](#-یک-بازی-دوز-که-توش-X-همون-اول-برنده-میشه)
- [ متغیر شرودینگر \*](#-متغیر-شرودینگر-)
- [ اول مرغ بوده یا تخم مرغ؟ \*](#-اول-مرغ-بوده-یا-تخم-مرغ-)
- [ روابط بین زیرمجموعه کلاسها](#-روابط-بین-زیرمجموعه-کلاسها)
- [ برابری و هویت متدها](#--برابری-و-هویت-متدها)
- [ آل-ترو-یشن \*](#--آل-ترو-یشن-)
- [ رشتهها و بکاسلشها](#--رشتهها-و-بکاسلشها)
- [ گره نیست، نَه!](#--گره-نیست-نَه)
- [ رشتههای نیمه سهنقلقولی](#-رشتههای-نیمه-سهنقلقولی)
- [ مشکل بولین ها چیست؟](#--مشکل-بولین-ها-چیست)
- [ ویژگیهای کلاس و ویژگیهای نمونه](#--ویژگیهای-کلاس-و-ویژگیهای-نمونه)
- [ yielding None](#-yielding-none)
- [ Yielding from... return! \*](#-yielding-from-return-)
- [ بازتابناپذیری \*](#--بازتابناپذیری-)
- [ تغییر دادن اشیای تغییرناپذیر!](#--تغییر-دادن-اشیای-تغییرناپذیر)
- [ متغیری که از اسکوپ بیرونی ناپدید میشود](#--متغیری-که-از-اسکوپ-بیرونی-ناپدید-میشود)
- [ تبدیل اسرارآمیز نوع کلید](#--تبدیل-اسرارآمیز-نوع-کلید)
- [ ببینیم میتوانید این را حدس بزنید؟](#--ببینیم-میتوانید-این-را-حدس-بزنید)
- [ از حد مجاز برای تبدیل رشته به عدد صحیح فراتر میرود](#--از-حد-مجاز-برای-تبدیل-رشته-به-عدد-صحیح-فراتر-میرود)
- [ اول از همه! \*](#-اول-از-همه-)
- [ بعضی وقتها رشتهها میتوانند دردسرساز شوند](#-بعضی-وقتها-رشتهها-میتوانند-دردسرساز-شوند)
- [ مراقب عملیاتهای زنجیرهای باشید](#-مراقب-عملیاتهای-زنجیرهای-باشید)
- [ چطور از عملگر `is` استفاده نکنیم](#-چطور-از-عملگر-is-استفاده-نکنیم)
- [ کلیدهای هش](#-کلیدهای-هش)
- [ در عمق وجود همه ما یکسان هستیم](#-در-عمق-وجود-همه-ما-یکسان-هستیم)
- [ بینظمی در خود نظم \*](#-بینظمی-در-خود-نظم-)
- [ تلاش کن... \*](#-تلاش-کن-)
- [ برای چی؟](#-برای-چی)
- [ اختلاف زمانی در محاسبه](#-اختلاف-زمانی-در-محاسبه)
- [ هر گردی، گردو نیست](#-هر-گردی-گردو-نیست)
- [ یک بازی دوز که توش X همون اول برنده میشه!](#-یک-بازی-دوز-که-توش-X-همون-اول-برنده-میشه)
- [ متغیر شرودینگر \*](#-متغیر-شرودینگر-)
- [ اول مرغ بوده یا تخم مرغ؟ \*](#-اول-مرغ-بوده-یا-تخم-مرغ-)
- [ روابط بین زیرمجموعه کلاسها](#-روابط-بین-زیرمجموعه-کلاسها)
- [ برابری و هویت متدها](#--برابری-و-هویت-متدها)
- [ آل-ترو-یشن \*](#--آل-ترو-یشن-)
- [ رشتهها و بکاسلشها](#--رشتهها-و-بکاسلشها)
- [ گره نیست، نَه!](#--گره-نیست-نَه)
- [ رشتههای نیمه سهنقلقولی](#-رشتههای-نیمه-سهنقلقولی)
- [ مشکل بولین ها چیست؟](#--مشکل-بولین-ها-چیست)
- [ ویژگیهای کلاس و ویژگیهای نمونه](#--ویژگیهای-کلاس-و-ویژگیهای-نمونه)
- [ yielding None](#-yielding-none)
- [ Yielding from... return! \*](#-yielding-from-return-)
- [ بازتابناپذیری \*](#--بازتابناپذیری-)
- [ تغییر دادن اشیای تغییرناپذیر!](#--تغییر-دادن-اشیای-تغییرناپذیر)
- [ متغیری که از اسکوپ بیرونی ناپدید میشود](#--متغیری-که-از-اسکوپ-بیرونی-ناپدید-میشود)
- [ تبدیل اسرارآمیز نوع کلید](#--تبدیل-اسرارآمیز-نوع-کلید)
- [ ببینیم میتوانید این را حدس بزنید؟](#--ببینیم-میتوانید-این-را-حدس-بزنید)
- [ از حد مجاز برای تبدیل رشته به عدد صحیح فراتر میرود](#--از-حد-مجاز-برای-تبدیل-رشته-به-عدد-صحیح-فراتر-میرود)
- [ بخش: شیبهای لغزنده](#-بخش-شیبهای-لغزنده)
- [ تغییر یک دیکشنری هنگام پیمایش روی آن](#--تغییر-یک-دیکشنری-هنگام-پیمایش-روی-آن)
- [ عملیات سرسختانهی `del`](#-عملیات-سرسختانهی-del)
- [ متغیری که از حوزه خارج است](#--متغیری-که-از-حوزه-خارج-است)
- [ حذف المانهای لیست در حین پیمایش](#--حذف-المانهای-لیست-در-حین-پیمایش)
- [ زیپِ دارای اتلاف برای پیمایشگرها \*](#--زیپِ-دارای-اتلاف-برای-پیمایشگرها-)
- [ نشت کردن متغیرهای حلقه!](#--نشت-کردن-متغیرهای-حلقه)
- [ مراقب آرگومانهای تغییرپذیر پیشفرض باشید!](#--مراقب-آرگومانهای-تغییرپذیر-پیشفرض-باشید)
- [ گرفتن استثناها (Exceptions)](#--گرفتن-استثناها-exceptions)
- [ عملوندهای یکسان، داستانی متفاوت!](#--عملوندهای-یکسان-داستانی-متفاوت)
- [ تفکیک نامها با نادیده گرفتن حوزهی کلاس](#--تفکیک-نامها-با-نادیده-گرفتن-حوزهی-کلاس)
- [ گرد کردن به روش بانکدار \*](#--گرد-کردن-به-روش-بانکدار-)
- [ سوزنهایی در انبار کاه \*](#--سوزنهایی-در-انبار-کاه-)
- [ تقسیمها \*](#--تقسیمها-)
- [ واردسازیهای عمومی \*](#-واردسازیهای-عمومی-)
- [ همه چیز مرتب شده؟ \*](#--همه-چیز-مرتب-شده-)
- [ زمان نیمهشب وجود ندارد؟](#--زمان-نیمهشب-وجود-ندارد)
- [ تغییر یک دیکشنری هنگام پیمایش روی آن](#--تغییر-یک-دیکشنری-هنگام-پیمایش-روی-آن)
- [ عملیات سرسختانهی `del`](#-عملیات-سرسختانهی-del)
- [ متغیری که از حوزه خارج است](#--متغیری-که-از-حوزه-خارج-است)
- [ حذف المانهای لیست در حین پیمایش](#--حذف-المانهای-لیست-در-حین-پیمایش)
- [ زیپِ دارای اتلاف برای پیمایشگرها \*](#--زیپِ-دارای-اتلاف-برای-پیمایشگرها-)
- [ نشت کردن متغیرهای حلقه!](#--نشت-کردن-متغیرهای-حلقه)
- [ مراقب آرگومانهای تغییرپذیر پیشفرض باشید!](#--مراقب-آرگومانهای-تغییرپذیر-پیشفرض-باشید)
- [ گرفتن استثناها (Exceptions)](#--گرفتن-استثناها-exceptions)
- [ عملوندهای یکسان، داستانی متفاوت!](#--عملوندهای-یکسان-داستانی-متفاوت)
- [ تفکیک نامها با نادیده گرفتن حوزهی کلاس](#--تفکیک-نامها-با-نادیده-گرفتن-حوزهی-کلاس)
- [ گرد کردن به روش بانکدار \*](#--گرد-کردن-به-روش-بانکدار-)
- [ سوزنهایی در انبار کاه \*](#--سوزنهایی-در-انبار-کاه-)
- [ تقسیمها \*](#--تقسیمها-)
- [ واردسازیهای عمومی \*](#-واردسازیهای-عمومی-)
- [ همه چیز مرتب شده؟ \*](#--همه-چیز-مرتب-شده-)
- [ زمان نیمهشب وجود ندارد؟](#--زمان-نیمهشب-وجود-ندارد)
- [ بخش: گنجینههای پنهان!](#-بخش-گنجینههای-پنهان)
- [ خب پایتون، میتوانی کاری کنی پرواز کنم؟](#--خب-پایتون-میتوانی-کاری-کنی-پرواز-کنم)
- [ `goto`، ولی چرا؟](#--goto-ولی-چرا)
- [ خودتان را آماده کنید!](#--خودتان-را-آماده-کنید)
- [ بیایید با «عمو زبان مهربان برای همیشه» آشنا شویم](#--بیایید-با-عمو-زبان-مهربان-برای-همیشه-آشنا-شویم)
- [ حتی پایتون هم میداند که عشق پیچیده است](#--حتی-پایتون-هم-میداند-که-عشق-پیچیده-است)
- [ بله، این واقعاً وجود دارد!](#--بله-این-واقعاً-وجود-دارد)
- [ Ellipsis \*](#-ellipsis-)
- [ بینهایت (`Inpinity`)](#--بینهایت-inpinity)
- [ بیایید خرابکاری کنیم](#--بیایید-خرابکاری-کنیم)
- [ خب پایتون، میتوانی کاری کنی پرواز کنم؟](#--خب-پایتون-میتوانی-کاری-کنی-پرواز-کنم)
- [ `goto`، ولی چرا؟](#--goto-ولی-چرا)
- [ خودتان را آماده کنید!](#--خودتان-را-آماده-کنید)
- [ بیایید با «عمو زبان مهربان برای همیشه» آشنا شویم](#--بیایید-با-عمو-زبان-مهربان-برای-همیشه-آشنا-شویم)
- [ حتی پایتون هم میداند که عشق پیچیده است](#--حتی-پایتون-هم-میداند-که-عشق-پیچیده-است)
- [ بله، این واقعاً وجود دارد!](#--بله-این-واقعاً-وجود-دارد)
- [ Ellipsis \*](#-ellipsis-)
- [ بینهایت (`Inpinity`)](#--بینهایت-inpinity)
- [ بیایید خرابکاری کنیم](#--بیایید-خرابکاری-کنیم)
- [ بخش: ظاهرها فریبندهاند!](#-بخش-ظاهرها-فریبندهاند)
- [ خطوط را رد میکند؟](#--خطوط-را-رد-میکند)
- [ تلهپورت کردن](#--تلهپورت-کردن)
- [ خب، یک جای کار مشکوک است...](#--خب-یک-جای-کار-مشکوک-است)
- [ خطوط را رد میکند؟](#--خطوط-را-رد-میکند)
- [ تلهپورت کردن](#--تلهپورت-کردن)
- [ خب، یک جای کار مشکوک است...](#--خب-یک-جای-کار-مشکوک-است)
- [بخش: متفرقه](#بخش-متفرقه)
- [ `+=` سریعتر است](#---سریعتر-است)
- [ بیایید یک رشتهی بزرگ بسازیم!](#--بیایید-یک-رشتهی-بزرگ-بسازیم)
- [ کُند کردن جستجوها در `dict` \*](#---کُند-کردن-جستجوها-در-dict-)
- [ حجیم کردن دیکشنری نمونهها (`instance dicts`) \*](#--حجیم-کردن-دیکشنری-نمونهها-instance-dicts-)
- [ موارد جزئی \*](#---موارد-جزئی-)
- [ `+=` سریعتر است](#---سریعتر-است)
- [ بیایید یک رشتهی بزرگ بسازیم!](#--بیایید-یک-رشتهی-بزرگ-بسازیم)
- [ کُند کردن جستجوها در `dict` \*](#---کُند-کردن-جستجوها-در-dict-)
- [ حجیم کردن دیکشنری نمونهها (`instance dicts`) \*](#--حجیم-کردن-دیکشنری-نمونهها-instance-dicts-)
- [ موارد جزئی \*](#---موارد-جزئی-)
- [ مشارکت](#-مشارکت)
- [ تقدیر و تشکر](#-تقدیر-و-تشکر)
- [ چند لینک جالب!](#-چند-لینک-جالب)
@ -124,7 +124,7 @@
همه مثالها به صورت زیر ساخته میشوند:
> ### یه اسم خوشگل
> ### یه اسم خوشگل
>
> ```py
> # راه اندازی کد
@ -175,7 +175,7 @@
## بخش: ذهن خود را به چالش بکشید!
### اول از همه! *
### اول از همه! *
<!-- Example ID: d3d73936-3cf1-4632-b5ab-817981338863 -->
<!-- read-only -->
@ -298,7 +298,7 @@ if a := some_func():
---
### بعضی وقت‌ها رشته‌ها می‌توانند دردسرساز شوند
### بعضی وقت‌ها رشته‌ها می‌توانند دردسرساز شوند
<!-- Example ID: 30f1d3fc-e267-4b30-84ef-4d9e7091ac1a --->
1\.
@ -383,7 +383,7 @@ False
---
### مراقب عملیات‌های زنجیره‌ای باشید
### مراقب عملیات‌های زنجیره‌ای باشید
<!-- Example ID: 07974979-9c86-4720-80bd-467aa19470d9 --->
```py
>>> (False == False) in [False] # منطقیه
@ -427,7 +427,7 @@ False
---
### چطور از عملگر `is` استفاده نکنیم
### چطور از عملگر `is` استفاده نکنیم
<!-- Example ID: 230fa2ac-ab36-4ad1-b675-5f5a1c1a6217 --->
عبارت پایین خیلی معروفه و تو کل اینترنت موجوده.
@ -552,7 +552,7 @@ False
---
### کلیدهای هش
### کلیدهای هش
<!-- Example ID: eb17db53-49fd-4b61-85d6-345c5ca213ff --->
1\.
```py
@ -617,7 +617,7 @@ complex
---
### در عمق وجود همه ما یکسان هستیم
### در عمق وجود همه ما یکسان هستیم
<!-- Example ID: 8f99a35f-1736-43e2-920d-3b78ec35da9b --->
```py
class WTF:
@ -667,7 +667,7 @@ True
---
### بی‌نظمی در خود نظم *
### بی‌نظمی در خود نظم *
<!-- Example ID: 91bff1f8-541d-455a-9de4-6cd8ff00ea66 --->
```py
from collections import OrderedDict
@ -766,7 +766,7 @@ TypeError: unhashable type: 'dict'
---
### تلاش کن... *
### تلاش کن... *
<!-- Example ID: b4349443-e89f-4d25-a109-82616be9d41a --->
```py
def some_func():
@ -828,7 +828,7 @@ Iteration 0
---
### برای چی؟
### برای چی؟
<!-- Example ID: 64a9dccf-5083-4bc9-98aa-8aeecde4f210 --->
```py
some_string = "wtf"
@ -880,7 +880,7 @@ for i, some_dict[i] in enumerate(some_string):
---
### اختلاف زمانی در محاسبه
### اختلاف زمانی در محاسبه
<!-- Example ID: 6aa11a4b-4cf1-467a-b43a-810731517e98 --->
1\.
```py
@ -949,7 +949,7 @@ array_4 = [400, 500, 600]
---
### هر گردی، گردو نیست
### هر گردی، گردو نیست
<!-- Example ID: b26fb1ed-0c7d-4b9c-8c6d-94a58a055c0d --->
```py
>>> 'something' is not None
@ -966,7 +966,7 @@ False
---
### یک بازی دوز که توش X همون اول برنده میشه!
### یک بازی دوز که توش X همون اول برنده میشه!
<!-- Example ID: 69329249-bdcb-424f-bd09-cca2e6705a7a --->
```py
@ -1026,7 +1026,7 @@ board = [row] * 3
---
### متغیر شرودینگر *
### متغیر شرودینگر *
<!-- Example ID: 4dc42f77-94cb-4eb5-a120-8203d3ed7604 --->
@ -1105,7 +1105,7 @@ ClosureVars(nonlocals={}, globals={}, builtins={}, unbound=set())
---
### اول مرغ بوده یا تخم مرغ؟ *
### اول مرغ بوده یا تخم مرغ؟ *
<!-- Example ID: 60730dc2-0d79-4416-8568-2a63323b3ce8 --->
1\.
```py
@ -1157,7 +1157,7 @@ False
---
### روابط بین زیرمجموعه کلاس‌ها
### روابط بین زیرمجموعه کلاس‌ها
<!-- Example ID: 9f6d8cf0-e1b5-42d0-84a0-4cfab25a0bc0 --->
**خروجی:**
```py
@ -1181,7 +1181,7 @@ False
---
### برابری و هویت متدها
### برابری و هویت متدها
<!-- Example ID: 94802911-48fe-4242-defa-728ae893fa32 --->
1.
@ -1270,7 +1270,7 @@ True
* ایجاد شیءهای "متد" جدید در هر بار فراخوانی متدهای نمونه و نیاز به اصلاح آرگومانها برای درج `self`، عملکرد را به شدت تحت تأثیر قرار میداد.
CPython 3.7 [این مشکل را حل کرد](https://bugs.python.org/issue26110) با معرفی opcodeهای جدیدی که فراخوانی متدها را بدون ایجاد شیء متد موقتی مدیریت میکنند. این به شرطی است که تابع دسترسییافته واقعاً فراخوانی شود، بنابراین قطعهکدهای اینجا تحت تأثیر قرار نمیگیرند و همچنان متد ایجاد میکنند :)
### آل-ترو-یشن *
### آل-ترو-یشن *
<!-- Example ID: dfe6d845-e452-48fe-a2da-0ed3869a8042 -->
@ -1308,7 +1308,7 @@ True
---
### کاما‌ی شگفت‌انگیز
### کاما‌ی شگفت‌انگیز
<!-- Example ID: 31a819c8-ed73-4dcc-84eb-91bedbb51e58 --->
**خروجی (< 3.6):**
@ -1340,7 +1340,7 @@ SyntaxError: invalid syntax
---
### رشته‌ها و بک‌اسلش‌ها
### رشته‌ها و بک‌اسلش‌ها
<!-- Example ID: 6ae622c3-6d99-4041-9b33-507bd1a4407b --->
**خروجی:**
```py
@ -1383,7 +1383,7 @@ True
---
### گره نیست، نَه!
### گره نیست، نَه!
<!-- Example ID: 7034deb1-7443-417d-94ee-29a800524de8 --->
```py
x = True
@ -1410,7 +1410,7 @@ SyntaxError: invalid syntax
---
### رشته‌های نیمه سه‌نقل‌قولی
### رشته‌های نیمه سه‌نقل‌قولی
<!-- Example ID: c55da3e2-1034-43b9-abeb-a7a970a2ad9e --->
**خروجی:**
```py
@ -1439,7 +1439,7 @@ SyntaxError: EOF while scanning triple-quoted string literal
---
### مشکل بولین ها چیست؟
### مشکل بولین ها چیست؟
<!-- Example ID: 0bba5fa7-9e6d-4cd2-8b94-952d061af5dd --->
1\.
@ -1529,7 +1529,7 @@ I have lost faith in truth!
---
### ویژگی‌های کلاس و ویژگی‌های نمونه
### ویژگی‌های کلاس و ویژگی‌های نمونه
<!-- Example ID: 6f332208-33bd-482d-8106-42863b739ed9 --->
1\.
```py
@ -1600,7 +1600,7 @@ True
---
### yielding None
### yielding None
<!-- Example ID: 5a40c241-2c30-40d0-8ba9-cf7e097b3b53 --->
```py
some_iterable = ('a', 'b')
@ -1633,7 +1633,7 @@ def some_func(val):
---
### Yielding from... return! *
### Yielding from... return! *
<!-- Example ID: 5626d8ef-8802-49c2-adbc-7cda5c550816 --->
1\.
@ -1698,7 +1698,7 @@ def some_func(x):
---
### بازتاب‌ناپذیری *
### بازتاب‌ناپذیری *
<!-- Example ID: 59bee91a-36e0-47a4-8c7d-aa89bf1d3976 --->
@ -1774,7 +1774,7 @@ True
---
### تغییر دادن اشیای تغییرناپذیر!
### تغییر دادن اشیای تغییرناپذیر!
<!-- Example ID: 15a9e782-1695-43ea-817a-a9208f6bb33d --->
@ -1813,7 +1813,7 @@ TypeError: 'tuple' object does not support item assignment
---
### متغیری که از اسکوپ بیرونی ناپدید می‌شود
### متغیری که از اسکوپ بیرونی ناپدید می‌شود
<!-- Example ID: 7f1e71b6-cb3e-44fb-aa47-87ef1b7decc8 --->
```py
@ -1895,7 +1895,7 @@ NameError: name 'e' is not defined
---
### تبدیل اسرارآمیز نوع کلید
### تبدیل اسرارآمیز نوع کلید
<!-- Example ID: 00f42dd0-b9ef-408d-9e39-1bc209ce3f36 --->
```py
class SomeClass(str):
@ -1951,7 +1951,7 @@ str
---
### ببینیم می‌توانید این را حدس بزنید؟
### ببینیم می‌توانید این را حدس بزنید؟
<!-- Example ID: 81aa9fbe-bd63-4283-b56d-6fdd14c9105e --->
```py
a, b = a[b] = {}, 5
@ -2010,7 +2010,7 @@ a, b = a[b] = {}, 5
---
### از حد مجاز برای تبدیل رشته به عدد صحیح فراتر می‌رود
### از حد مجاز برای تبدیل رشته به عدد صحیح فراتر می‌رود
```py
>>> # Python 3.10.6
>>> int("2" * 5432)
@ -2049,7 +2049,7 @@ ValueError: Exceeds the limit (4300) for integer string conversion:
## بخش: شیب‌های لغزنده
### تغییر یک دیکشنری هنگام پیمایش روی آن
### تغییر یک دیکشنری هنگام پیمایش روی آن
<!-- Example ID: b4e5cdfb-c3a8-4112-bd38-e2356d801c41 --->
```py
x = {0: None}
@ -2085,7 +2085,7 @@ for i in x:
---
### عملیات سرسختانه‌ی `del`
### عملیات سرسختانه‌ی `del`
<!-- Example ID: 777ed4fd-3a2d-466f-95e7-c4058e61d78e --->
<!-- read-only -->
@ -2130,7 +2130,7 @@ Deleted!
---
### متغیری که از حوزه خارج است
### متغیری که از حوزه خارج است
<!-- Example ID: 75c03015-7be9-4289-9e22-4f5fdda056f7 --->
1\.
@ -2210,7 +2210,7 @@ UnboundLocalError: local variable 'a' referenced before assignment
---
### حذف المان‌های لیست در حین پیمایش
### حذف المان‌های لیست در حین پیمایش
<!-- Example ID: 4cc52d4e-d42b-4e09-b25f-fbf5699b7d4e --->
```py
list_1 = [1, 2, 3, 4]
@ -2271,7 +2271,7 @@ for idx, item in enumerate(list_4):
---
### زیپِ دارای اتلاف برای پیمایشگرها *
### زیپِ دارای اتلاف برای پیمایشگرها *
<!-- Example ID: c28ed154-e59f-4070-8eb6-8967a4acac6d --->
```py
@ -2320,7 +2320,7 @@ for idx, item in enumerate(list_4):
---
### نشت کردن متغیرهای حلقه!
### نشت کردن متغیرهای حلقه!
<!-- Example ID: ccec7bf6-7679-4963-907a-1cd8587be9ea --->
1\.
```py
@ -2384,7 +2384,7 @@ print(x, ': x in global')
---
### مراقب آرگومان‌های تغییرپذیر پیش‌فرض باشید!
### مراقب آرگومان‌های تغییرپذیر پیش‌فرض باشید!
<!-- Example ID: 7d42dade-e20d-4a7b-9ed7-16fb58505fe9 --->
```py
@ -2442,7 +2442,7 @@ def some_func(default_arg=[]):
---
### گرفتن استثناها (Exceptions)
### گرفتن استثناها (Exceptions)
<!-- Example ID: b5ca5e6a-47b9-4f69-9375-cda0f8c6755d --->
```py
some_list = [1, 2, 3]
@ -2517,7 +2517,7 @@ SyntaxError: invalid syntax
---
### عملوندهای یکسان، داستانی متفاوت!
### عملوندهای یکسان، داستانی متفاوت!
<!-- Example ID: ca052cdf-dd2d-4105-b936-65c28adc18a0 --->
1\.
```py
@ -2558,7 +2558,7 @@ a += [5, 6, 7, 8]
---
### تفکیک نام‌ها با نادیده گرفتن حوزه‌ی کلاس
### تفکیک نام‌ها با نادیده گرفتن حوزه‌ی کلاس
<!-- Example ID: 03f73d96-151c-4929-b0a8-f74430788324 --->
1\.
```py
@ -2601,7 +2601,7 @@ class SomeClass:
---
### گرد کردن به روش بانکدار *
### گرد کردن به روش بانکدار *
بیایید یک تابع ساده برای بهدستآوردن عنصر میانی یک لیست پیادهسازی کنیم:
```py
@ -2651,7 +2651,7 @@ def get_middle(some_list):
---
### سوزن‌هایی در انبار کاه *
### سوزن‌هایی در انبار کاه *
<!-- Example ID: 52a199b1-989a-4b28-8910-dff562cebba9 --->
@ -2828,7 +2828,7 @@ def similar_recursive_func(a):
---
### تقسیم‌ها *
### تقسیم‌ها *
<!-- Example ID: ec3168ba-a81a-4482-afb0-691f1cc8d65a --->
```py
>>> 'a'.split()
@ -2864,7 +2864,7 @@ def similar_recursive_func(a):
---
### واردسازی‌های عمومی *
### واردسازی‌های عمومی *
<!-- Example ID: 83deb561-bd55-4461-bb5e-77dd7f411e1c --->
<!-- read-only -->
@ -2923,7 +2923,7 @@ NameError: name '_another_weird_name_func' is not defined
---
### همه چیز مرتب شده؟ *
### همه چیز مرتب شده؟ *
<!-- Example ID: e5ff1eaf-8823-4738-b4ce-b73f7c9d5511 -->
@ -2963,7 +2963,7 @@ False
---
### زمان نیمه‌شب وجود ندارد؟
### زمان نیمه‌شب وجود ندارد؟
<!-- Example ID: 1bce8294-5619-4d70-8ce3-fe0bade690d1 --->
```py
from datetime import datetime
@ -3001,7 +3001,7 @@ Before Python 3.5, the boolean value for `datetime.time` object was considered t
این بخش شامل چند مورد جالب و کمتر شناختهشده دربارهی پایتون است که بیشتر مبتدیهایی مثل من از آن بیخبرند (البته دیگر اینطور نیست).
### خب پایتون، می‌توانی کاری کنی پرواز کنم؟
### خب پایتون، می‌توانی کاری کنی پرواز کنم؟
<!-- Example ID: a92f3645-1899-4d50-9721-0031be4aec3f --->
خب، بفرمایید
@ -3019,7 +3019,7 @@ Sshh... It's a super-secret.
---
### `goto`، ولی چرا؟
### `goto`، ولی چرا؟
<!-- Example ID: 2aff961e-7fa5-4986-a18a-9e5894bd89fe --->
```py
@ -3048,7 +3048,7 @@ Freedom!
---
### خودتان را آماده کنید!
### خودتان را آماده کنید!
<!-- Example ID: 5c0c75f2-ddd9-4da3-ba49-c4be7ec39acf --->
اگر جزو افرادی هستید که دوست ندارند در پایتون برای مشخص کردن محدودهها از فضای خالی (whitespace) استفاده کنند، میتوانید با ایمپورت کردن ماژول زیر از آکولاد `{}` به سبک زبان C استفاده کنید:
@ -3073,7 +3073,7 @@ SyntaxError: not a chance
---
### بیایید با «عمو زبان مهربان برای همیشه» آشنا شویم
### بیایید با «عمو زبان مهربان برای همیشه» آشنا شویم
<!-- Example ID: 6427fae6-e959-462d-85da-ce4c94ce41be --->
**خروجی (Python 3.x)**
```py
@ -3106,7 +3106,7 @@ True
---
### حتی پایتون هم می‌داند که عشق پیچیده است
### حتی پایتون هم می‌داند که عشق پیچیده است
<!-- Example ID: b93cad9e-d341-45d1-999c-fcdce65bed25 --->
```py
import this
@ -3163,7 +3163,7 @@ True
---
### بله، این واقعاً وجود دارد!
### بله، این واقعاً وجود دارد!
<!-- Example ID: 4286db3d-1ea7-47c9-8fb6-a9a04cac6e49 --->
**عبارت `else` برای حلقهها.** یک مثال معمول آن میتواند چنین باشد:
@ -3207,7 +3207,7 @@ Try block executed successfully...
- عبارت `else` پس از بلاک `try` به عنوان «عبارت تکمیل» (`completion clause`) نیز شناخته میشود؛ چراکه رسیدن به عبارت `else` در ساختار `try` به این معنی است که بلاک `try` بدون رخ دادن استثنا با موفقیت تکمیل شده است.
---
### Ellipsis *
### Ellipsis *
<!-- Example ID: 969b7100-ab3d-4a7d-ad7d-a6be16181b2b --->
```py
def some_func():
@ -3269,7 +3269,7 @@ Ellipsis
---
### بی‌نهایت (`Inpinity`)
### بی‌نهایت (`Inpinity`)
<!-- Example ID: ff473ea8-a3b1-4876-a6f0-4378aff790c1 --->
این املای کلمه تعمداً به همین شکل نوشته شده است. لطفاً برای اصلاح آن درخواست (`patch`) ارسال نکنید.
@ -3288,7 +3288,7 @@ Ellipsis
---
### بیایید خرابکاری کنیم
### بیایید خرابکاری کنیم
<!-- Example ID: 37146d2d-9e67-43a9-8729-3c17934b910c --->
1\.
```py
@ -3366,7 +3366,7 @@ AttributeError: 'A' object has no attribute '__variable'
## بخش: ظاهرها فریبنده‌اند!
### خطوط را رد می‌کند؟
### خطوط را رد می‌کند؟
<!-- Example ID: d50bbde1-fb9d-4735-9633-3444b9d2f417 --->
**خروجی:**
```py
@ -3402,7 +3402,7 @@ False
---
### تله‌پورت کردن
### تله‌پورت کردن
<!-- Example ID: edafe923-0c20-4315-b6e1-0c31abfc38f5 --->
@ -3435,7 +3435,7 @@ def energy_receive():
---
### خب، یک جای کار مشکوک است...
### خب، یک جای کار مشکوک است...
<!-- Example ID: cb6a37c5-74f7-44ca-b58c-3b902419b362 --->
```py
def square(x):
@ -3480,7 +3480,7 @@ def square(x):
## بخش: متفرقه
### `+=` سریع‌تر است
### `+=` سریع‌تر است
<!-- Example ID: bfd19c60-a807-4a26-9598-4912b86ddb36 --->
```py
@ -3497,7 +3497,7 @@ def square(x):
---
### بیایید یک رشته‌ی بزرگ بسازیم!
### بیایید یک رشته‌ی بزرگ بسازیم!
<!-- Example ID: c7a07424-63fe-4504-9842-8f3d334f28fc --->
```py
def add_string_with_plus(iters):
@ -3594,7 +3594,7 @@ timeit.timeit('add_string_with_plus(10000)', number=1000, globals=globals())
---
### کُند کردن جستجوها در `dict` *
### کُند کردن جستجوها در `dict` *
<!-- Example ID: c9c26ce6-df0c-47f7-af0b-966b9386d4c3 --->
```py
some_dict = {str(i): 1 for i in range(1_000_000)}
@ -3627,7 +3627,7 @@ KeyError: 1
+ این فرایند برای آن نمونهی خاص از دیکشنری غیرقابل بازگشت است و حتی لازم نیست کلید موردنظر در دیکشنری موجود باشد. به همین دلیل است که حتی تلاش ناموفق برای دسترسی به کلیدی ناموجود نیز باعث ایجاد همین تأثیر (کند شدن جستجو) میشود.
### حجیم کردن دیکشنری نمونه‌ها (`instance dicts`) *
### حجیم کردن دیکشنری نمونه‌ها (`instance dicts`) *
<!-- Example ID: fe706ab4-1615-c0ba-a078-76c98cbe3f48 --->
```py
import sys
@ -3689,7 +3689,7 @@ def dict_size(o):
+ نکتهای کوچک برای کاهش مصرف حافظهی برنامه: هرگز صفات نمونهها را حذف نکنید و حتماً تمام صفات را در متد `__init__` تعریف و مقداردهی اولیه کنید!
### موارد جزئی *
### موارد جزئی *
<!-- Example ID: f885cb82-f1e4-4daa-9ff3-972b14cb1324 --->
* متد `join()` عملیاتی مربوط به رشته (`str`) است، نه لیست (`list`). (در نگاه اول کمی برخلاف انتظار است.)