5️⃣ تکنیکهای پیشرفته با حلقهها
⭐️ 1. حلقههای تودرتو (Nested Loops)
💥 برای کار با دادههای پیچیده (مثل ماتریس) از حلقههای تودرتو استفاده کن.
- مثال: چاپ ماتریس:
matrix = [[1, 2, 3], [4, 5, 6]]
for row in matrix:
for num in row:
print(num, end=" ")
print() # Line jadid
# Khoroji:
# 1 2 3
# 4 5 6
💡 نکته ریز:
- حلقههای تودرتو برای دادههای بزرگ میتونن کند باشن. از List Comprehension به جاش استفاده کن:
flat = [num for row in matrix for num in row]
print(flat) # Khoroji: [1, 2, 3, 4, 5, 6]
—-—-—-—-—-—-—-—-—-—-—
⭐️ 2. استفاده از range() در حلقهها
💥 استفاده از range(start, stop, step) برای ساخت دنبالههای عددی عالیه.
- مثال:
for num in range(0, 10, 2):
print(f"Zoj: {num}")
# Khoroji: Zoj: 0, Zoj: 2, Zoj: 4, Zoj: 6, Zoj: 8
💡 نکته ریز:
- برای فهرستهای بزرگ، مستقیم از range() تو حلقه استفاده کن تا حافظه کمتری مصرف بشه:
for i in range(1000000):
if i == 5:
break
—-—-—-—-—-—-—-—-—-—-—
⭐️ 3. حلقهها و List Comprehension
💥 برای کارهای ساده، List Comprehension جایگزین حلقههای for میشه.
- مثال حلقه معمولی:
numbers = [1, 2, 3, 4]
squares = []
for num in numbers:
squares.append(num**2)
print(squares) # Khoroji: [1, 4, 9, 16]
- با List Comprehension:
squares = [num**2 for num in numbers]
print(squares) # Khoroji: [1, 4, 9, 16]
💡 نکته ریز:
- استفاده از List Comprehension سریعتر و خواناتر از حلقه معمولیه.
- برای شرطهای پیچیده هم کار میکنه:
evens = [num for num in numbers if num % 2 == 0]
print(evens) # Khoroji: [2, 4]
—-—-—-—-—-—-—-—-—-—-—
⭐️ 4. حلقهها و ژنراتورها
💥 برای صرفهجویی در حافظه، از ژنراتورها به جای فهرست استفاده کن.
- مثال:
for num in (x**2 for x in range(1000)): # Generator
if num > 100:
break
print(num)
💡 نکته ریز:
- ژنراتورها فقط مقادیر رو موقع نیاز تولید میکنن، پس برای دادههای بزرگ عالیان.
💯 @PythonForYou 🧑💻👩💻