PyCoders (پایتون)
4.11K subscribers
979 photos
148 videos
69 files
237 links
◇ #پایتون جادوگر دنیای برنامه نویسی!
◇ معرفی حوزه های کاری پایتون
◇ معرفی کتابخونه های کاربردی
◇ معرفی دوره های مفید
◇ معرفی تکنیک ها و نکات
◇ نقشه راه حوزه های مختلف
◇ اخبار و آپدیت های پایتون
◇ و هر چیزی در مورد پایتون!

■ گروه پایتون:
@programmers_py
Download Telegram
🔆 خروجی این تکه کد چیه؟

def add_item(item, lst=[]):
lst.append(item)
return lst

print(add_item(1))
print(add_item(2))
print(add_item(3, [9, 9]))
print(add_item(4))

🔹گزینه‌ها:

الف) [1], [2], [9, 9, 3], [4]
ب) [1], [1, 2], [9, 9, 3], [1, 2, 4]
ج) [1], [2], [3], [4]

🐍 @python_rd
🔆 چرا برای داده‌های حجیم نباید از return استفاده کنی؟

🔹 وقتی یک تابع لیست بزرگی از داده‌ها رو با return برمی‌گرداند، کل داده‌ها باید همزمان توی رم (RAM) لود بشن که باعث مصرف شدید حافظه و کندی سیستم میشه.

🔹 اما اگر به جای return از yield استفاده کنی، تابع تبدیل به یک Generator میشه که داده‌ها رو به صورت تک‌به‌تک و تنبل (Lazy Evaluation) تولید می‌کنه:

def read_large_file(file_path):
with open(file_path, 'r') as f:
for line in f:
yield line.strip() # هر بار فقط یک خط را در حافظه نگه می‌دارد

🔹با این روش می‌تونی فایل‌های چند گیگابایتی رو با مصرف چند مگابایت رم پردازش کنی!

🐍 @python_rd