یک پلی لیست جدید داریم که توش میپردازم به نحوه تست نویسی, تست های مختلف, و اصول تست نویسی در 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
یک پلی لیست داریم که توش میپردازم به نحوه تست نویسی, تست های مختلف, و اصول تست نویسی در 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
Please open Telegram to view this post
VIEW IN TELEGRAM
تعداد 9 توپ شامل سه توپ از رنگ های سفید، آبی و زرد به طور کاملا تصادفی بین سه نفر به طور مساوی تقسیم می کنیم. احتمال اینکه هر شخص توپ هایی از هر سه رنگ داشته باشد چقدر هست؟
Final Results
28%
0 /06
25%
0/08
30%
0/13
16%
0/17
🐍 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
کوئیز
چند عدد سه رقمی زوج بدون تکرار با ارقام متمایز وجود دارد؟ 😉
چند عدد سه رقمی زوج بدون تکرار با ارقام متمایز وجود دارد؟ 😉
Final Results
15%
265
24%
282
36%
328
24%
256
کوئیز 🤩
تاسی را آنقدر پرتاب می کنیم تا برای اولین بار عدد 6 ظاهر شود، احتمال اینکه حداقل 3 پرتاب لازم باشد، کدام است؟
تاسی را آنقدر پرتاب می کنیم تا برای اولین بار عدد 6 ظاهر شود، احتمال اینکه حداقل 3 پرتاب لازم باشد، کدام است؟
Final Results
13%
20/36
51%
25/36
24%
17/36
12%
45/72
✔️ تازههای پایتون ۳.۱۲
تا چند روز آینده پایتون ۳.۱۲ که آخرین ورژن پایدار پایتون هست قراره منتشر بشه، بیاید تا با جدیدترین قابلیتها و بهبودهای پایتون آشنا بشیم 😁
🔗 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
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.
✔️ استیبل بودن یا نبودن یک الگوریتم مرتب سازی
یکی از دسته بندی های موجود برای الگوریتم هایsort کردن، فاکتور stable بودن یا نبودن هست. به طور خلاصه به الگوریتمی میگن stable که:
موقع sort کردن یک لیست، اگه ۲ تا آیتم مساوی هم بودن، دقیقا به همون ترتیبی که توی لیست اولیه بودن، توی لیست مرتب شده هم ظاهر بشن.
فرض کنید به شما میگن لیست زیر رو بر اساس: اول نمره و بعد درصورت یکسان بودن نمره ها، بر اساس حروف الفبا مرتب کنید. منتاها این لیستی که به شما میدن خودش بر اساس حروف الفبا مرتب شده هست:
lst = [
("Ashkan",17),
("Bahar",18),
("Sorena",17)
]
یک راه مرسوم اینه که به این روش sort رو انجام بدیم:
lst.sort(key=lambda x: (x[1], x[0]))
کاملا درسته و هیچ اشکالی نداره. بیشتر میخواستیم درباره موضوع پست صحبت کنیم.
آیا میتونیم فقط بیایم بر اساس آیتم دوم sort ش کنیم؟ این که خود لیست بر اساس حروف الفبا مرتب شده آیا کمکی میکنه؟ یعنی:
lst.sort(key=lambda x: x[1])
اگه بدونیم الگوریتمی که استفاده شده stable هست بله میتونیم و گارانتی هست که آیتم های مساوی به همون ترتیب در خروجی قرار میگیرن، و چون در حال حاضر بر اساس حروف الفبا مرتب شده هستن، اون افرادی که نمره ی برابر دارن اتوماتیک بر اساس حروف الفبا هم مرتب هستن.
خروجی هردو:
[
('Ashkan', 17),
('Sorena', 17),
('Bahar', 18)
]
پایتون از Tim Sort استفاده میکنه و stable هست.
چند تا از الگوریتم های مرتب سازی استیبل:
• Insertion Sort
• Merge Sort
• Bubble Sort
• Tim Sort
و نقطهی مقابلشون:
• Heap Sort
• Selection Sort
• Quick Sort
✒️ @AmirSoroushh
یکی از دسته بندی های موجود برای الگوریتم هایsort کردن، فاکتور stable بودن یا نبودن هست. به طور خلاصه به الگوریتمی میگن stable که:
موقع sort کردن یک لیست، اگه ۲ تا آیتم مساوی هم بودن، دقیقا به همون ترتیبی که توی لیست اولیه بودن، توی لیست مرتب شده هم ظاهر بشن.
فرض کنید به شما میگن لیست زیر رو بر اساس: اول نمره و بعد درصورت یکسان بودن نمره ها، بر اساس حروف الفبا مرتب کنید. منتاها این لیستی که به شما میدن خودش بر اساس حروف الفبا مرتب شده هست:
lst = [
("Ashkan",17),
("Bahar",18),
("Sorena",17)
]
یک راه مرسوم اینه که به این روش sort رو انجام بدیم:
lst.sort(key=lambda x: (x[1], x[0]))
کاملا درسته و هیچ اشکالی نداره. بیشتر میخواستیم درباره موضوع پست صحبت کنیم.
آیا میتونیم فقط بیایم بر اساس آیتم دوم sort ش کنیم؟ این که خود لیست بر اساس حروف الفبا مرتب شده آیا کمکی میکنه؟ یعنی:
lst.sort(key=lambda x: x[1])
اگه بدونیم الگوریتمی که استفاده شده stable هست بله میتونیم و گارانتی هست که آیتم های مساوی به همون ترتیب در خروجی قرار میگیرن، و چون در حال حاضر بر اساس حروف الفبا مرتب شده هستن، اون افرادی که نمره ی برابر دارن اتوماتیک بر اساس حروف الفبا هم مرتب هستن.
خروجی هردو:
[
('Ashkan', 17),
('Sorena', 17),
('Bahar', 18)
]
پایتون از Tim Sort استفاده میکنه و stable هست.
چند تا از الگوریتم های مرتب سازی استیبل:
• Insertion Sort
• Merge Sort
• Bubble Sort
• Tim Sort
و نقطهی مقابلشون:
• Heap Sort
• Selection Sort
• Quick Sort
✒️ @AmirSoroushh
Forwarded from Persian python
سلام دوستان وقتتون بخیر
ویدیو پلی لیست آموزش برنامه نویسی شئ گرایی آپلود شد.
طی چند روز آینده تمامی قسمت های این پلی لیست رو آپلود میکنم.
قسمت : 9
موضوع :
Inheritance
Super () vs CLASSNAME
چه مواقعی باید از inherit استفاده کنیم ؟
چرا inherit ؟
همراه با چندین مثال ...
میتونین از لینک زیر تماشا کنید
https://youtu.be/BkZdzBQPrS8
امیدوارم که مفید بوده باشه
ویدیو پلی لیست آموزش برنامه نویسی شئ گرایی آپلود شد.
طی چند روز آینده تمامی قسمت های این پلی لیست رو آپلود میکنم.
قسمت : 9
موضوع :
Inheritance
Super () vs CLASSNAME
چه مواقعی باید از inherit استفاده کنیم ؟
چرا inherit ؟
همراه با چندین مثال ...
میتونین از لینک زیر تماشا کنید
https://youtu.be/BkZdzBQPrS8
امیدوارم که مفید بوده باشه
YouTube
آموزش برنامه نویسی شئ گرایی در پایتون مقدماتی تا پیشرفته ( قسمت نهم ) ( Inheritance )
قدرت برنامه نویسی شیءگرا در پایتون را با ما در این ویدیوی ارث بری کلاس کاوش کنید. این ویدیو شما را از طریق مفهوم اساسی ارث بری، یکی از ستون های OOP، که به ما اجازه می دهد یک کلاس را تعریف کنیم که تمام متدها و خواص را از یک کلاس دیگر به ارث می برد، راهنمایی…
Drawing Beautiful Design Using Python
👇👇
from turtle import *
import turtle as t
def my_turtle():
# Choices
sides = str(3)
loops = str(450)
pen = 1
for i in range(int(loops)):
forward(i * 2/int(sides) + i)
left(360/int(sides) + .350)
hideturtle()
pensize(pen)
speed(30)
my_turtle()
t.done()
@raspberry_python
👇👇
from turtle import *
import turtle as t
def my_turtle():
# Choices
sides = str(3)
loops = str(450)
pen = 1
for i in range(int(loops)):
forward(i * 2/int(sides) + i)
left(360/int(sides) + .350)
hideturtle()
pensize(pen)
speed(30)
my_turtle()
t.done()
@raspberry_python