معرفی تابع range پایتون
تابع range یکی از توابع داخلی پایتون است که دنباله ای از اعداد ایجاد میکند که به صورت پیشفرض از عدد صفر شروع شده و در هر مرحله یک به یک بیشتر میشود و قبل از یک عدد مشخص متوقف میشود. دنباله ای که تابع range ایجاد میکند تغییر ناپذیر(immutable) است. مقداری که تابع range پایتون برمیگرداند یک آبجکت قابل پیمایش از کلاس range است که میتواند داخل حلقه ها مورد استفاده قرار گیرد.
سینتکس range به شکل زیر است:
range(start, stop, step)
پارامترهای range
- start(اختیاری): عددی که برای شمارش استفاده میشود. به صورت پیشفرض 0 میباشد.
- stop: عددی که شمارش در آن باید توقف کند.
- step(اختیاری): عددی که شمارش باید به عنوان پرش استفاده کند.
در پارامترهایی که میتوانید به تابع range ارسال کنید، فقط stop اجباری است. در صورتی که فقط یک پارامتر ارسال کنید دنباله ای از اعداد خواهید داشت که از صفر شروع شده و تا قبل از عدد stop ادامه خواهد داشت. دقت کنید که عدد stop شامل نبوده و در دنباله وجود نخواهد داشت. به مثال زیر دقت کنید:
>>> range(5)
range(0, 5)
همانطور که در کد بالا مشاهده میکنید، اگر بصورت مستقیم از range استفاده کنید فقط یک آبجکت به شما برگشت داده میشود. اگر بخواهید به خود اعداد دسترسی پیدا کنید باید داخل این آبجکت پیمایش کنید. مثلا با استفاده از تابع list میتوانید یک آبجکت range را به لیست تبدیل کنید:
>>> list( range(5) )
[0, 1, 2, 3, 4]
در مثال بالا از عدد 5 به عنوان پایان دنباله استفاده کردیم و دقت کنید که عدد 5 خودش شامل نبوده و در دنباله وجود ندارد.
مثال از تابع range
برای ایجاد کردن یک رِنج یا بازه از اعداد با تابع range روش های مختلفی وجود دارد. روش اول اینست فقط پارامتر stop را ارسال کنید که در اینصورت دنباله از عدد صفر شروع شده و تا قبل از stop ادامه خواهد داشت:
>>> list( range(4) )
[0, 1, 2, 3]
روش بعدی اینست که در کنار stop پارامتر start را نیز ارسال کنید تا شروع دنباله با عددی غیر از صفر باشد. مثلا در کد زیر دنباله ای ایجاد کردیم که از عدد 3 شروع میشود. دقت کنید که مقدار start شامل بوده و دنباله وجود دارد اما مقدار stop شامل نبوده و در دنباله وجود ندارد :
>>> list( range(3, 9) )
[3, 4, 5, 6, 7, 8]
در مثال بعدی میتوانید پارامتر step را نیز ارسال کنید تا فاصله بین هر آیتم دنباله را نیز کنترل کنید. به صورت پیشفرض فاصله هر آیتم برابر 1 است یعنی اعداد یکی یکی افزایش پیدا میکنند. مثلا در کد زیر اعداد با فاصله 2 از یکدیگر ایجاد شده اند. باز هم دقت کنید که عدد 9 شامل نیست:
>>> list( range(3, 9, 2) )
[3, 5, 7]
خوشبختانه تابع range از اعداد منفی نیز پشتیبانی میکند:
>>> list( range(-5, -1) )
[-5, -4, -3, -2]
ترفند های کار با range
در این بخش با نکاتی آشنا خواهید شد که بهروری شما در زمان کار با range را افزایش می دهند. ترفند اول اینست که میتوانید از عملگر in برای بررسی اینکه آیا عدد خاصی در یک دنباله وجود دارد یا خیر استفاده کنید، همانطور که در زیر نشان داده شده است:
>>> num_range = range(5)
>>> 3 in num_range
True
>>> 6 in num_range
False
ترفند بعدی اینست که میتوانید شی range پایتون را به انواع قابل تکرار دیگر مانند لیست، تاپل و مجموعه تبدیل کرد:
>>> list( range(5) )
[0, 1, 2, 3, 4]
>>> tuple( range(5) )
(0, 1, 2, 3, 4)
>>> set( range(5) )
{0, 1, 2, 3, 4}
همچنین میتوانید از عملگرهای == و != برای مقایسه range استفاده کنید و تعیین می کند که آنها دارای پارامترهای شروع، توقف و step یکسان هستند یا خیر:
num_range1 = range(1, 5)
num_range2 = range(1, 10, 2)
num_range3 = range(1, 5)
>>> num_range1 == num_range2
False
>>> num_range1 == num_range3
True
تابع range به طور کلی با حلقه های for استفاده می شود، همانطور که در زیر نشان داده شده است:
for i in range(5):
print(i)
# OUTPUT
0
1
2
3
4
ارسال نظر