conditional breakpoint:
فرض کنید همچین کدی داریم:
ولی موضوع این هست که دیباگر وقتی ران میشه همون ابتدا کنار for loop وایمیسته و ما باید دستی جلو ببریم. تو این حالت i مساوی ۰ هست. منطقی نیست که ۹۰ بار روی next بزنیم تا برسیم به اون حالتی که i برابر ۹۰ میشه. خوشبختانه یه چیزی به اسم conditional breakpoint وجود داره که میتونید بهش یه expression عه boolean بدید و دیباگر فقط زمانی وایمیسته که اون expression درست باشه.
توی ادیتور دلخواهتون بعد از اینکه break point گذاشتین، راست کلیک کنید روش و edit رو بزنید(یا هر اسم دیگه ای که داره) و توی اون پنجره ای که باز میشه بنویسید:
بابت این مثال تعبیه ای و ساده ببخشید ولی چیز بهتری به ذهنم نرسید. مهم مفهومش بود که تحت شرط خاصی بگیم وایسه.
🖊 @AmirSoroushh
فرض کنید همچین کدی داریم:
for i in range(100):و دوباره فرض کنید که زمانی که i میشه ۹۰ یه مشکلی بوجود میاد. میخواهیم برنامه رو دیباگ کنیم. چه کنیم؟ break point بذاریم سمت چپ for loop.
print(i)
ولی موضوع این هست که دیباگر وقتی ران میشه همون ابتدا کنار for loop وایمیسته و ما باید دستی جلو ببریم. تو این حالت i مساوی ۰ هست. منطقی نیست که ۹۰ بار روی next بزنیم تا برسیم به اون حالتی که i برابر ۹۰ میشه. خوشبختانه یه چیزی به اسم conditional breakpoint وجود داره که میتونید بهش یه expression عه boolean بدید و دیباگر فقط زمانی وایمیسته که اون expression درست باشه.
توی ادیتور دلخواهتون بعد از اینکه break point گذاشتین، راست کلیک کنید روش و edit رو بزنید(یا هر اسم دیگه ای که داره) و توی اون پنجره ای که باز میشه بنویسید:
i == 90حالا با زدن دکمه دیباگ فقط زمانی وایمیسته که این شرط درست باشه.
بابت این مثال تعبیه ای و ساده ببخشید ولی چیز بهتری به ذهنم نرسید. مهم مفهومش بود که تحت شرط خاصی بگیم وایسه.
🖊 @AmirSoroushh
👍14👏4
👍2
.pythonrc
درست مثل
.nanorc
.bashrc
.vimrc
...
و بقیه ی فایل های مشابه، یه pythonrc هم داریم که به همون منظور ایجاد شده. قرار هست از قبل از startup عه REPL خونده و اجرا بشه.
استفاده های مختلفی میشه کرد: مثلا اگه همیشه وقتی REPL رو باز میکنید یه سری کتابخونه رو import میکنید، میتونید یک بار اینجا import کنید و دیگه هربار اینکار رو نکنید.
یا مثلا اگه یه سری helper فانکشن برای خودتون نوشتید میتونید یکبار اینجا تعریفش کنید و هروقت که REPL رو باز کردید در دسترس شما هست.
یه کار جالب دیگه اینکه میتونیم built-in فانکشن help رو با inspect که توی rich هست عوض کنیم:
.pythonrc
اشاره کنه.
الان ورژن rich استفاده میشه وقتی روی آبجکتی بزنید.
منبع
🖊 @AmirSoroushh
درست مثل
.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
👍5
یک پلی لیست جدید داریم که توش میپردازم به نحوه تست نویسی, تست های مختلف, و اصول تست نویسی در 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
ویدیو اول این پلی لیست, اومدم در مورد 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
👍7
یک پلی لیست داریم که توش میپردازم به نحوه تست نویسی, تست های مختلف, و اصول تست نویسی در 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
تو ویدیو سوم پلی لیست, پرداختم به پای تست, توضیح دادم پای تست چیه, چرا بهتره از لایبری 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
👍5
تعداد 9 توپ شامل سه توپ از رنگ های سفید، آبی و زرد به طور کاملا تصادفی بین سه نفر به طور مساوی تقسیم می کنیم. احتمال اینکه هر شخص توپ هایی از هر سه رنگ داشته باشد چقدر هست؟
Final Results
28%
0 /06
25%
0/08
30%
0/13
16%
0/17
👍6👎3
🐍 Python & Raspberry 🐍
تعداد 9 توپ شامل سه توپ از رنگ های سفید، آبی و زرد به طور کاملا تصادفی بین سه نفر به طور مساوی تقسیم می کنیم. احتمال اینکه هر شخص توپ هایی از هر سه رنگ داشته باشد چقدر هست؟
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
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
👍4🍾2
کوئیز
چند عدد سه رقمی زوج بدون تکرار با ارقام متمایز وجود دارد؟ 😉
چند عدد سه رقمی زوج بدون تکرار با ارقام متمایز وجود دارد؟ 😉
Final Results
15%
265
24%
282
36%
328
24%
256
👍11👎3🔥1
کوئیز 🤩
تاسی را آنقدر پرتاب می کنیم تا برای اولین بار عدد 6 ظاهر شود، احتمال اینکه حداقل 3 پرتاب لازم باشد، کدام است؟
تاسی را آنقدر پرتاب می کنیم تا برای اولین بار عدد 6 ظاهر شود، احتمال اینکه حداقل 3 پرتاب لازم باشد، کدام است؟
Final Results
13%
20/36
51%
25/36
24%
17/36
12%
45/72
👍7👎2🔥1
✔️ تازههای پایتون ۳.۱۲
تا چند روز آینده پایتون ۳.۱۲ که آخرین ورژن پایدار پایتون هست قراره منتشر بشه، بیاید تا با جدیدترین قابلیتها و بهبودهای پایتون آشنا بشیم 😁
🔗 https://virgool.io/@liewpl/python-3-12-whats-new-vpq99njtytc6
〰〰〰〰〰〰〰〰
©@raspberry_python
🔰group: @python_QA
تا چند روز آینده پایتون ۳.۱۲ که آخرین ورژن پایدار پایتون هست قراره منتشر بشه، بیاید تا با جدیدترین قابلیتها و بهبودهای پایتون آشنا بشیم 😁
🔗 https://virgool.io/@liewpl/python-3-12-whats-new-vpq99njtytc6
〰〰〰〰〰〰〰〰
©@raspberry_python
🔰group: @python_QA
👍9
Forwarded from Persian python
سلام دوستان وقتتون بخیر
ویدیو پلی لیست آموزش برنامه نویسی شئ گرایی آپلود شد.
طی چند روز آینده تمامی قسمت های این پلی لیست رو آپلود میکنم.
قسمت : 8
موضوع :
Decorator
function Property
Variable Read Only
امیدوارم که مفید بوده باشه
میتونین از لینک تماشا کنید
لینک گیت هاب :
https://github.com/persianpython/PythonObjectOriented
ویدیو پلی لیست آموزش برنامه نویسی شئ گرایی آپلود شد.
طی چند روز آینده تمامی قسمت های این پلی لیست رو آپلود میکنم.
قسمت : 8
موضوع :
Decorator
function Property
Variable Read Only
امیدوارم که مفید بوده باشه
میتونین از لینک تماشا کنید
لینک گیت هاب :
https://github.com/persianpython/PythonObjectOriented
GitHub
GitHub - persianpython/PythonObjectOriented: آموزش برنامه نویسی شئ گرایی در پایتون
آموزش برنامه نویسی شئ گرایی در پایتون. Contribute to persianpython/PythonObjectOriented development by creating an account on GitHub.
👍7