فارسی
باز کردن در Telegram
🐍🐍 Python & Raspberry 🐍

🐍 Python & Raspberry 🐍

@raspberry_python · کانال · فناوری · ایندکس از 2026-05-24
7 274مشترک
3 920پست در ایندکس
ف
فرهاد ناصری زاده 🐍
پیوند
برای نمایش کلیک کنید
سلام دوستان وقتتون بخیر ویدیو پلی لیست FastApi آپلود شد قسمت : 32 آخر موضوع : استقرار پروژه FastAPI برروی سرور امیدوارم که مفید بوده باشه میتونین از لینک زیر تماشا کنید https://youtu.be/tuNQotTa1-0 فایل های این ویدیو در گیت هاب : https://github.com/persianpython/FastApi
15 · 2.3K ·
D
DailyProjects
انواع سرچ ها روی لیست: خیلی خلاصه چند تا از انواع سرچ ها رو روی لیست باهم ببینیم: فرض کنید یه لیست نا مرتبی از اعداد داریم به این شکل: lst = [30, 2, 7, 14, 1, 25, 4, 15, 9] اگه بخواهیم دنبال عدد ۱۵ بگردیم باید چیکار کنیم؟ 1- Linear search(not optimized) میتونیم از ایندکس شماره صفر شروع کنیم و تک تک تا انتها بریم جلو و اعداد رو نگاه کنیم ببینیم ۱۵ داخلشون هست یا نه. این درواقع کاری هست که پایتون انجام میده زمانی که شما از in استفاده میکنید. چون اعداد ترتیبی ندارن کار دیگه ای نمیشه کرد. ________________________________________ اگه اعداد مرتب بودن چی؟ lst = [1, 2, 4, 7, 9, 14, 15, 25, 30] 2- Linear search(optimized) فرض کنیم میخواهیم دنبال عدد ۵ بگردیم. دوباره میتونیم شروع کنیم تک تک اعداد رو مقایسه کنیم، ولی بعد از اینکه به عدد ۷ رسیدیم، میتونیم دیگه ادامه ندیم. چون اعداد مرتب هستن، حتما توی اعداد بزرگتر از ۷ هم نخواهد بود. بهتر شد اینجا. 3- Jump search میتونیم به جای اینکه تک تک به جلو بریم و اعداد رو، چند تا چند تا جلو بریم و بپریم اصطلاحا (jump search). فرض کنید دنبال عدد ۲۵ میگردیم. میتونیم اعداد رو ۲ تا ۲ تا جلو بریم، یعنی اول ایندکس شماره ۰ (یا عدد ۱) و نگاه میکنیم، بعد میریم ایندکس شماره ۲ (یا عدد ۴)، بعد ایندکس شماره ۴ (یا عدد ۹) و تا آخر، هر جا که دیدیم عدد ایندکس مورد نظر بزرگتر از عدد مقصود ماست، یعنی به اون تیکه از لیست که ممکنه عدد هدف داخلش باشه رسیدیم، فقط کافیه داخل اون رو به صورت linear نگاه کنیم. برای پیدا کردن عدد ۲۵ ، فقط ۶ تا مقایسه لازم بود. (تو حالت خطی ۸ تا). حالا این jump ما چقدر باشه خوبه؟ محاسبات نشون میده که رادیکال n بهترین گام هست. ( n تعداد آیتم های داخل لیست هست) 4- Binary search کافیه توی هر مرحله لیستمون رو به دو قسمت تقسیم کنیم، و آیتم هدف رو با آیتم وسطی مقایسه کنیم، اگه کوچیکتر بود، دیگه فقط توی اون نیمه ی سمت چپ دنبالش میگردیم، اگه بزرگتر بود توی نیمه ی سمت راست. و دوباره همینکار رو تکرار میکنیم تا به هدف برسیم. 5- Interpolation search خیلی شبیه binary search هست با این تفاوت که اونجا نقطه ای که لیست ما رو تقسیم میکرد و دقیقا وسط لیست میگرفتیم، ولی اینجا با استفاده از این فرمول، اون نقطه رو بدست میاریم: mid = low + ((key -
35 · 2.2K ·
D
DailyProjects
conditional breakpoint: فرض کنید همچین کدی داریم: for i in range(100): print(i) و دوباره فرض کنید که زمانی که i میشه ۹۰ یه مشکلی بوجود میاد. میخواهیم برنامه رو دیباگ کنیم. چه کنیم؟ break point بذاریم سمت چپ for loop. ولی موضوع این هست که دیباگر وقتی ران میشه همون ابتدا کنار for loop وایمیسته و ما باید دستی جلو ببریم. تو این حالت i مساوی ۰ هست. منطقی نیست که ۹۰ بار روی next بزنیم تا برسیم به اون حالتی که i برابر ۹۰ میشه. خوشبختانه یه چیزی به اسم conditional breakpoint وجود داره که میتونید بهش یه expression عه boolean بدید و دیباگر فقط زمانی وایمیسته که اون expression درست باشه. توی ادیتور دلخواهتون بعد از اینکه break point گذاشتین، راست کلیک کنید روش و edit رو بزنید(یا هر اسم دیگه ای که داره) و توی اون پنجره ای که باز میشه بنویسید: i == 90 حالا با زدن دکمه دیباگ فقط زمانی وایمیسته که این شرط درست باشه. بابت این مثال تعبیه ای و ساده ببخشید ولی چیز بهتری به ذهنم نرسید. مهم مفهومش بود که تحت شرط خاصی بگیم وایسه. 🖊 @AmirSoroushh
19 · 2.4K ·
D
.pythonrc درست مثل .nanorc .bashrc .vimrc ... و بقیه ی فایل های مشابه، یه pythonrc هم داریم که به همون منظور ایجاد شده. قرار هست از قبل از startup عه REPL خونده و اجرا بشه. استفاده های مختلفی میشه کرد: مثلا اگه همیشه وقتی REPL رو باز میکنید یه سری کتابخونه رو import میکنید، میتونید یک بار اینجا import کنید و دیگه هربار اینکار رو نکنید. یا مثلا اگه یه سری helper فانکشن برای خودتون نوشتید میتونید یکبار اینجا تعریفش کنید و هروقت که REPL رو باز کردید در دسترس شما هست. یه کار جالب دیگه اینکه میتونیم built-in فانکشن help رو با inspect که توی rich هست عوض کنیم: from functools import partial from rich import inspect, pretty help = partial(inspect, help=True) pretty.install() حالا باید environment variable عه PYTHONSTARTUP رو هم ست کنیم که به فایل .pythonrc اشاره کنه. الان ورژن rich استفاده میشه وقتی روی آبجکتی بزنید. منبع 🖊 @AmirSoroushh
13 · 2.7K ·
D
DailyProjects
یک پلی لیست جدید داریم که توش میپردازم به نحوه تست نویسی, تست های مختلف, و اصول تست نویسی در SDLC ویدیو اول این پلی لیست, اومدم در مورد dependency inversion principle و Dependency Injection صحبت کردم و گفتم چرا مهم هستند و تو فریم ورک های مختلف نحوه پیاده سازی DI رو بررسی کردیم. https://www.youtube.com/watch?v=qSMHCHeErYY&list=PLEQ3RnweNGA6v7qTMrDCcpgr9u91zvpq_&index=1 ویدیو دوم, اومدم در مورد ماک گرفتن صحبت کردم, ماک چیه و side effect چیه و چطوری میتونیم ماک بگیریم؟‌تفاوت ماک کاستوم چیه با ماک unittest و چه مزایا و معایبی نسبت به هم دارن؟ و کجا باید چیو ماک بگیریم https://www.youtube.com/watch?v=8tsrLxe_-oE&list=PLEQ3RnweNGA6v7qTMrDCcpgr9u91zvpq_&index=2 سورس کد: https://github.com/ManiMozaffar/testing-101 سوال داشتین حتما زیر ویدیو کامنت کنید پاسخ میدم 〰️〰️〰️〰️〰️〰️ © @raspberry_python | @ManiFoldsPython
23 · 2.7K ·
D
DailyProjects
یک پلی لیست داریم که توش میپردازم به نحوه تست نویسی, تست های مختلف, و اصول تست نویسی در SDLC تو ویدیو سوم پلی لیست, پرداختم به پای تست, توضیح دادم پای تست چیه, چرا بهتره از لایبری unit test پایتون و اینکه fixture ها چین و scope چیه و assertion چیه و چطور assertion ای بنویسیم که خوانایی بالاتری داشته باشه. https://www.youtube.com/watch?v=_YPJZtMRs8Q&list=PLEQ3RnweNGA6v7qTMrDCcpgr9u91zvpq_&index=3 تو ویدیو چهارم پلی لیست, نحوه ماک کردن database و application رو توضیح دادم و نحوه نوشتن تست تو FastAPI رو هم آموزش دادم. https://www.youtube.com/watch?v=zhp7Y6sWqfE&list=PLEQ3RnweNGA6v7qTMrDCcpgr9u91zvpq_&index=4 ‍سورس کد: https://github.com/ManiMozaffar/testing-101 سوال داشتین حتما زیر ویدیو کامنت کنید پاسخ میدم 〰️〰️〰️〰️〰️〰️ © @raspberry_python | @ManiFoldsPython
28 · 3.2K ·
ف
فرهاد ناصری زاده 🐍
نظرسنجی
برای نمایش کلیک کنید
9 · 3.2K ·
DailyProjects
پاسخنظرسنجی
from random import shuffle from collections import Counter def calc():     lst = [1, 1, 1, 2, 2, 2, 3, 3, 3]     shuffle(lst)     partitions = [lst[i : i + 3] for i in range(0, len(lst), 3)]     return all(len(set(sub)) == 3 for sub in partitions) n = 100_000 c = Counter(calc() for _ in range(n)) print(round(c[True] / n, 2)) @AmirSoroushh
10 · 3.4K ·
ف
فرهاد ناصری زاده 🐍
نظرسنجی
برای نمایش کلیک کنید
4 · 3.1K ·
D
DailyProjects
عکس
برای نمایش کلیک کنید
✔️ تازه‌های پایتون ۳.۱۲ تا چند روز آینده پایتون ۳.۱۲ که آخرین ورژن پایدار پایتون هست قراره منتشر بشه، بیاید تا با جدیدترین قابلیت‌ها و بهبودهای پایتون آشنا بشیم 😁 🔗 https://virgool.io/@liewpl/python-3-12-whats-new-vpq99njtytc6 〰〰〰〰〰〰〰〰 ©@raspberry_python 🔰group: @python_QA
17 · 3.8K ·
ف
فرهاد ناصری زاده 🐍
پیوند
برای نمایش کلیک کنید
سلام دوستان وقتتون بخیر ویدیو پلی لیست آموزش برنامه نویسی شئ گرایی آپلود شد. طی چند روز آینده تمامی قسمت های این پلی لیست رو آپلود میکنم. قسمت : 8 موضوع : Decorator function Property Variable Read Only امیدوارم که مفید بوده باشه میتونین از لینک تماشا کنید لینک گیت هاب : https://github.com/persianpython/PythonObjectOriented
17 · 2.2K ·

فید عمومی باز از ایندکس جست‌وجو ChatCrawler — «Google برای Telegram عمومی»؛ با خزش انجمن به‌روز می‌شود. زمان‌ها به UTC است.

فقط محتوای عمومی، API رسمی Telegram. دربارهٔ ما · پرسش‌ها · محدودیت‌های ایندکس · حذف یک صفحه · کاتالوگ · جست‌وجو · روش محاسبهٔ ما