✔️ تراکنش در پایگاه داده (Transaction)
در پایگاه داده، یک تراکنش به مجموعهای از عملیات گفته میشود که به صورت یک واحد منطقی انجام میشوند. این عملیات میتوانند شامل خواندن، نوشتن، بروزرسانی یا حذف دادهها باشند. تراکنشها برای حفظ یکپارچگی و صحت دادهها در پایگاه داده بسیار مهم هستند.
▪️یک تراکنش باید دارای چهار ویژگی اصلی باشد که به عنوان خواص ACID شناخته میشوند:
✔️ اتمیک (Atomicity): یا همه یا هیچ. یک تراکنش باید به طور کامل انجام شود یا به طور کامل لغو شود.
✔️ سازگار (Consistency): یک تراکنش باید پایگاه داده را از یک حالت سازگار به حالت سازگار دیگر منتقل کند.
✔️ تفکیک شده (Isolation): تراکنشها باید از یکدیگر مستقل باشند و تداخلی با یکدیگر نداشته باشند.
✔️ دایمی (Durability): پس از انجام یک تراکنش، تغییرات آن باید به طور دائمی در پایگاه داده ذخیره شوند.
مثال: فرض کنید میخواهید پول از حساب خود به حساب دوستتان منتقل کنید. این فرآیند به عنوان یک تراکنش در نظر گرفته میشود. این تراکنش شامل چندین عملیات است که باید به طور کامل انجام شوند:
برداشت پول از حساب شما: این عملیات باید با موفقیت انجام شود، در غیر این صورت تراکنش باید لغو شود.
واریز پول به حساب دوستتان: این عملیات نیز باید با موفقیت انجام شود، در غیر این صورت تراکنش باید لغو شود.
اگر در هر مرحله از این فرآیند مشکلی پیش بیاید، تراکنش لغو میشود و هیچ تغییری در حسابها ایجاد نمیشود.
📱 @Teachify | برنامه نویسی
در پایگاه داده، یک تراکنش به مجموعهای از عملیات گفته میشود که به صورت یک واحد منطقی انجام میشوند. این عملیات میتوانند شامل خواندن، نوشتن، بروزرسانی یا حذف دادهها باشند. تراکنشها برای حفظ یکپارچگی و صحت دادهها در پایگاه داده بسیار مهم هستند.
▪️یک تراکنش باید دارای چهار ویژگی اصلی باشد که به عنوان خواص ACID شناخته میشوند:
مثال: فرض کنید میخواهید پول از حساب خود به حساب دوستتان منتقل کنید. این فرآیند به عنوان یک تراکنش در نظر گرفته میشود. این تراکنش شامل چندین عملیات است که باید به طور کامل انجام شوند:
برداشت پول از حساب شما: این عملیات باید با موفقیت انجام شود، در غیر این صورت تراکنش باید لغو شود.
واریز پول به حساب دوستتان: این عملیات نیز باید با موفقیت انجام شود، در غیر این صورت تراکنش باید لغو شود.
اگر در هر مرحله از این فرآیند مشکلی پیش بیاید، تراکنش لغو میشود و هیچ تغییری در حسابها ایجاد نمیشود.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣26😁1
✔️ 2 مدل مصاحبه ای که توی استخدام شرکت ها باهاش رو به رو میشید
1⃣ مصاحبههای فنی:
تمرکز این نوع مصاحبه بر روی ارزیابی دانش، مهارت و تجربه شما در زمینهی مربوط به شغل مورد نظره.
این نوع مصاحبه معمولاً توسط متخصصان در اون حوزه انجام میشه و سوالات تخصصیتر و چالشبرانگیزتری رو شامل میشه.
برای مثال، در یه مصاحبه فنی برای شغل برنامهنویسی، ممکنه از شما سوالاتی در مورد زبانهای برنامهنویسی، الگوریتمها، ساختار دادهها و ... پرسیده بشه.
🔢 مصاحبههای HR یا Human Resources:
تمرکز این نوع مصاحبه بر روی ارزیابی تناسب شما با فرهنگ سازمانی شرکت، شخصیت، انگیزهها و ... شماست.
این نوع مصاحبه معمولاً توسط کارکنان بخش منابع انسانی (HR) یا مدیران شرکت انجام میشه و سوالات کلیتر و غیرتخصصیتری رو شامل میشه.
برای مثال، در یه مصاحبه HR، ممکنه از شما سوالاتی در مورد نقاط قوت و ضعف، اهداف شغلی، تجربه تیمی و ... پرسیده بشه.
💻 @Teachify | برنامه نویسی
تمرکز این نوع مصاحبه بر روی ارزیابی دانش، مهارت و تجربه شما در زمینهی مربوط به شغل مورد نظره.
این نوع مصاحبه معمولاً توسط متخصصان در اون حوزه انجام میشه و سوالات تخصصیتر و چالشبرانگیزتری رو شامل میشه.
برای مثال، در یه مصاحبه فنی برای شغل برنامهنویسی، ممکنه از شما سوالاتی در مورد زبانهای برنامهنویسی، الگوریتمها، ساختار دادهها و ... پرسیده بشه.
تمرکز این نوع مصاحبه بر روی ارزیابی تناسب شما با فرهنگ سازمانی شرکت، شخصیت، انگیزهها و ... شماست.
این نوع مصاحبه معمولاً توسط کارکنان بخش منابع انسانی (HR) یا مدیران شرکت انجام میشه و سوالات کلیتر و غیرتخصصیتری رو شامل میشه.
برای مثال، در یه مصاحبه HR، ممکنه از شما سوالاتی در مورد نقاط قوت و ضعف، اهداف شغلی، تجربه تیمی و ... پرسیده بشه.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
در دنیای توسعه نرمافزار، لایسنسها نقش مهمی در تعیین نحوه استفاده، توزیع و تغییر کد توسط دیگران ایفا میکنند. هر لایسنس مجموعهای از شرایط و ضوابط را ارائه میدهد که به کاربران حقوق و تعهدات خاصی را در قبال نرمافزار اعطا میکند.
▪️لایسنسMIT: این لایسنس یکی از سادهترین و پرکاربردترین لایسنسهای متنباز است. به کاربران اجازه میدهد تا آزادانه از نرمافزار در هر برنامهای، حتی برنامههای تجاری، استفاده، تغییر و توزیع کنند. تنها شرط این است که آنها باید حق نسخهبرداری و مجوز را در تمام نسخههای کپیشده نرمافزار حفظ کنند.
▪️لایسنس GPL (General Public License): این لایسنس قویتر از MIT است و به اصطلاح "کپیلفت" است. به این معنی که هر نسخهای از نرمافزار که تحت GPL منتشر میشود باید تحت همان لایسنس یا لایسنس سازگار دیگری مجوز داشته باشد. این امر برای اطمینان از اینکه همه کاربران به همان آزادیهایی که توسعهدهنده اصلی اعطا کرده است دسترسی داشته باشند، مهم است.
▪️لایسنس Apache License: این لایسنس شبیه به MIT است، اما برخی از الزامات اضافی را برای محافظت از توسعهدهندگان در برابر دعاوی حقوقی اعمال میکند.
▪️لایسنس BSD: این خانواده از لایسنسها شبیه به MIT هستند، اما تنوع بیشتری دارند. برخی از لایسنسهای BSD الزامات کمتری نسبت به MIT دارند، در حالی که برخی دیگر الزامات بیشتری دارند.
▪️لایسنس Creative Commons: این لایسنسها بیشتر برای محتوای خلاقانه مانند تصاویر، موسیقی و متن استفاده میشوند. آنها طیف وسیعی از مجوزها را ارائه میدهند که به کاربران سطوح مختلفی از اجازه برای استفاده، تغییر و توزیع محتوا را میدهند.
▪️لایسنس Beerware: این یک لایسنس غیررسمی و طنزآمیز است که به کاربران اجازه میدهد از نرمافزار به صورت رایگان استفاده کنند، اما آنها را تشویق میکند تا در صورت قدردانی از آن، به توسعهدهنده یک نوشیدنی بخرند.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
#ترفند
✔️ در فایل requirements.txt گاهی اوقات از -r به همراه یک URL استفاده میشود تا به طور تکراری نیازمندیهای یک پروژه دیگر را در فایل خود نصب کنید. این کار میتواند برای جلوگیری از تکرار لیستهای بلند نیازمندیها و مدیریت وابستگیها به طور کارآمدتر مفید باشد.
نحوه عملکرد:
1. زمانی که pip دستور -r را همراه با URL دریافت میکند، به آن URL میرود و محتوای فایل requirements.txt موجود در آن آدرس را دانلود میکند.
2. سپس، pip تمام نیازمندیهای لیست شده در فایل دانلود شده را به همراه نیازمندیهای موجود در فایل requirements.txt خودتان نصب میکند.
مثال:
فرض کنید دو پروژه به نام project-a و project-b دارید. project-b به تعدادی از کتابخانهها که در project-a نیز استفاده میشوند، نیاز دارد. به جای لیست کردن تمام این کتابخانهها دوباره در project-b`، میتوانید از -r` برای نصب آنها از project-a استفاده کنید:
در این مثال، pip ابتدا تمام نیازمندیهای لیست شده در project-a/requirements.txt را نصب میکند و سپس other-library-1 و other-library-2 را که خاص project-b هستند، نصب میکند.
💻 @Teachify | برنامه نویسی
✔️ در فایل requirements.txt گاهی اوقات از -r به همراه یک URL استفاده میشود تا به طور تکراری نیازمندیهای یک پروژه دیگر را در فایل خود نصب کنید. این کار میتواند برای جلوگیری از تکرار لیستهای بلند نیازمندیها و مدیریت وابستگیها به طور کارآمدتر مفید باشد.
نحوه عملکرد:
1. زمانی که pip دستور -r را همراه با URL دریافت میکند، به آن URL میرود و محتوای فایل requirements.txt موجود در آن آدرس را دانلود میکند.
2. سپس، pip تمام نیازمندیهای لیست شده در فایل دانلود شده را به همراه نیازمندیهای موجود در فایل requirements.txt خودتان نصب میکند.
مثال:
فرض کنید دو پروژه به نام project-a و project-b دارید. project-b به تعدادی از کتابخانهها که در project-a نیز استفاده میشوند، نیاز دارد. به جای لیست کردن تمام این کتابخانهها دوباره در project-b`، میتوانید از -r` برای نصب آنها از project-a استفاده کنید:
# project-b/requirements.txt
-r project-a/requirements.txt
# Additional project-b specific requirements
- other-library-1
- other-library-2
در این مثال، pip ابتدا تمام نیازمندیهای لیست شده در project-a/requirements.txt را نصب میکند و سپس other-library-1 و other-library-2 را که خاص project-b هستند، نصب میکند.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24😁13🤣3
✔️ تشخیص عدد زوج یا فرد در سطح باینری
▪️روش اول: بررسی بیت واحد: بیت کمارزش (بیت راستترین) عدد باینری را بررسی کنید.
اگر این بیت 0 باشد، عدد زوج است و اگر این بیت 1 باشد، عدد فرد است.
مثال:
✔️ عدد باینری 1010: بیت کمارزش 0 است، بنابراین عدد زوج است.
✔️ عدد باینری 1101: بیت کمارزش 1 است، بنابراین عدد فرد است.
▪️روش دوم: انجام عمل AND با 1: عدد باینری را با 1 (به صورت باینری) عمل AND کنید.
اگر نتیجه 0 باشد، عدد زوج است و اگر نتیجه 1 باشد، عدد فرد است.
مثال روش دوم در تصویر.
💻 @Teachify | برنامه نویسی
▪️روش اول: بررسی بیت واحد: بیت کمارزش (بیت راستترین) عدد باینری را بررسی کنید.
اگر این بیت 0 باشد، عدد زوج است و اگر این بیت 1 باشد، عدد فرد است.
مثال:
▪️روش دوم: انجام عمل AND با 1: عدد باینری را با 1 (به صورت باینری) عمل AND کنید.
اگر نتیجه 0 باشد، عدد زوج است و اگر نتیجه 1 باشد، عدد فرد است.
مثال روش دوم در تصویر.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
✔️ وبسایت هایی برای نمونه سوالات و تمرینات پایتون
1⃣ LeetCode:
https://leetcode.com/
🔢 HackerRank:
https://www.hackerrank.com/domains/tutorials/10-days-of-python
🔢 Codewars:
https://www.codewars.com/
🔢 Exercism
https://exercism.io/tracks/python/exercises
🔢 GeeksforGeeks:
https://www.geeksforgeeks.org/python-programming-language/
🔢 Project Euler:
https://projecteuler.net/
💻 @Teachify | برنامه نویسی
https://leetcode.com/
https://www.hackerrank.com/domains/tutorials/10-days-of-python
https://www.codewars.com/
https://exercism.io/tracks/python/exercises
https://www.geeksforgeeks.org/python-programming-language/
https://projecteuler.net/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4
✔️ دیتابیس ردیس چیست؟
ردیس (Redis) یک دیتابیس NoSQL متنباز و رایگان است که بر اساس مدل ذخیرهسازی کلید-مقدار (key-value) عمل میکند. این دیتابیس از انواع مختلفی از دادهها مانند رشتهها (string)، هشها (hash)، لیستها (list)، مجموعهها (set)، و مجموعههای مرتب (sorted set) پشتیبانی میکند. ردیس دادهها را به صورت درونحافظهای (in-memory) ذخیره میکند که این ویژگی باعث افزایش چشمگیر سرعت خواندن و نوشتن اطلاعات میشود. اگرچه ردیس بیشتر به عنوان حافظه نهان (cache) مورد استفاده قرار میگیرد، اما میتوان از آن به عنوان دیتابیس اصلی یا کارگزار پیام (message broker) نیز بهره برد.
❤️ @Teachify | برنامه نویسی
ردیس (Redis) یک دیتابیس NoSQL متنباز و رایگان است که بر اساس مدل ذخیرهسازی کلید-مقدار (key-value) عمل میکند. این دیتابیس از انواع مختلفی از دادهها مانند رشتهها (string)، هشها (hash)، لیستها (list)، مجموعهها (set)، و مجموعههای مرتب (sorted set) پشتیبانی میکند. ردیس دادهها را به صورت درونحافظهای (in-memory) ذخیره میکند که این ویژگی باعث افزایش چشمگیر سرعت خواندن و نوشتن اطلاعات میشود. اگرچه ردیس بیشتر به عنوان حافظه نهان (cache) مورد استفاده قرار میگیرد، اما میتوان از آن به عنوان دیتابیس اصلی یا کارگزار پیام (message broker) نیز بهره برد.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
print(type(aTuple[2:3])) —> for ex: aTuple = (1, 'Jhon', 1+3j)
Anonymous Quiz
19%
list
22%
Python Data Types
34%
tuple
25%
complex
👎2
توی پایتون و مبحث شی گرایی، اولویت با کدومه؟
Anonymous Quiz
63%
class attribute
37%
instance attribute
👍5
Forwarded from کالی بویز | ترفند | تکنولوژی
https://t.me/addlist/QC-qrEqfb2U1MmU0
➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
👌1👀1
✔️ مفهوم پلیمورفیسم یا چند ریختی در پایتون
در #پایتون، پلیمورفیسم (Polymorphism) یکی از اصول اصلی برنامهنویسی شیءگرا (Object-Oriented Programming) است که به معنای "چند ریختی" میباشد. پلیمورفیسم این امکان را میدهد که اشیاء مختلف بتوانند از طریق یک رابط یکسان استفاده شوند، حتی اگر این اشیاء از کلاسهای متفاوتی باشند.
به طور خلاصه، پلیمورفیسم به این معنی است که یک متد یا تابع میتواند بر روی اشیاء مختلفی از کلاسهای متفاوت عمل کند و بسته به نوع شیء، رفتار متفاوتی را اجرا کند. این قابلیت به کمک وراثت (Inheritance) و متدهای مشترک بین کلاسها محقق میشود.
مثال سادهای از پلیمورفیسم در پایتون:
در این مثال، کلاسهای
❤️ @Teachify | برنامه نویسی
در #پایتون، پلیمورفیسم (Polymorphism) یکی از اصول اصلی برنامهنویسی شیءگرا (Object-Oriented Programming) است که به معنای "چند ریختی" میباشد. پلیمورفیسم این امکان را میدهد که اشیاء مختلف بتوانند از طریق یک رابط یکسان استفاده شوند، حتی اگر این اشیاء از کلاسهای متفاوتی باشند.
به طور خلاصه، پلیمورفیسم به این معنی است که یک متد یا تابع میتواند بر روی اشیاء مختلفی از کلاسهای متفاوت عمل کند و بسته به نوع شیء، رفتار متفاوتی را اجرا کند. این قابلیت به کمک وراثت (Inheritance) و متدهای مشترک بین کلاسها محقق میشود.
مثال سادهای از پلیمورفیسم در پایتون:
class Cow:
def sound(self):
return "Moow"
class Cat:
def sound(self):
return "Meow"
def make_sound(animal):
return animal.sound()
cow = Cow()
cat = Cat()
print(make_sound(cow)) # خروجی: Moow
print(make_sound(cat)) # خروجی: Meow
در این مثال، کلاسهای
Cow و Cat هر دو متدی به نام sound دارند. تابع make_sound میتواند هر شیءای که دارای متد sound است را بپذیرد و متد مربوطه را فراخوانی کند. به این ترتیب، بدون اینکه نوع دقیق شیء را بدانیم، میتوانیم از یک رابط یکسان برای دسترسی به متدها استفاده کنیم. این قابلیت انعطافپذیری کد را افزایش میدهد و امکان توسعه و نگهداری آن را آسانتر میکند.Please open Telegram to view this post
VIEW IN TELEGRAM
👍8👌1
✔️ اورلودینگ (Overloading) در برنامه نویسی
اورلودینگ در برنامهنویسی شیءگرا به معنای تعریف چندین نسخه از یک تابع با نام یکسان ولی پارامترهای مختلف است. این ویژگی به ما اجازه میدهد تا توابعی با نام مشابه ولی با رفتارهای متفاوت بسته به ورودیهایشان داشته باشیم.
در پایتون، اورلودینگ به دو شکل میتواند اتفاق بیافتد: اورلودینگ متدها و اورلودینگ عملگرها. هر کدام از این موارد را به تفصیل توضیح میدهم.
1. اورلودینگ متدها
پایتون به طور پیشفرض از اورلودینگ متدها پشتیبانی نمیکند مانند زبانهایی مثل جاوا یا سیپلاسپلاس. اما میتوان با استفاده از تکنیکهایی این قابلیت را شبیهسازی کرد. معمولاً با بررسی تعداد و نوع پارامترهای ورودی درون یک متد، میتوان رفتارهای مختلفی را پیادهسازی کرد.
مثال:
2. اورلودینگ عملگرها
در پایتون، میتوانیم رفتار عملگرهای استاندارد (مثل +, -, *, == و ...) را برای اشیاء کلاسهای خود بازتعریف کنیم. این کار با استفاده از متدهای خاصی که با دابل آندر اسکور (__) شروع و پایان مییابند انجام میشود.
مثال:
در این مثال، عملگر + برای اشیاء کلاس Vector بازتعریف شده است تا امکان جمع دو بردار را فراهم کند.
### متدهای مخصوص اورلودینگ عملگرها
پایتون متدهای زیادی برای اورلودینگ عملگرها دارد. در زیر چند نمونه آوadd:
- add(self, other) برای +
- sub(self, other) برای -
- mul(self, other) برای *
- truediv(self, other) برای /
- eq(self, other) برای ==
- lt(self, other) برای <
- le(self, other) برای <=
این متدها به ما اجازه میدهند که رفتارهای خاصی برای عملگرها تعریف کنیم که با نوع خاصی از اشیاء کار کنند.
➖➖➖➖➖➖
💻 @Teachify | برنامه نویسی
اورلودینگ در برنامهنویسی شیءگرا به معنای تعریف چندین نسخه از یک تابع با نام یکسان ولی پارامترهای مختلف است. این ویژگی به ما اجازه میدهد تا توابعی با نام مشابه ولی با رفتارهای متفاوت بسته به ورودیهایشان داشته باشیم.
در پایتون، اورلودینگ به دو شکل میتواند اتفاق بیافتد: اورلودینگ متدها و اورلودینگ عملگرها. هر کدام از این موارد را به تفصیل توضیح میدهم.
1. اورلودینگ متدها
پایتون به طور پیشفرض از اورلودینگ متدها پشتیبانی نمیکند مانند زبانهایی مثل جاوا یا سیپلاسپلاس. اما میتوان با استفاده از تکنیکهایی این قابلیت را شبیهسازی کرد. معمولاً با بررسی تعداد و نوع پارامترهای ورودی درون یک متد، میتوان رفتارهای مختلفی را پیادهسازی کرد.
مثال:
class MathOperations:
def add(self, a, b, c=None):
if c is not None:
return a + b + c
else:
return a + b
math_op = MathOperations()
print(math_op.add(1, 2)) # خروجی: 3
print(math_op.add(1, 2, 3)) # خروجی: 6
2. اورلودینگ عملگرها
در پایتون، میتوانیم رفتار عملگرهای استاندارد (مثل +, -, *, == و ...) را برای اشیاء کلاسهای خود بازتعریف کنیم. این کار با استفاده از متدهای خاصی که با دابل آندر اسکور (__) شروع و پایان مییابند انجام میشود.
مثال:
class Vector:
def init(self, x, y):
self.x = x
self.y = y
def add(self, other):
return Vector(self.x + other.x, self.y + other.y)
def str(self):
return f"({self.x}, {self.y})"
v1 = Vector(2, 3)
v2 = Vector(5, 7)
v3 = v1 + v2
print(v3) # خروجی: (7, 10)
در این مثال، عملگر + برای اشیاء کلاس Vector بازتعریف شده است تا امکان جمع دو بردار را فراهم کند.
### متدهای مخصوص اورلودینگ عملگرها
پایتون متدهای زیادی برای اورلودینگ عملگرها دارد. در زیر چند نمونه آوadd:
- add(self, other) برای +
- sub(self, other) برای -
- mul(self, other) برای *
- truediv(self, other) برای /
- eq(self, other) برای ==
- lt(self, other) برای <
- le(self, other) برای <=
این متدها به ما اجازه میدهند که رفتارهای خاصی برای عملگرها تعریف کنیم که با نوع خاصی از اشیاء کار کنند.
➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
✔️ کاربرد yield در پایتون
کلمه کلیدی yield در پایتون برای ساخت توابع ژنراتور (generator functions) استفاده میشود. توابع ژنراتور نوع خاصی از توابع هستند که به جای بازگرداندن یک مجموعه مقادیر به طور کامل، مقادیر را به صورت یکی در میان و به صورت تنبل (lazy) تولید میکنند.
این قابلیت مزایای متعددی را به همراه دارد، از جمله:
▪️مصرف حافظه کمتر: توابع ژنراتور فقط مقدار مورد نیاز را در هر بار فراخوانی تولید میکنند، نه کل مجموعه را به طور کامل. این امر آنها را برای کار با مجموعه دادههای بزرگ یا نامحدود ایدهآل میکند.
▪️سادگی بیشتر: توابع ژنراتور را میتوان به روشی ساده و مختصر نوشت، بدون نیاز به مدیریت حافظه پیچیده.
▪️قابلیت ترکیب: توابع ژنراتور را میتوان به راحتی با سایر توابع و اشیاء ژنراتور ترکیب کرد، که آنها را برای ساخت خطوط لوله داده قدرتمند مفید میکند.
عملکرد yield به این صورت است که درون یک تابع ژنراتور، از کلمه کلیدی yield برای ارسال مقادیر به بیرون از تابع استفاده میشود. هر بار که yield فراخوانی میشود، تابع ژنراتور متوقف میشود و مقدار بعدی را ذخیره میکند.
هنگامی که از تابع ژنراتور با استفاده از یک حلقه for استفاده میشود، مقادیر ذخیره شده به ترتیب یکی پس از دیگری بازگردانده میشوند.
در اینجا چند نمونه از کاربردهای رایج yield در پایتون آورده شده است:
✔️ ایجاد توابع شمارش: توابع ژنراتور میتوانند برای ایجاد توابع شمارش ساده یا پیچیده استفاده شوند، مانند توابعی که اعداد زوج، اعداد فیبوناچی یا اعداد اول را تولید میکنند.
✔️ خواندن و پردازش فایلهای بزرگ: توابع ژنراتور میتوانند برای خواندن و پردازش فایلهای بزرگ به صورت خط به خط بدون نیاز به بارگذاری کل فایل در حافظه استفاده شوند.
✔️ ایجاد خطوط لوله داده: توابع ژنراتور میتوانند با سایر توابع و اشیاء ژنراتور برای ایجاد خطوط لوله داده قدرتمند برای پردازش دادهها به روشی کارآمد ترکیب شوند.
➖➖➖➖➖➖
💻 @Teachify | برنامه نویسی
کلمه کلیدی yield در پایتون برای ساخت توابع ژنراتور (generator functions) استفاده میشود. توابع ژنراتور نوع خاصی از توابع هستند که به جای بازگرداندن یک مجموعه مقادیر به طور کامل، مقادیر را به صورت یکی در میان و به صورت تنبل (lazy) تولید میکنند.
این قابلیت مزایای متعددی را به همراه دارد، از جمله:
▪️مصرف حافظه کمتر: توابع ژنراتور فقط مقدار مورد نیاز را در هر بار فراخوانی تولید میکنند، نه کل مجموعه را به طور کامل. این امر آنها را برای کار با مجموعه دادههای بزرگ یا نامحدود ایدهآل میکند.
▪️سادگی بیشتر: توابع ژنراتور را میتوان به روشی ساده و مختصر نوشت، بدون نیاز به مدیریت حافظه پیچیده.
▪️قابلیت ترکیب: توابع ژنراتور را میتوان به راحتی با سایر توابع و اشیاء ژنراتور ترکیب کرد، که آنها را برای ساخت خطوط لوله داده قدرتمند مفید میکند.
عملکرد yield به این صورت است که درون یک تابع ژنراتور، از کلمه کلیدی yield برای ارسال مقادیر به بیرون از تابع استفاده میشود. هر بار که yield فراخوانی میشود، تابع ژنراتور متوقف میشود و مقدار بعدی را ذخیره میکند.
هنگامی که از تابع ژنراتور با استفاده از یک حلقه for استفاده میشود، مقادیر ذخیره شده به ترتیب یکی پس از دیگری بازگردانده میشوند.
در اینجا چند نمونه از کاربردهای رایج yield در پایتون آورده شده است:
➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
✔️ انتقال #تجربه ...
من یه موس دارم که از سال 1392 که لپ تاپم رو گرفتم همراهش بود و من باهاش خیلی احساس راحتی میکنم.
اخیرا اسکرولش دیگه کار نمیکرد و این منو خیلی اذیت میکرد و به فکر یه موس دیگه بودم ...
امروز تصمیم گرفتم بازش کنم که نتیجه این شد🥹
الان باور کنید از روز اول هم روون تر شده :))
💻 @Teachify | برنامه نویسی
من یه موس دارم که از سال 1392 که لپ تاپم رو گرفتم همراهش بود و من باهاش خیلی احساس راحتی میکنم.
اخیرا اسکرولش دیگه کار نمیکرد و این منو خیلی اذیت میکرد و به فکر یه موس دیگه بودم ...
امروز تصمیم گرفتم بازش کنم که نتیجه این شد🥹
الان باور کنید از روز اول هم روون تر شده :))
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20😍6🤮1
✔️ انواع مختلف پایگاهدادهها (Databases)
1. پایگاهدادههای رابطهای (Relational Databases)
- مثالها: MySQL, PostgreSQL, Oracle, SQL Server
2. پایگاهدادههای NoSQL
- انواع مهم:
- پایگاهدادههای کلید-مقدار (Key-Value Stores)
- مثالها: Redis, DynamoDB
- پایگاهدادههای سندگرا (Document Stores)
- مثالها: MongoDB, CouchDB
- پایگاهدادههای ستون-محور (Column-Family Stores)
- مثالها: Cassandra, HBase
- پایگاهدادههای نموداری (Graph Databases)
- مثالها: Neo4j, ArangoDB
3. پایگاهدادههای مبتنی بر حافظه (In-Memory Databases)
- مثالها: Redis, Memcached
4. پایگاهدادههای شیگرا (Object-Oriented Databases)
- مثالها: db4o, ObjectDB
5. پایگاهدادههای توزیعی (Distributed Databases)
- مثالها: Apache Cassandra, CockroachDB
6. پایگاهدادههای مبتنی بر زمان (Time-Series Databases)
- مثالها: InfluxDB, TimescaleDB
7. پایگاهدادههای چندمدلی (Multi-Model Databases)
- مثالها: ArangoDB, OrientDB
هر یک از این انواع پایگاهدادهها دارای ویژگیها و کاربردهای خاصی هستند که آنها را برای برخی از پروژهها و نیازها مناسبتر میکند.
💻 @Teachify | برنامه نویسی
1. پایگاهدادههای رابطهای (Relational Databases)
- مثالها: MySQL, PostgreSQL, Oracle, SQL Server
2. پایگاهدادههای NoSQL
- انواع مهم:
- پایگاهدادههای کلید-مقدار (Key-Value Stores)
- مثالها: Redis, DynamoDB
- پایگاهدادههای سندگرا (Document Stores)
- مثالها: MongoDB, CouchDB
- پایگاهدادههای ستون-محور (Column-Family Stores)
- مثالها: Cassandra, HBase
- پایگاهدادههای نموداری (Graph Databases)
- مثالها: Neo4j, ArangoDB
3. پایگاهدادههای مبتنی بر حافظه (In-Memory Databases)
- مثالها: Redis, Memcached
4. پایگاهدادههای شیگرا (Object-Oriented Databases)
- مثالها: db4o, ObjectDB
5. پایگاهدادههای توزیعی (Distributed Databases)
- مثالها: Apache Cassandra, CockroachDB
6. پایگاهدادههای مبتنی بر زمان (Time-Series Databases)
- مثالها: InfluxDB, TimescaleDB
7. پایگاهدادههای چندمدلی (Multi-Model Databases)
- مثالها: ArangoDB, OrientDB
هر یک از این انواع پایگاهدادهها دارای ویژگیها و کاربردهای خاصی هستند که آنها را برای برخی از پروژهها و نیازها مناسبتر میکند.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣28😎2❤🔥1👍1