تابع range در پایتون
تابع range()
برای تولید دنبالهای از اعداد صحیح به کار میرود. این تابع یک شیٔ قابل تکرار (iterable) برمیگرداند که معمولاً با استفاده از list()
به لیست تبدیل میشود تا قابل مشاهده باشد.
تولید بازهای از اعداد از صفر تا عدد مشخص
در سادهترین حالت، اگر range
تنها یک آرگومان دریافت کند، دنبالهای از صفر تا عدد دادهشده (غیرشامل آن) تولید میکند:
numbers = list(range(10))
print(numbers)
خروجی:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
تعیین شروع و پایان بازه
با دادن دو آرگومان به range(start, stop)
میتوان بازهی دلخواه را مشخص کرد. مقدار شروع شامل میشود اما مقدار پایان شامل نخواهد شد:
numbers = list(range(3, 8))
print(numbers)
خروجی:
[3, 4, 5, 6, 7]
نکته: دو عبارت range(20)
و range(0, 20)
کاملاً معادل هستند.
print(range(20) == range(0, 20))
خروجی:
True
افزایش سفارشی با آرگومان سوم
اگر یک آرگومان سوم به range(start, stop, step)
اضافه شود، مشخص میکند که گام یا فاصله بین اعداد چقدر باشد. مقدار آن میتواند مثبت یا منفی باشد:
numbers = list(range(5, 20, 2))
print(numbers)
خروجی:
[5, 7, 9, 11, 13, 15, 17, 19]
استفاده از گام منفی
با استفاده از گام منفی میتوان اعداد را به صورت نزولی تولید کرد:
numbers = list(range(10, 0, -1))
print(numbers)
خروجی:
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
تولید لیست با اعداد زوج یا فرد
برای تولید لیستی از اعداد زوج یا فرد میتوانید از گام مناسب استفاده کنید:
even_numbers = list(range(0, 21, 2))
odd_numbers = list(range(1, 20, 2))
print("زوجها:", even_numbers)
print("فردها:", odd_numbers)
خروجی:
زوجها: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
فردها: [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
نکته: اگر گام صفر باشد یا مقدار شروع با پایان متناسب با جهت گام نباشد، خطا ایجاد خواهد شد. برای مثال:
list(range(1, 5, 0)) # خطا: step cannot be zero
list(range(10, 1, 2)) # لیست خالی چون گام مثبت است اما باید منفی باشد