داستان تو رفتگی در پایتون چیست؟
هر کس برای اولین بار به یک کد پایتون را نگاه کند متوجه یک سری تو رفتگی در کد میشود که در نگاه اول به نظر برای مرتب شدن و خواناتر شدن کد نوشته شده اند اما واقعیت این نیست بدون این تو رفتگی ها کد ما عملا کار نخواهد کرد دراین مقاله با شرح چند مثال این مسئله بسیار مهم را مرور میکنیم و یاد میگیریم ایندنت در کد پایتون چیست.

چرا به indent نیاز داریم
داستان از جایی شروع شد که ما از بلاک در کد پایتون استفاده نکردیم برای درک بهتر به کد زیر در زبان c توجه کنید
int x = 5;
int y = 4;
if (x > y) {
printf("x is greater than y")
}
به انتهای شرط خوب دقت کنید برای دستور شرط یعنی printf("x is greater than y") ما آن را در بین دو علامت {} نوشتیم
در واقع به کامپایلر توضیح دادیم که دستور printf متعلق به شرط است زمانی اجرا میشود که شرط صحیح باشد.
حالا اگر همین دستور را در زبان پایتون بنویسیم چطور؟
x = 5
y = 4
if x > y:
print("x is greater than y")
دستور شرط در ابتدا نیاز به پرانتز باز و پرانتز بسته ندارد. اما در انتهای دستور شرط یک علامت : قرار گرفته است و خط بعد که دستور شرط است به اندازه یک tab یا چهار اسپیس جلوتر نوشته شده است.
البته مقدار tab بسته به تنظیمات شما قابل ویرایش است.
حالا مطمئنم درک کردهاید که چرا ما این کار را در پایتون انجام میدهیم.
قوانین تو رفتگی در پایتون
- اولین خط نمیتواند با تو رفتگی آغاز شود
x = 5
# indentation Error
print(x)
-
هیچ وقت
TabوSpaceرا با هم ترکیب نکنید. اگر ازTabاستفاده میکنید همیشه با آن کار کنید و اگر ازSpaceهمچنین. -
داکیومنت PEP 8 به ما پیشنهاد میکند برای هر ایندنت از چهار اسپیس استفاده کنیم برای بهترین نتیجه
-
در یک
blockنمیتوان بعضی از ایندنتها جلوتر و برخی را عقب تر نوشت مثال کد زیر گویای این موضوع است نوشتن این چنین کد خطا به همراه دارد.
if x > y:
y = x + 5
print(y)
در مثال بالا خط اول بعد از شرط به اندازه یک space فاصله دارد اما خط دوم به اندازه یک Tab این یک اشتباه رایج است برای اینکه هرگز به این مشکل برنخورید پیشنهاد من این است که برای ایندنت همیشه از Tab استفاده کنید اینطوری همیشه میزان فاصله ها به شکل استاندارد حفظ خواهد شد
- در نهایت هر زمان که ارور
IndentationError: expected an indented blockظاهر شد آگاه باشید که جایی در کد شما تورفتگی ها رعایت نشده یا اشتباه هستند.
فواید و مضرات ایندنتیشن
فواید
- خوانایی بیشتر کد
- عدم نیاز به استفاده از براکت یا آکولاد
- چون در یک کد شما باید از یک حد ایندنت استفاده کنید پس در مجموع کد تمیزتری خواهید داشت
- تمام ادیتورهای پایتون از این مهم به شکل پیش فرض پشتیبانی میکنند
مضرات
- در زمان کپی پیست کردن کد احتمال خطا بسیار بالاست
- نیاز به یادگیری اولیه این تکنیک وجود دارد
- ارورهایی احتمالا در برنامه ظاهر شوند که در اصل مربوط به ایندنت کد هستند اما در جای دیگری خود را نشان میدهند.
پایتون آزمایشی است برای سنجش میزان آزادیای که برنامهنویسان به آن نیاز دارند. اگر آزادی بیش از حد باشد، هیچکس نمیتواند کد دیگری را بخواند؛ اگر خیلی کم باشد، توان بیانی زبان به خطر میافتد. Guido van Rossum