🐍 Python & Raspberry 🐍
Map & Filter Functions https://www.instagram.com/p/CSV_IwWDEvw/?utm_medium=copy_link
لینک جوین به اینستاگرام کانال و گروه ☝️☝️☝️😍😍
Forwarded from OpenCV | Python
This media is not supported in your browser
VIEW IN TELEGRAM
کتاب آموزش صفر تا صد زبان برنامه نویسی پایتون منتشر شد💎
تعداد صفحات: ۲۷۰ | ابعاد: وزیری
یکبار و برای همیشه زبان برنامه نویسی پایتون را کامل یاد بگیرید 👌💪
📚لینک مشخصات و دریافت کتاب:
https://shop.ali110co.ir/downloads/python-zero-to-hero-book/
❤️ضمن تبریک عید غدیر، سلامتی و آرامش را برای همه شما آرزومندیم❤️
🔻برای دوستان خود ارسال کنین🔻
🔹@OpenCV_olc🔹
تعداد صفحات: ۲۷۰ | ابعاد: وزیری
یکبار و برای همیشه زبان برنامه نویسی پایتون را کامل یاد بگیرید 👌💪
📚لینک مشخصات و دریافت کتاب:
https://shop.ali110co.ir/downloads/python-zero-to-hero-book/
❤️ضمن تبریک عید غدیر، سلامتی و آرامش را برای همه شما آرزومندیم❤️
🔻برای دوستان خود ارسال کنین🔻
🔹@OpenCV_olc🔹
تکه کد زیر رو در نظر بگیرید :
1- اولین مورد که نظر خیلی ها هم هست readability هست! فرض کنید به جای تمام built-in فانکشن هایی که پایتون داره :
2- مورد مهم بعدی:
* وقتی متد شما توسط پایتون کال بشه، پایتون یه checking هم انجام میده !
یه بار دیگه با دیگه با str ببینیم این رو :
پایتون توی مورد اول میاد میگه ، من نمتونم تشخیص بدم که obj2 بزرگ تر از obj1 هست یا نه ، بذار ببینم میتونم جور دیگه نگاه کنم و تشخیص بدم که obj1 کوچیک تر از obj2 هست ؟ بله میتونم! چون obj1 متد
ولی توی مورد دوم همچین خبری نیست.
4- مورد آخر که کم اهمیت هست ولی جالب بود بگیم ، توی دیتا تایپ های built-in پایتون ، سرعت built-in فانکشن ها سریع تر هست :
# 0.6157927000000001
دلیلش هم اینکه فانکشن len با C نوشته شده ، با توجه به تایپی که بهش میدیم، مسیرش رو برای پیدا کردن انتخاب میکنه. ولی توی پایینی پایتون دنبال متد
lst = [1, 2, 3]
print(lst.__len__()) # 3
print(len(lst)) # 3
هردو جواب یکسان میدن، آیا تفاوتی دارند ؟ آیا میشه همیشه از مجیک متد های متناظر استفاده کرد؟ امروز میخوایم 4 تا از تفاوت ها رو بررسی کنیم.1- اولین مورد که نظر خیلی ها هم هست readability هست! فرض کنید به جای تمام built-in فانکشن هایی که پایتون داره :
str(), bool(), len(), repr(), hash(), ...
ما معادل magic method اون رو استفاده کنیم:__str__(), __bool__(), __len__(), __repr__(), __hash__(), ...
یه صفحه از کدمون میشه پر از underscore که هم زشته هم ناخوانا مخصوصا اگه ترکیب هم بشن باهم...2- مورد مهم بعدی:
class C:
def __len__(self):
return 'salam'
obj = C()
print(obj.__len__()) # Fine
print(len(obj)) # Error
پایتون سر دومین print ارور داد ! البته که باید هم میداد، دلیلش منطقی هست وقتی ما طول یه آبجکتی رو میخوایم انتظار "عدد" داریم نمیشه طول آبجکت ما "سلام" باشه ولی توی اولی کامل ignore شده.* وقتی متد شما توسط پایتون کال بشه، پایتون یه checking هم انجام میده !
یه بار دیگه با دیگه با str ببینیم این رو :
class C:
def __str__(self):
return 10
obj = C()
print(obj.__str__()) # Fine
print(str(obj)) # Error
3- مورد بعدی توی comparison operator ها (نه arithmetic operator ها مثل ضرب و ...):class C:
def __lt__(self, other):
print('called')
class D:
pass
obj1 = C()
obj2 = D()
obj2 > obj1
obj2.__gt__(obj2)
دو نمونه داریم به اسم obj1 و obj2 ، از طرفی میدونیم magic method عه متناظر با علامت < متد عه __gt__
هست. ما برای هیچکدوم از کلاس ها __gt__
رو پیاده سازی نکردیم ولی:پایتون توی مورد اول میاد میگه ، من نمتونم تشخیص بدم که obj2 بزرگ تر از obj1 هست یا نه ، بذار ببینم میتونم جور دیگه نگاه کنم و تشخیص بدم که obj1 کوچیک تر از obj2 هست ؟ بله میتونم! چون obj1 متد
__lt__
رو پیاده سازی کرده پس اون رو کال میکنه.ولی توی مورد دوم همچین خبری نیست.
4- مورد آخر که کم اهمیت هست ولی جالب بود بگیم ، توی دیتا تایپ های built-in پایتون ، سرعت built-in فانکشن ها سریع تر هست :
from timeit import timeit
print(timeit("len('salam')", number=10000000))
print(timeit("'salam'.__len__()", number=10000000))
# 0.4709385# 0.6157927000000001
دلیلش هم اینکه فانکشن len با C نوشته شده ، با توجه به تایپی که بهش میدیم، مسیرش رو برای پیدا کردن انتخاب میکنه. ولی توی پایینی پایتون دنبال متد
__len__
توی namespace عه اون نمونه میگرده. (توی 10 میلیون بار اجرا 0.2 ثانیه تفاوت یعنی هیچی).This media is not supported in your browser
VIEW IN TELEGRAM
یه نمونه portfolio خلاقانه و زیبا :
https://pranavprakasan07.github.io/Portfolio/
اگه با گوشی نیستین میتونین لینک بالا رو باز کنید و خودتون امتحان کنید.
https://pranavprakasan07.github.io/Portfolio/
اگه با گوشی نیستین میتونین لینک بالا رو باز کنید و خودتون امتحان کنید.
برنامه نویسی متلب Matlab
📚 دسترسی به راهنمای نرم افزار
demo , help , helpdesk , helpwin , doc , lookfor
📚 مدیریت current directory
what , which , cd , delete , dir
📚 نحوه نمایش اعداد
format (rat,long,short,...)
📚 ورودی گرفتن از کاربر
input,inputdlg,...
📚 نمایش خروجی
disp , fprintf , sprintf , …
📚 مدیریت متلب
exit , quit , startup,...
📚 توابع منطقی
all , any , exist , logical , is* , find,...
#آموزش #دسته_بندی
Matlab | برنامه نویسی متلب
@Matlab_MathWorks
📚 دسترسی به راهنمای نرم افزار
demo , help , helpdesk , helpwin , doc , lookfor
📚 مدیریت current directory
what , which , cd , delete , dir
📚 نحوه نمایش اعداد
format (rat,long,short,...)
📚 ورودی گرفتن از کاربر
input,inputdlg,...
📚 نمایش خروجی
disp , fprintf , sprintf , …
📚 مدیریت متلب
exit , quit , startup,...
📚 توابع منطقی
all , any , exist , logical , is* , find,...
#آموزش #دسته_بندی
Matlab | برنامه نویسی متلب
@Matlab_MathWorks
Forwarded from SUT Twitter
اول باور نکردم.
خودم رفتم کتاب را دیدم.
بیخود نیست که کتابهای تاریخ و اجتماعی و... منفورترین کتابها نزد دانشآموزان هستند.
«عباس عبدی»
@sut_tw
خودم رفتم کتاب را دیدم.
بیخود نیست که کتابهای تاریخ و اجتماعی و... منفورترین کتابها نزد دانشآموزان هستند.
«عباس عبدی»
@sut_tw
کدوم گزینه مقداری *دقیقا* برابر با 0.3 داره؟ (کلاس Decimal از لایبرری decimal ایمپورت شده است)
Final Results
20%
0.1 + 0.2
19%
float(Decimal(0.1) + Decimal(0.2))
20%
float('0.1') + float('0.2')
18%
float(Decimal('0.1') + Decimal('0.2'))
9%
.1 + .2
14%
float(Decimal(.1) + Decimal(.2))
طبق گفته دوستان توی نسخههای جدید پایچارم نمیشه از اون افزونه تریال ریست استفاده کرد (شاید در اینده اپدیت کنن البته افزونه رو) اما اگه میخواید پایچارمتون رو اپدیت کنید باید از این چیزایی ک تو این لینک هست استفاده کنید برای تریال ریست کردن پایچارمتون
https://gist.github.com/shahadul878/5f33b90e55c1655aee05fa239ec1b978
@raspberry_python
https://gist.github.com/shahadul878/5f33b90e55c1655aee05fa239ec1b978
@raspberry_python
🐍 Python & Raspberry 🐍
کدوم گزینه مقداری *دقیقا* برابر با 0.3 داره؟ (کلاس Decimal از لایبرری decimal ایمپورت شده است)
📸 تحلیل سوال
📀 احتمالا با این مشکل معروف مواجه شدید یا جایی دیدید:
https://www.exploringbinary.com/floating-point-converter/
👈 به همین ترتیب، کار با اعداد اعشاری، ممکن هست که کمی بالا و پایین داشته باشه! که البته تا وقتی که با مقادیر دقیق سر و کار ندارید، مشکل خاصی بوجود نمیاره.
‼️ دقت کنید که پایتون (درواقع: repr)، اعداد رو با تقریب بهتون نشون میده! مثلا وقتی ۰.۱ مینویسید، بعد از تبدیل، مقدار حاصل رو با تقریب ریزی نشون میده. مثلا:
❓ اما، اگه خواستیم حساب دقیقی داشته باشیم، تکلیف چیه؟ لایبرری decimal این مشکل رو حل میکنه:
⚠️ در گزینهای که به عنوان جواب نهایی تلقی شد، یک ابهام وجود داره! در واقع، هدف از گذاشتن float، یکدست شدن typeها و float شدن بود، اما همچنان یک نکته وجود داره. وقتی که مینویسیم:
🙏🏻 از آقای @AmirSoroushh بابت تذکر و توضیحات و راهنماییها تشکر میکنم.
📕 منابع (برای مطالعه بیشتر و عمیقتر توصیه میشه) :
🔗 python3 doc > 3.9.6 > tutorial > 15. Floating Point Arithmetic: Issues and Limitations
🔗 cpython/Lib/_pydecimal.py source code
🔗 language agnostic - Is floating point math broken? - Stack Overflow
🆔 @raspberry_python
📀 احتمالا با این مشکل معروف مواجه شدید یا جایی دیدید:
>>> 0.1 + 0.2 == 0.3❔ اما چرا این اتفاق میفته؟ بذارید قبل از ورود به اصل مطلب، کمی حساب کتاب عادی انجام بدیم! فرض کنیم مقدار «یکهفتادم» رو از شما [در مبنای ۱۰ خودمون!] خواستن، میدونید که یک عدد اعشاری بدست میاد که انتهایی نداره!
False
>>> 0.1 + 0.2
0.30000000000000004
0.0142857142857142857...برای کامپیوتر هم، به همین شکل! منتهی مبنایی که برای کارهای خودش بکار میبره، مبنای ۲ هست. و وقتی اعدادی مثل ۰.۱ («یکدهم» در مبنای ده) رو بهش میدید، به یک عدد اعشاری در مبنای ۲ تبدیل میکنه، و عدد حاصل، اینجا هم انتهایی نداره!
0.00011001100110011001...برای همین، پایتون - مثل خیلی از زبانها - تا یک جایی تعداد ارقام رو حساب میکنه. مثلا برای 0.1 و 0.2:
0.1 -> 0.0001100110011001100110011001100110011001100110011001101که وقتی دوباره میخواد توی مبنای ده نشون بده، همچین چیزی میشه و [احتمالا!] همچین چیزی ببینید:
0.2 -> 0.001100110011001100110011001100110011001100110011001101
0.1 -> 0.1000000000000000055511151231257827021181583404541015625🔭 برای گرفتن این مقدار، میتونید از سایت زیر استفاده کنید:
0.2 -> 0.200000000000000011102230246251565404236316680908203125
https://www.exploringbinary.com/floating-point-converter/
👈 به همین ترتیب، کار با اعداد اعشاری، ممکن هست که کمی بالا و پایین داشته باشه! که البته تا وقتی که با مقادیر دقیق سر و کار ندارید، مشکل خاصی بوجود نمیاره.
‼️ دقت کنید که پایتون (درواقع: repr)، اعداد رو با تقریب بهتون نشون میده! مثلا وقتی ۰.۱ مینویسید، بعد از تبدیل، مقدار حاصل رو با تقریب ریزی نشون میده. مثلا:
>>> 0.1
0.1
>>> "{:.55f}".format(x)
'0.1000000000000000055511151231257827021181583404541015625'
پس دقت کنید که اکثر مواقع، عدد اعشاری با اندکی بالا و پایین شدن مقدار ذخیره شده؛ اما ممکن هست که بصورت تقریبی نمایش داده بشه، و سعی میکنه تا جای ممکن تقریب بزنه.❓ اما، اگه خواستیم حساب دقیقی داشته باشیم، تکلیف چیه؟ لایبرری decimal این مشکل رو حل میکنه:
>>> from decimal import Decimal‼️ حواستون باشه که عدد اعشاری رو در قالب float به Decimal ندید! چون خود اون عدد اعشاری هم، اول توسط پایتون پردازش میشه و باز هم کمی تقریب این وسط بوجود میاد:
>>> Decimal('0.1') + Decimal('0.2')
Decimal('0.3')
>>> Decimal(0.1)برای همین، باید در قالب رشته بدید تا مقدار رو دقیق نگهداره و محاسبه کنه.
Decimal('0.1000000000000000055511151231257827021181583404541015625')
>>> Decimal(0.2)
Decimal('0.200000000000000011102230246251565404236316680908203125')
⚠️ در گزینهای که به عنوان جواب نهایی تلقی شد، یک ابهام وجود داره! در واقع، هدف از گذاشتن float، یکدست شدن typeها و float شدن بود، اما همچنان یک نکته وجود داره. وقتی که مینویسیم:
float(decimal.Decimal('0.3')) == 0.3که decimal.Decimal('0.3') دقیقا برابر با حاصل decimal.Decimal('0.1') + decimal.Decimal('0.2') هست، ما True رو دریافت میکنیم! و واقعا هم همینطور هست! چون 0.3 در پایتون، در هر دو هست. اما این، همون 0.3 (کسر ۳ بر ۱۰) که ما در دنیای واقعی میشناسیم هست...؟ خیر! این رو ببینید:
>>> f"{0.3:.55f}"برابرند، اما نه با اون چیزی که میگفتیم! :)
'0.2999999999999999888977697537484345957636833190917968750'
>>> f"{float(decimal.Decimal('0.3')):.55f}"
'0.2999999999999999888977697537484345957636833190917968750'
🙏🏻 از آقای @AmirSoroushh بابت تذکر و توضیحات و راهنماییها تشکر میکنم.
📕 منابع (برای مطالعه بیشتر و عمیقتر توصیه میشه) :
🔗 python3 doc > 3.9.6 > tutorial > 15. Floating Point Arithmetic: Issues and Limitations
🔗 cpython/Lib/_pydecimal.py source code
🔗 language agnostic - Is floating point math broken? - Stack Overflow
🆔 @raspberry_python
Exploring Binary | Binary Numbers, Binary Code, and Binary Logic
Decimal to Floating-Point Converter - Exploring Binary
A decimal to IEEE 754 binary floating-point converter, which produces correctly rounded single-precision and double-precision conversions.
https://youtu.be/8r0ACg3iI3k
لامبدا شرایط خطرناکی برای کشورها به لحاظ شیوع کرونا رقم زده است، این واریانت خطرناک، سرایتپذیری و قدرتگریز از ایمنی بیشتری دارد و اثرگذاری واکسنها را نشانه گرفته است.
به گزارش روز سهشنبه ایرنا از دانشگاه علوم پزشکی شهیدبهشتی، دکتر علیرضا ناجی با اشاره به اینکه حذف هفت آمینواسید در جهش واریانت لامبدا چالشی بزرگ پیش روی تستهای تشخیصی است، افزود: به نظر میرسد واریانت لامبدا در حال تبدیل شدن به تهدید جدی جهانی است و تاکنون در ۲۹ کشور وریانت لامبدا شناسایی و ثبت شده است.
وی با تاکید بر اینکه واریانت لامبدا برای اولین بار در کشور پرو شناسایی شد، افزود: این کشور با ثبت ۵۹۶ مرگ در هر صد هزار نفر جمعیت، بالاترین مرگ و میرهای کرونایی را ثبت کرد که از این تعداد مبتلایان، ۹۷ درصد مربوط به واریانت لامبدا است.
استاد دانشگاه علوم پزشکی شهیدبهشتی ادامه داد: لهستان با ثبت ۳۰۷ مرگ کرونایی در روز بعد از کشور پرو رتبه دوم چرخش واریانت لامبدا را به خود اختصاص داده است.
instagram
#کرونا
#لامبدا
#Covid #Lambda #variant
لامبدا شرایط خطرناکی برای کشورها به لحاظ شیوع کرونا رقم زده است، این واریانت خطرناک، سرایتپذیری و قدرتگریز از ایمنی بیشتری دارد و اثرگذاری واکسنها را نشانه گرفته است.
به گزارش روز سهشنبه ایرنا از دانشگاه علوم پزشکی شهیدبهشتی، دکتر علیرضا ناجی با اشاره به اینکه حذف هفت آمینواسید در جهش واریانت لامبدا چالشی بزرگ پیش روی تستهای تشخیصی است، افزود: به نظر میرسد واریانت لامبدا در حال تبدیل شدن به تهدید جدی جهانی است و تاکنون در ۲۹ کشور وریانت لامبدا شناسایی و ثبت شده است.
وی با تاکید بر اینکه واریانت لامبدا برای اولین بار در کشور پرو شناسایی شد، افزود: این کشور با ثبت ۵۹۶ مرگ در هر صد هزار نفر جمعیت، بالاترین مرگ و میرهای کرونایی را ثبت کرد که از این تعداد مبتلایان، ۹۷ درصد مربوط به واریانت لامبدا است.
استاد دانشگاه علوم پزشکی شهیدبهشتی ادامه داد: لهستان با ثبت ۳۰۷ مرگ کرونایی در روز بعد از کشور پرو رتبه دوم چرخش واریانت لامبدا را به خود اختصاص داده است.
#کرونا
#لامبدا
#Covid #Lambda #variant
YouTube
Covid Lambda variant / کرونای لامبدا
تهران - ایرنا - رییس مرکز تحقیقات ویروسشناسی دانشگاه علوم پزشکی شهیدبهشتی با اشاره به افزایش نگرانیها درباره کرونای لامبدا گفت: لامبدا شرایط خطرناکی برای کشورها به لحاظ شیوع کرونا رقم زده است، این واریانت خطرناک، سرایتپذیری و قدرتگریز از ایمنی بیشتری…
خروجی کد بالا چیست ؟
Anonymous Quiz
53%
[1, 2, 3]
17%
UnboundLocalError
8%
ValueError
7%
[1, 2]
15%
دیدن جواب