Massimo_Bertaccini_Next_generation_cryptography_algorithms_explained.pdf
10.5 MB
🌷🌷کتاب عالی و جدید رمزنگاری 2022 با موضوع الگوریتم های رمرنگاری
Next-generation cryptography algorithms explained: get to grips with new-age cryptography algorithms, protocols, and their implementation /
@raspberry_python
Next-generation cryptography algorithms explained: get to grips with new-age cryptography algorithms, protocols, and their implementation /
@raspberry_python
✔️ کلاس
این تایپ برای اولین پارامتر یک
اول از همه تایپ مپ درست مانند
کاری که map میکنه اینه که میاد دونه دونه از اون
چند مثال کاربردی 🧪
تبدیل همه اعداد یک لیست به مربع خودشان:
اگر به
〰️〰️〰️〰️〰️〰️
©️@raspberry_python
map
کلاس map
یکی دیگه از تایپهای built-in پایتون است.این تایپ برای اولین پارامتر یک
Callable
دریافت میکنه (مثلا یک تابع یا یک کلاس که داندر __call__
رو پیادهسازی میکنه) و پارامتر بعدیش تعداد متغیری iterable
هست که بعد از callable
بهش پاس میدیم. signatureعه تابع مپ به این شکل هست:map(callable, *iterables) —> map objectاما map چه کاری انجام میده؟ 🤔
اول از همه تایپ مپ درست مانند
range
و فیلتر lazy iterator
هست، یعنی فوری نتایج رو محاسبه نمیکنه،کاری که map میکنه اینه که میاد دونه دونه از اون
iterable
(یا iterable
هایی) که بهش داده شده، به اون callable
پاس میده و نتیجه ای که اون callable
بهش داده (در واقع مقداری که از callable
ما return
شده) رو هر بار که ما next
میزنیم به ما برمیگردونه!چند مثال کاربردی 🧪
تبدیل همه اعداد یک لیست به مربع خودشان:
lst = [2, 4, 6, 8]تبدیل تمام استرینگهای یک لیست به شکل Uppercase خودشان:
print(list(map(lambda x: x ** 2, lst)))
Output: [4, 16, 36, 64]
lst = ["John", "David", "Mike"]نکته مهم ❗️
print(list(map(str.upper, lst)))
Output: ['JOHN', 'DAVID', 'MIKE']
اگر به
map
چند تا iterable
میدید، باید حواستون باشه که اون callable
باید به تعداد iterable
ها پارامتر داشته باشه! مثال:x = list(map(lambda x, y: x + y, [1, 2, 3], [4, 5, 6]))در مثال بالا دو تا
print(x)
Output: [5, 7, 9]
iterable
به مپ پاس دادیم پس باید تابعی که به map
میدیم دوتا آرگومان بگیره. حالا map
میاد پارامتر اول (یعنی x
) رو از اولین iterable
و دومی رو (یعنی y
) از دومین iterable
میگیره! نکته قابل توجه دیگه اینکه، این فرایند توی تابع (یعنی جمع x
و y
) به تعداد اعضای کوتاه ترین iterable
انجام میشه! یعنی اگر یکی از iterable
ها 2 عضو داشت و بقیه 5 عضو، فقط روی 2 عضو اول هر iterable
مپ کار انجام میده! مثال:x = list(map(lambda x, y: x + y, [2, 3], [4, 5, 6, 4]))🖋 @Pygrammer
print(x)
Output: [6, 8]
〰️〰️〰️〰️〰️〰️
©️@raspberry_python
Forwarded from Persian python
سلام دوستان وقت بخیر
ویدیو جدید پلی لیست FastApi آپلود شد
قسمت : 8
موضوع : Query Metadata
امیدوارم که مفید بوده باشه
میتونین از لینک زیر تماشا کنین
https://youtu.be/JWrKZuIjwSU
ویدیو جدید پلی لیست FastApi آپلود شد
قسمت : 8
موضوع : Query Metadata
امیدوارم که مفید بوده باشه
میتونین از لینک زیر تماشا کنین
https://youtu.be/JWrKZuIjwSU
YouTube
آموزش Api نویس با FastApi Python ( قسمت هشتم - Query MetaData )
سلام به کانال یوتیوبی پرشین پایتون خوش آمدید
FAST API
یک وب میکرو فریمورک پایتون هست که با شعار عملکرد بالا
(high performance)
، یادگیری آسان ، کد زنی سریع و آماده برای تولید توسط آقای سباستین رامیرز تولید شده
ویژگی های اصلی این فریمورک :
سرعت : عملکرد…
FAST API
یک وب میکرو فریمورک پایتون هست که با شعار عملکرد بالا
(high performance)
، یادگیری آسان ، کد زنی سریع و آماده برای تولید توسط آقای سباستین رامیرز تولید شده
ویژگی های اصلی این فریمورک :
سرعت : عملکرد…
✔️ توسعهدهندگان حرفهای نرمافزار چه اولویتبندی دارند؟
(اولویت از زیاد به کم)
اما بالاخره افراد و پستهایی در تلگرام و اینستاگرام هستن که یکی را آنچنان برایمان بزرگ میکنند که انگار بعضیوقتها باقی وجود خارجی ندارند :))
#liewpl
〰️〰️〰️〰️〰️
©@raspberry_python
(اولویت از زیاد به کم)
-----
آیا کد کار میکنه؟----
آیا تستهای automate شده دارید؟---
آیا برای کد user doc نوشته شده؟--
آیا راحت نصب میشه؟-
آیا به اندازه کافی سریع هست؟اما بالاخره افراد و پستهایی در تلگرام و اینستاگرام هستن که یکی را آنچنان برایمان بزرگ میکنند که انگار بعضیوقتها باقی وجود خارجی ندارند :))
#liewpl
〰️〰️〰️〰️〰️
©@raspberry_python
Forwarded from Persian python
سلام دوستان وقت بخیر
ویدیو جدید پلی لیست Pyqt6 آپلود شد
قسمت : 25
موضوع : پروژه NotePad - قسمت اول - MenuBar , ToolBar, Actions
امیدوارم که مفید بوده باشه
میتونین از لینک زیر تماشا کنین
https://youtu.be/ERYmXKfdA-Y
ویدیو جدید پلی لیست Pyqt6 آپلود شد
قسمت : 25
موضوع : پروژه NotePad - قسمت اول - MenuBar , ToolBar, Actions
امیدوارم که مفید بوده باشه
میتونین از لینک زیر تماشا کنین
https://youtu.be/ERYmXKfdA-Y
YouTube
قسمت بیست و پنجم آموزش Pyqt6 ( قسمت اول پروژه - Notepad )
سلام به کانال یوتیوبی پرشین پایتون خوش آمدید
قراره که یک پروژه NotePad بزنیم
تو این ویدیو کلا با دیزاینر کار کردیم و منو و آیکون به برنامه اضافه کردیم
سعی کردم تمامی مواردی که لازمه رو اضافه کنم
عکس هایی که استفاده کردم در چنل تلگراممون هستش
امیدوارم که…
قراره که یک پروژه NotePad بزنیم
تو این ویدیو کلا با دیزاینر کار کردیم و منو و آیکون به برنامه اضافه کردیم
سعی کردم تمامی مواردی که لازمه رو اضافه کنم
عکس هایی که استفاده کردم در چنل تلگراممون هستش
امیدوارم که…
🌐 termtosvg
termtosvg is a Unix terminal recorder written in Python
https://github.com/nbedos/termtosvg
Examples
Templates
@raspberry_python
termtosvg is a Unix terminal recorder written in Python
https://github.com/nbedos/termtosvg
Examples
Templates
@raspberry_python
🔴 گروه پایتون
@python_qa
🔴 گروه رزبری پای
@raspberry_micro
🔴 گروه رمزنگاری
@pycrypto
🔴 گروه بات تلگرام
@pyapi
🔴 گروه زبان سی،میکروکنترلر، fpga
@micro_fpga
🔴 گروه خرید و فروش قطعات الکترونیکی
@ElectronicsFreemarket
🔴 کانال زبان سی و میکروکنترلر
@c_micro
🔴 کانال میکروپایتون و اینترنت اشیا
@micropython_iot
🔴 کانال پردازش سیگنال و هوش مصنوعی
@ai_dsp
🔴 کانال آموزش پایتون و رزبری پای
@raspberry_python
🟢 کانال ریاضیات
@new_mathematical
🔴 مباحث متفرقه گروه های تخصصی
@BlindSpots
✅کانال درخواست پروژه
@project_req
🟢گروه نرم افزار متلب
@Matlab_MathWorks
@python_qa
🔴 گروه رزبری پای
@raspberry_micro
🔴 گروه رمزنگاری
@pycrypto
🔴 گروه بات تلگرام
@pyapi
🔴 گروه زبان سی،میکروکنترلر، fpga
@micro_fpga
🔴 گروه خرید و فروش قطعات الکترونیکی
@ElectronicsFreemarket
🔴 کانال زبان سی و میکروکنترلر
@c_micro
🔴 کانال میکروپایتون و اینترنت اشیا
@micropython_iot
🔴 کانال پردازش سیگنال و هوش مصنوعی
@ai_dsp
🔴 کانال آموزش پایتون و رزبری پای
@raspberry_python
🟢 کانال ریاضیات
@new_mathematical
🔴 مباحث متفرقه گروه های تخصصی
@BlindSpots
✅کانال درخواست پروژه
@project_req
🟢گروه نرم افزار متلب
@Matlab_MathWorks
Forwarded from Persian python
سلام وقت بخیر
ویدیو جدید پلی لیست Pyqt6 آپلود شد
قسمت : 9
موضوع: Body Validator
امیدوارم که مفید بوده باشه
میتونین از لینک زیر تماشا کنین
https://youtu.be/apTbcp4xDvE
ویدیو جدید پلی لیست Pyqt6 آپلود شد
قسمت : 9
موضوع: Body Validator
امیدوارم که مفید بوده باشه
میتونین از لینک زیر تماشا کنین
https://youtu.be/apTbcp4xDvE
YouTube
آموزش Api نویس با FastApi Python ( قسمت نهم - Body Validator )
سلام به کانال یوتیوبی پرشین پایتون خوش آمدید
FAST API
یک وب میکرو فریمورک پایتون هست که با شعار عملکرد بالا
(high performance)
، یادگیری آسان ، کد زنی سریع و آماده برای تولید توسط آقای سباستین رامیرز تولید شده
ویژگی های اصلی این فریمورک :
سرعت : عملکرد…
FAST API
یک وب میکرو فریمورک پایتون هست که با شعار عملکرد بالا
(high performance)
، یادگیری آسان ، کد زنی سریع و آماده برای تولید توسط آقای سباستین رامیرز تولید شده
ویژگی های اصلی این فریمورک :
سرعت : عملکرد…
Constant folding:
فرض کنید قرار هست تا یک فانکشن بنویسیم تا به ما تعداد ثانیه های موجود در یکسال رو بده. به سه شکل میتونیم بنویسیم:
از نظر خوانایی :
تو فانکشن fn1 کاملا مشخص هست که اون عدد ها چین از کجا اومدن ، خروجی چی هست... تو fn2 میشه یه حدس هایی زد که خروجی ما حاصل ضرب چه عدد هایی بوده توی فانکشن سوم هیچ نظری نمیشه داد که اون عدد چیه.
از نظر performance چی؟
اگه با واژه ی constant folding آشنا نبوده باشید احتمالا حدس میزنید که به همون میزان که از خوانایی داره کم میشه، به سرعت داره اضافه میشه. ولی توی runtime اینطور نیست:
پایتون زمانی که داره کد شمارو compile میکنه یه سری optimization های ریز انجام میده مثلا وقتی به عبارت :
پس زمانی که کد شما compile شد دیگه "حاصل" اون عبارت که 31536000 باشه برمیگرده موقع کال کردن و دقیقا انگار که fn3 رو کال کرده باشید.
توی اولی ولی اینطور نیست. هربار که شما فانکشن fn1 رو کال کنید پایتون اول میاد ۳۶۵ رو میگیره ذخیره میکنه تو days بعد ۲۴ رو میگیره ذخیره میکنه تو hours همینطور تا انتها... خط آخر هم میاد days و hours و minutes و seconds رو از local variable ها میگیره و تو هم ضرب میکنه و حاصل رو برمیگردونه.
✅ و در آخر فقط زمانی باید performance براتون مهم باشه که کدتون رو profile کردین و دیدین سرعت پایین فلان بخش از کد داره تاثیر جدی میذاره و بودن یا نبودن فلان عنصر تفاوت قابل توجهی داره ایجاد میکنه. شاید مثال خیلی خوبی نبود صرفا هدف گفتن constant folding بود چون با کامنت گذاری و docstring خوانایی کد رو به راحتی میتونید بالا ببرید. (در ضمن comment ها توی پروسه compile کاملا ignore میشن.) اگه خواستید docstring ها رو هم موقع compile نادیده بگیره پایتون:
@raspberry_python
فرض کنید قرار هست تا یک فانکشن بنویسیم تا به ما تعداد ثانیه های موجود در یکسال رو بده. به سه شکل میتونیم بنویسیم:
def fn1():اینا چه فرق هایی باهم دارن ؟
days = 365
hours = 24
minutes = 60
seconds = 60
return days * hours * minutes * seconds
def fn2():
return 365 * 24 * 60 * 60
def fn3():
return 31536000
از نظر خوانایی :
تو فانکشن fn1 کاملا مشخص هست که اون عدد ها چین از کجا اومدن ، خروجی چی هست... تو fn2 میشه یه حدس هایی زد که خروجی ما حاصل ضرب چه عدد هایی بوده توی فانکشن سوم هیچ نظری نمیشه داد که اون عدد چیه.
از نظر performance چی؟
اگه با واژه ی constant folding آشنا نبوده باشید احتمالا حدس میزنید که به همون میزان که از خوانایی داره کم میشه، به سرعت داره اضافه میشه. ولی توی runtime اینطور نیست:
پایتون زمانی که داره کد شمارو compile میکنه یه سری optimization های ریز انجام میده مثلا وقتی به عبارت :
365 * 24 * 60 * 60میرسه میدونه که این ۴ تا مقادیر ثابت هستن نمیشه که تغییر پیدا کنن پس میگه دلیلی نداره من هربار که fn2 رو کسی کال کرد بیام این ۴ تا عدد رو تو هم ضرب کنم و حاصل رو برگردونم. من میام یه بار حاصلش رو حساب میکنم و به جای اون عبارت قرارش میدم.
پس زمانی که کد شما compile شد دیگه "حاصل" اون عبارت که 31536000 باشه برمیگرده موقع کال کردن و دقیقا انگار که fn3 رو کال کرده باشید.
توی اولی ولی اینطور نیست. هربار که شما فانکشن fn1 رو کال کنید پایتون اول میاد ۳۶۵ رو میگیره ذخیره میکنه تو days بعد ۲۴ رو میگیره ذخیره میکنه تو hours همینطور تا انتها... خط آخر هم میاد days و hours و minutes و seconds رو از local variable ها میگیره و تو هم ضرب میکنه و حاصل رو برمیگردونه.
✅ و در آخر فقط زمانی باید performance براتون مهم باشه که کدتون رو profile کردین و دیدین سرعت پایین فلان بخش از کد داره تاثیر جدی میذاره و بودن یا نبودن فلان عنصر تفاوت قابل توجهی داره ایجاد میکنه. شاید مثال خیلی خوبی نبود صرفا هدف گفتن constant folding بود چون با کامنت گذاری و docstring خوانایی کد رو به راحتی میتونید بالا ببرید. (در ضمن comment ها توی پروسه compile کاملا ignore میشن.) اگه خواستید docstring ها رو هم موقع compile نادیده بگیره پایتون:
python -OO your_file.py#AmirSoroush
@raspberry_python