‌BenDev – Telegram
‌BenDev
2.82K subscribers
27 photos
6 videos
2 files
103 links
برای ارتباط با ادمین لطفا به آیدی @abb798 مراجعه فرمایید
Download Telegram
سلام
دوستانی که در ضمینه crawling تجربه دارن یه پیغام به من بدن لطفا
👍2👎1
تابعی بنویسیید بنویسید که بی نهایت Iterable بگیره
و تک تک عناصر رو خروجی بده با استفاده از جنریتور

برای مثال:
>> list(your_func([1,2,3],{"a","b"}))
[1,2,3,"a","b"]

#تمرین_پایتون
@BenDevelop
👍1
‌BenDev
تابعی بنویسیید بنویسید که بی نهایت Iterable بگیره و تک تک عناصر رو خروجی بده با استفاده از جنریتور برای مثال: >> list(your_func([1,2,3],{"a","b"})) [1,2,3,"a","b"] #تمرین_پایتون @BenDevelop
بچه ها این باید خیلی ساده باشه براتون

سوالی ک در امتدادش می‌پرسم چالش داره

انتظار داشتم اینو خیلی سریع بگین
‌BenDev
تابعی بنویسیید بنویسید که بی نهایت Iterable بگیره و تک تک عناصر رو خروجی بده با استفاده از جنریتور برای مثال: >> list(your_func([1,2,3],{"a","b"})) [1,2,3,"a","b"] #تمرین_پایتون @BenDevelop
حالا تابعی بنویسید که به جای اینکه پشت هم باشن عنصر ها به ترتیب بیان
مثلا عنصر های اول بعد عنصر های دوم و...

مثال:
>> list(your_func([1,2,3],{"a","b"}))
[1,"a",2,"b",3]

#تمرین_پایتون
@BenDevelop
‌BenDev
جواب صحیح:
این سوالی که الان مطرح شد اسمش round_robin هست
و نکته جذاب در مورد این سوال اینه که در هر زبانی راه حل بهینش کاملا متفاوت از زبون های دیگست

یه راه حلی که خیلی ساده می‌تونسید سوال رو حل کنید این بود که بیشترین تعداد عنصر رو پیدا کنید
بعد روی تمام آرایه ها به اون تعداد حلقه بزنید مثلا:
def round_robin(*args):
rounds = max(args, key=lambda a: len(a))
for index, r in enumerate(rounds):
for arr in args:
if len(arr) > index:
print(arr[index])

منتهی این جواب خوبی نیست چرا؟
چون اگر یکی از لیست ها مثلا ۱۱ تا عنصر داشته باشه
و اونیکی ۲ تا
اونوقت حلقه شما ۲۲ بار تکرار می‌شه

ولی تو راه حل اصلی می‌بینید که آرایه ای عنصر هاش تموم شده از آرایه ها حذف می‌شه
پس دیگه ما حلقه الکی نمی‌زنیم

@BenDevelop
👍10
👍7
🤣33👍3🥰1
#FastAPI beta with support for Pydantic v2

پایدنتیک ورژن ۲ با استفاده از rust نوشته شده و افزایش سرعت
بسیار زیادی داشته
حالا امروز fastapi با ساپورت pydantic version 2 پابلیش شده:

https://github.com/tiangolo/fastapi/releases/tag/0.100.0-beta1

@BenDevelop
🔥7
سلام دوستان
خواستم یه اپدیتی از وضعیت دوره ها خدمتتون بدم

همونطور که صحبت کردیم دوره‌ی الگوریتم و ساختمان داده رو دارم ضبط می‌کنم
و از این هفته سعی می‌کنم مینیمم هفته ای ۱ ویدیو بدم فقط روز منظمی نخواهد داشت

حقیقتا هفته پیش ویدیو اول رو ضبط کردم ۳-۴ بار منتهی یه نویزی داره که رو اعصابه
هدست قبلیم هم این مشکل رو داشت منتهی تنظیمات صدا رو جوری گذاشته بودم خیلی مشخص نبود
این هدست جدیده رو هرکاریش می‌کنم از کیفیت صداش راضی نمی‌شم با اینکه بهتره
فکر می‌کنم کلا مشکل از لینوکسه اگر کسی راهی داره لطف کنه به من بگه

در مورد خود دوره هم خدمتتون بگم که اولا فقط برای خودمونه یعنی داخل کامینیوتی دیگ ای قصد ندارم منتشرش کنم
و اینکه در راستای همون دوره لیت کد هستش
یعنی توی این پلی لیست شما کانسپت هاش رو می‌بینین
توی پلی لیست لیت کد حل مسالش رو

همین هرگونه نظر و پیشنهادی رو هم استقبال می‌کنیم 😊
👍2511❤‍🔥6🔥2
ABB
https://www.youtube.com/watch?v=HQt-NZu3mTk
اینم ویدیو لیت کد که قبلا بود
برای دوستانی که جدید عضو شدن

اینو حتما باید دیده باشین
چون ویدیو اول الگوریتم دقیقا راجع به کانسپت های همین ویدیو صحبت می‌کنیم
👍14
Forwarded from Python BackendHub
داشتم ویدیو مصاحبه عثمان رو میدیدم با امیربهادر که شاخکام تکون خورد بیشتر راجب yield تحقیق کنم.

سوال) کاربرد yield چیه تو پایتون؟
جواب: یک جنریتور فانکشن که memory efficient هست و مثلا از دیسک میخواین ۱۰۰ گیگ فایل بخونید نیاز نیست کلشو یک دفعه لود کنید تو مموری و میتونید ۱۰۰ مگ ۱۰۰ مگ لود کنید تو مموری

مقاله اول) yield چطور تو سطح پایتون کار میکنه؟ (نسبتا ساده, اسکیپ کنید اگه بلدین)
همونطور که گفتم yield یک جنریتور فانکشن هست. ولی یعنی چی؟
یعنی وقتی کلمه yield رو میذارین و اون تابع رو ران میکنید به جای اینکه یک آبجکت بهتون ریترن کنه بهتون یک جنریتور ریترن میکنه.

هردفعه که next() رو بزنید یک بار اجرا میشه و تا yield بعدی میره.اگه yield دیگه ای نباشه دیگه چیزی ران نمیکنه و ارور StopIteration میده.
یک نکته کلیدی. پس وقتی میخوایم کلین آپ کنیم همینطوری next(my_generator) رو صدا میزنیم تا به اخرین خط کد برسه و ارور بده. درواقع تو asyncio pytest همین اتفاق میفته. ما یک آبجکت رو yield میکنیم. خود asyncio-pytest پلاگین میاد next() میزنه روش و آبجکتو میگیره. بعد به کل تستا پاس میده همون آبجکتو. بعدش هم یک دور دیگه next() رو میزنه و میدونه ما بعد yield اول کلین آپ کردیم. اون موقع کلین آپ تست ما هم ران میشه که خیلی قشنگ تر unittest پایتون هست.



def my_gen():
yield 1
print("Clean up here")

generator = my_gen()
next(generator) -> 1
next(generator) -> prints clean up here -> raise StopIteration


خب تا اینجا فهمیدیم تو سطح پایتون چطوری کار میکنه generator و yield.
حالا میریم یک لایه پایین تر تو سطح interpreter 😈

@ManiFoldsPython
👍251👎1
مرتبه زمانی فضایی و هش مپ
این ویدیو احتمالا مهم ترین ویدیو کل این مجموعست
چون از مفاهیم این قسمت تو تمام ویدیو های بعد استفاده خواهیم کرد
پس حتما حتما ویدیو رو کامل و با دقت تماشا کنین و اگر هر جایش ابهام داشتین حتما بپرسین

https://www.youtube.com/watch?v=2L-9QV0Nqgo&t=1295s

@BenDevelop
16👍8🤩1
سلام دوستان عزیز
لطف کنین اگر دوره جنگو ci/cd رو دیدین و از کانفیگ هام استفاده می‌کنین
ایمیل منو از سرتیفیکیت isuuer بردارین
چرا همه دامین هاتون رو با ایمیل من ثبت می‌کنین 😁
الان ۲ -۳ تا تون سرتیفیکت هاشون تموم شه renew کنید لطفا 😂
🤣104😁13👍2
دیدین قبل از پایان هفته رسوندم 😁
اینم ویدیو داغ حل سوال دوم لیت کد مبحث لینک لیست
درجه سختی این سوال متوسطه یعنی از قبلی سخت تره
ولی نگران نباشین فکر می‌کنم تمیز توضیح دادم اینو ببینین که ویدیو لینک لیست رو که بدم قشنگ درکش کنین

https://youtu.be/vpdzQ-PGQi4

@BenDevelop
39
🔥27👍61👎1