⭐️ نکات ریز و ترفندهای حرفهای
1️⃣ بهینه بودن ()range:
تابع ()range یه شیء تنبل تولید میکنه که حافظه کمی مصرف میکنه، چون اعداد رو یکییکی میسازه.
import sys
print(
sys.getsizeof(range(1000000))) # ~48 bytes
print(
sys.getsizeof(list(range(1000000)))) # ~9000000 bytes
2️⃣ استفاده از step منفی برای دنبالههای نزولی:
برای ساخت دنباله معکوس، step باید منفی باشه و start از stop بزرگتر:
for num in range(5, 0, -1):
print(num)
# Khoroji: 5, 4, 3, 2, 1
3️⃣ ترکیب با List Comprehension:
برای ساخت فهرستهای پیچیدهتر:
squares = [x**2 for x in range(1, 6)]
print(squares) # Khoroji: [1, 4, 9, 16, 25]
4️⃣ مدیریت خطاها:
اگه step صفر باشه یا بازه نامعتبر باشه، ارور میگیره:
try:
list(range(1, 5, 0))
except ValueError:
print("Step ghalat! 🚫")
# Khoroji: Step ghalat!
5️⃣ استفاده تو حلقههای while:
هرچند کمتر رایجه، ولی میتونی ()range رو تو while استفاده کنی:
i = 0
r = range(5)
while i < len(r):
print(r[i])
i += 1
# Khoroji: 0, 1, 2, 3, 4
6️⃣ ترکیب با توابع داخلی:
دقت کن ()range با sum، min، max و غیره برای محاسبات سریع عالیه:
numbers = range(1, 6)
print(sum(numbers)) # Khoroji: 15
print(max(numbers)) # Khoroji: 5
print(min(numbers)) # Khoroji: 1
7️⃣ پیمایش معکوس با ()reversed:
به جای step منفی، میتونی از reversed(range()) استفاده کنی:
for num in reversed(range(1, 6)):
print(num)
# Khoroji: 5, 4, 3, 2, 1
8️⃣ دسترسی به ایندکسها:
تابع ()range میتونه برای دسترسی به ایندکسهای خاص تو فهرستها استفاده بشه:
numbers = ["a", "b", "c", "d"]
for i in range(1, len(numbers), 2):
print(numbers[i])
# Khoroji: b, d
💯 @PythonForYou 🧑💻👩💻