Azad's Programmers
2.43K subscribers
90 photos
27 videos
18 files
71 links
کانال آموزش برنامه نویسی دانشگاه آزاد

گروه چت پرسش و پاسخ: https://t.me/azad_program
Download Telegram
💻 وراثت و ترکیب در شی‌گرایی (Inheritance vs Composition) به زبان ساده

در برنامه‌نویسی شی‌گرا، دو روش اصلی برای ارتباط بین کلاس‌ها وجود دارد: وراثت و ترکیب. هر کدام از این روش‌ها برای ایجاد رابطه بین کلاس‌ها کاربرد دارند، اما در شرایط متفاوت استفاده می‌شوند.

🔍 وراثت (Inheritance) چیست؟
وراثت یعنی یک کلاس از یک کلاس دیگر خصوصیات و رفتارهایش را به ارث ببرد. مثلاً اگر یک کلاس پایه به نام ماشین داریم، می‌توانیم از آن یک کلاس فرزند به نام ماشین ورزشی بسازیم که تمام ویژگی‌های ماشین را داشته باشد و ویژگی‌های جدیدی هم اضافه کند.

🔑 مزایا:
- کد تکراری کمتر: کلاس فرزند می‌تواند ویژگی‌های کلاس والد را به ارث ببرد، بنابراین نیازی نیست که همه چیز دوباره تعریف شود.
- سازماندهی بهتر: به راحتی می‌توانیم ساختار سلسله‌مراتبی برای اشیاء ایجاد کنیم.

📌 مثال ساده با پایتون:
class Car:
def __init__(self, brand, model):
self.brand = brand
self.model = model

def start(self):
print(f"{self.brand} {self.model} is starting...")

class SportsCar(Car): # وراثت از کلاس Car
def turbo_boost(self):
print(f"{self.brand} {self.model} is boosting with turbo!")

# ایجاد اشیاء
car = Car("Toyota", "Corolla")
sports_car = SportsCar("Ferrari", "488")

car.start()
sports_car.start() # از کلاس والد به ارث برده
sports_car.turbo_boost() # تابع اختصاصی کلاس فرزند

🔍 ترکیب (Composition) چیست؟
ترکیب یعنی کلاس‌ها به جای به ارث بردن از یکدیگر، از اشیاء سایر کلاس‌ها استفاده کنند. این روش به شما امکان می‌دهد تا به جای ایجاد سلسله‌مراتب پیچیده، اشیاء را به صورت ماژولار و مستقل از هم نگه دارید و آن‌ها را با هم ترکیب کنید.

🔑 مزایا:
- انعطاف‌پذیری بیشتر: تغییرات در یک کلاس تأثیر مستقیم کمتری روی کلاس‌های دیگر دارد.
- قابلیت استفاده مجدد بالا: می‌توانید کلاس‌ها را به صورت مستقل از هم استفاده کنید.

📌 مثال ساده با پایتون:
class Engine:
def start(self):
print("Engine is starting...")

class Car:
def __init__(self, brand, model, engine):
self.brand = brand
self.model = model
self.engine = engine # ترکیب یک شیء از کلاس Engine

def start(self):
print(f"{self.brand} {self.model} is starting...")
self.engine.start() # استفاده از شیء Engine

# ایجاد اشیاء
engine = Engine()
car = Car("Toyota", "Corolla", engine)

car.start()

🎯 تفاوت بین وراثت و ترکیب:
- وراثت: وقتی می‌خواهید کلاس فرزند تمام ویژگی‌های کلاس والد را به ارث ببرد و یا آن‌ها را تغییر دهد.
- ترکیب: وقتی می‌خواهید کلاسی را با استفاده از چندین شیء دیگر بسازید و نیازی به رابطه قوی بین کلاس‌ها ندارید.

در نهایت، انتخاب بین وراثت و ترکیب به نیازهای پروژه و طراحی شما بستگی دارد. ترکیب معمولاً انعطاف‌پذیری بیشتری به شما می‌دهد، اما وراثت در مواردی که رابطه طبیعی بین کلاس‌ها وجود دارد (مثل حیوانات یا وسایل نقلیه) مفید است.

#OOP #شی_گرایی #وراثت #ترکیب #Inheritance #Composition #پایتون #برنامه_نویسی

Group: @azad_program
Channel:
@kiau_program
👍2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
چندتا از محبوب ترین و منفور ترین توزیع های لینوکسی

Group: @azad_program
Channel: @kiau_program
👍2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
تفاوت کامپیوتر های عادی و کامپیوتر های کوآنتومی

Group: @azad_program
Channel: @kiau_program
❤5🔥4🆒1
🌐 آشنایی با Node.js

نود جی اس یا (Node.js) یک پلتفرم و ران تایم (Runtime) یا محیط اجرای جاوااسکریپت مبتنی به موتور جاوااسکریپت گوگل کروم (V8 Engine) که به توسعه دهندگان اجازه میده تا یک برنامه جاوااسکریپتی رو سمت سرور اجرا کنن. در سال 2009 بود که فردی به نام Ryan Dahl نود جی اس رو معرفی کرد و کاربرد های زبان جاوااسکریپت گسترش پیدا کرد. ابتدا زبان جاوااسکریپت به عنوان زبان برنامه نویسی تحت وب سمت کاربر (Client side) شناخته میشد که برای پویاسازی صفحات وب در Front-End استفاده میشد. با معرفی Node.js امکان اجرای کدهای جاوااسکریپت سمت سرور (Back-End) فراهم شد.

🔹 مدیر پکیج نود (npm) یا Node Package Manager یک مدیر پکیج مخصوص جاوااسکریپته که همراه Node.js ارائه میشه و به توسعه دهندگان اجازه مدیریت وابستگی ها در پروژه، نصب و مدیریت پکیج ها و کتابخانه ها و همینطور ایجاد و انتشار پکیج های مختلف رو میده.

🔸 از فریمورک های شناخته شده و محبوب Node.js میشه به Express.js و Nest.js اشاره کرد.

Group: @azad_program
Channel: @kiau_program
👍1
سلام خدمت دوستان عزیز , من مهدی هستم از ادمین های azad programmers , پلی لیستی از مطالبی که اموزش میدم رو داخل یوتیوب میزارم , لینک ویدیو هارو هم به مرور زمان اینجا قرار میدم , امیدوارم براتون مفید واقع باشه . 🩵 هر گونه سوالی بود در خدمتم . ممنونم از حمایت هاتون 🙏🫶
❤2
سلام دوستان😎

📌 امیدوارم حالتون خوب باشه ، حامدکیانی هستم یکی از ادمینان همین گروه و کانال ، تصمیم گرفتم آنچه که طی سالیان سال از سایت های معتبر مثل یودمی و دوره هایی که با عنوان مستر کلاس هوش مصنوعی در خارج از کشور دیدم رو با شما به زبان فارسی به اشتراک بگذارم ، مواردی از قبیل RL که خیلی خیلی تو دانشگاه یاد دادنش رو پیچیده میکنن ، و همچنین مواردی مثل مبانی هوش مصنوعی و کاربرد اون تو زندگی روزمره و یاد گیری ماشین و مقاله نویسی(مخصوص دانشجویان ارشد و دکترا ) و... که تو دانشگاه اصلا بهش پرداخته نشده ، وهمچنین یادگیری ماشین می‌تونه خیلی کاربردی باشه ...

✅ همه این هارو من با انیمیشن و فیلم و آهنگ بهتون یاد میدم که یادگیری براتون آسونتر باشه ... امیدوارم همراه من تو این سفر ماجراجویی ورود به دنیای هوش مصنوعی باشید ...


📌لینک پلی لیست با افتخار تقدیم شما میگردد :

https://www.aparat.com/playlist/11152513

این دوره به صورت کامل در هفته های آتی تکمیل میگردد ...


🆔هر سوالی ، ایرادی و نکته ای بود میتونید در گروه مطرح کنید ...
👏6
Media is too big
VIEW IN TELEGRAM
تکنیک بخاطرسپاری یا Memoization توابع بازگشتی در پایتون
برای افزایش سرعت توابع بازگشتی

#پایتون #python

Group: @azad_program
Channel:
@kiau_program
👌4
📌 پلی‌مورفیسم (Polymorphism)در برنامه‌نویسی شی‌گرا

پلی‌مورفیسم (چندریختی) یکی از مفاهیم مهم در برنامه‌نویسی شی‌گرا است که به ما امکان می‌دهد یک متد با نام یکسان در کلاس‌های مختلف رفتار متفاوتی داشته باشد. این ویژگی کد ما را انعطاف‌پذیرتر و قابل توسعه‌تر می‌کند. 🎯

📍 مثال ساده از پلی‌مورفیسم در پایتون:

فرض کنید دو کلاس Dog و Cat داریم که هر کدام متد sound() دارند:
class Dog:
def sound(self):
print("Woof Woof!")

class Cat:
def sound(self):
print("Meow Meow!")

با استفاده از پلی‌مورفیسم، می‌توانیم از متد sound() بدون توجه به نوع حیوان استفاده کنیم:

def make_sound(animal):
animal.sound()

dog = Dog()
cat = Cat()

make_sound(dog) # خروجی: Woof Woof!
make_sound(cat) # خروجی: Meow Meow!

🔹 در اینجا، با صدا زدن make_sound()، بسته به نوع شیء (سگ یا گربه)، صدای مناسب آن تولید می‌شود. این ویژگی قدرت پلی‌مورفیسم را نشان می‌دهد و به ما کمک می‌کند کدی ساده‌تر و انعطاف‌پذیرتر داشته باشیم! 🚀

#برنامه_نویسی #شی_گرایی #پلی_مورفیسم #programmin #Polymorphism #object_oriented

Group: @azad_program
Channel:
@kiau_program
❤4
💻 کپسوله‌سازی (Encapsulation) در شی‌گرایی به زبان ساده

کپسوله‌سازی یکی از اصول مهم شی‌گرایی است که به شما امکان می‌دهد داده‌ها و متدها را درون یک کلاس مخفی کنید تا فقط از طریق روش‌های مشخصی به آن‌ها دسترسی داشته باشید. این ویژگی کمک می‌کند تا کد شما ایمن‌تر و ساختار‌یافته‌تر باشد. 🎯

🔍 کپسوله‌سازی چیست؟

در کپسوله‌سازی، داده‌های حساس یک شیء با قرار دادن آن‌ها درون کلاس مخفی می‌شوند و تنها از طریق متدهای مشخصی می‌توان به آن‌ها دسترسی پیدا کرد. این ویژگی به شما امکان می‌دهد تا کنترل بهتری بر روی داده‌ها داشته باشید و از تغییرات غیرمجاز جلوگیری کنید.

🔑 مزایای کپسوله‌سازی:
- ایمنی بیشتر: از تغییرات و دسترسی‌های غیرمجاز به داده‌ها جلوگیری می‌کند.
- سادگی در استفاده: کاربران کلاس فقط با متدهای عمومی (public methods) تعامل دارند و نیازی به دانستن جزئیات داخلی ندارند.

📌 مثال ساده با پایتون:

class BankAccount:
def __init__(self, balance):
self.__balance = balance # متغیر خصوصی

def deposit(self, amount):
if amount > 0:
self.__balance += amount
print(f"{amount} تومان به حساب اضافه شد.")

def withdraw(self, amount):
if 0 < amount <= self.__balance:
self.__balance -= amount
print(f"{amount} تومان از حساب برداشت شد.")
else:
print("موجودی کافی نیست.")

def get_balance(self):
return self.__balance

در اینجا، balance به عنوان یک متغیر خصوصی تعریف شده و تنها از طریق متدهای deposit()، withdraw() و get_balance() قابل دسترسی است.

account = BankAccount(1000)
account.deposit(500) # اضافه کردن موجودی
account.withdraw(200) # برداشت از حساب
print(account.get_balance()) # نمایش موجودی حساب

🔒 با استفاده از کپسوله‌سازی، می‌توانید مطمئن باشید که متغیر balance تنها از طریق متدهای خاص قابل تغییر است و از دسترسی غیرمجاز محافظت می‌شود.

#OOP #شی_گرایی #کپسوله_سازی #Encapsulation #پایتون #برنامه_نویسی

Group: @azad_program
Channel:
@kiau_program
❤1
1️⃣ ایده‌پردازی

◀️ افزونه Kleo: یه افزونه که ایده‌های جذاب برای پست‌های لینکدین بهت میده.

◀️افزونه Tweet Hunter X: برای پیدا کردن ایده‌های جالب توی پلتفرم X (همون توییتر).

◀️ابزار ChatGPT: از هوش مصنوعی کمک بگیر تا ایده‌های جدید برای محتوا پیدا کنی.

◀️پلتفرم Swipely: جایی که می‌تونی ایده‌هات رو ذخیره و دسته‌بندی کنی.

◀️ابزار vidIQ: بهت کمک می‌کنه کانالت توی یوتیوب رشد کنه.

◀️وبسایت Quora: جایی که می‌تونی اطلاعات و نظرات تخصصی رو با بقیه به اشتراک بذاری.


2️⃣ تولید محتوا

◀️ابزار Canva: یه ابزار ساده برای طراحی گرافیک و پست‌های جذاب.

◀️ابزار Grammarly: بهت کمک می‌کنه که نوشته‌هات رو از نظر نگارش بهتر کنی.

◀️وبسایت Hemmingway App: ساده‌سازی و خواناتر کردن نوشته‌ها.

◀️نرم‌افزار Descript: برای ویرایش راحت ویدیو و پادکست‌هات.

◀️پلتفرم Midjourney: یه ابزار برای تولید تصویر با هوش مصنوعی.

◀️افزونه Kleo: قبل از اینکه پستت رو منتشر کنی، می‌تونی پیش‌نمایش اون رو ببینی.


3️⃣ مدیریت و پیگیری

◀️ابزار Trello: برای مرتب کردن ایده‌ها و مدیریت زمان‌بندی پست‌هات.

◀️پلتفرم Notion: یه فضای همه‌کاره برای منظم کردن کارهات.

◀️شبکه اجتماعی LinkedIn: برای ارتباط گرفتن و تعامل با افراد حرفه‌ای.

◀️ابزار Google Docs: برای نوشتن و ویرایش آنلاین متن‌ها.

◀️پلتفرم Zapier: کارها رو خودکار کن و وقتت رو برای کارهای مهم‌تر ذخیره کن.

◀️ابزار Taplio: عملکرد پست‌هات رو آنالیز کن تا بهتر بشی.


4️⃣ ارتباط

◀️شبکه اجتماعی LinkedIn: پست‌های لینکدینت رو زمان‌بندی کن و منتشر کن.

◀️پلتفرم Google Meet: برای جلسات آنلاین و ارتباط رو در رو.

◀️ابزار Slack: پیام‌رسان برای ارتباط راحت بین اعضای تیم.

◀️ابزار Loom: ویدیوهای آموزشی یا توضیحاتت رو ضبط کن و با بقیه به اشتراک بذار.

◀️پلتفرم Typeform: برای ساخت نظرسنجی و فرم‌های آنلاین.

◀️ابزار Testimonial: نظرات متنی و ویدیویی مشتری‌ها رو جمع کن و استفاده کن.


5️⃣ تبدیل

◀️ابزار Calendly: وقتی می‌خوای با مشتری قرار تماس بذاری، از این استفاده کن.

◀️پلتفرم Webflow: برای ساختن صفحه‌های فرود شیک و حرفه‌ای.

◀️ابزار Linktree: همه لینک‌هات رو توی یه صفحه جمع کن و به اشتراک بذار.

◀️ابزار Mailchimp: برای ارسال ایمیل‌های تبلیغاتی و ارتباط با مشتری‌هات.

◀️ابزار Beehiiv: ایمیل‌های خبرنامه‌تو راحت جمع کن و ارسال کن.

◀️پلتفرم Square: برای پرداخت‌های آنلاین و انجام تراکنش‌های تجاری.
👍3
سلام به همگی! 🌟

امروز می‌خوایم درباره‌ی یه اصل مهم تو کدنویسی پایتون صحبت کنیم که کدهاتون رو خوشگل‌تر و مرتب‌تر می‌کنه: PEP 8! 😎

خب، PEP 8 چیه؟ 🤔
توی پایتون PEP 8 یه استاندارده برای کدنویسی پایتونه که باعث میشه کدهامون تمیزتر و قابل‌فهم‌تر باشه؛ هم واسه خودمون و هم واسه بقیه. حالا بیایم با هم نکات اصلیش رو ببینیم 👇



اصول اصلی PEP 8 🧩

1. تورفتگی (Indentation)
برای هر سطح تورفتگی از ۴ فاصله استفاده کن! فاصله‌ها کدهاتو همه‌جا یکدست نشون میدن. 📏


2. بیشترین طول خط (Line Length)
هر خط کدت بهتره از ۷۹ کاراکتر بیشتر نشه تا همه‌جا خوب خونده بشه. واسه توضیحات هم بهتره به ۷۲ کاراکتر محدودش کنی. 📝

3. شکستن خطوط در عملگرها (Operators)
   وقتی می‌خوای یه خط طولانی رو بشکنی، عملگرها (+, -) رو اول خط جدید بذار، مثل این:
   
   result = (first_variable
             + second_variable
             - third_variable)
  

4. خطوط خالی (Blank Lines)
با خطوط خالی بخش‌های کدتو از هم جدا کن. بین توابع و کلاس‌ها ۲ خط خالی بذار و بین متدها ۱ خط خالی. 🌿


5. ایمپورت‌ها (Imports)
ایمپورت‌ها رو اول فایل و به ترتیب بذار:
   1. کتابخونه‌های استاندارد
   2. کتابخونه‌های خارجی
   3. کتابخونه‌های پروژه


   هر دسته رو هم با یه خط خالی جدا کن. 🤓
6. فضاهای خالی (Whitespace)
   - قبل و بعد از عملگرها (=, +, -) یه فاصله بذار.
   - داخل پرانتزها و کروشه‌ها فاصله اضافه نذار. مثال:
   # recommended:
   x = (a + b) * (c - d)

   # not recommended:
   x = ( a + b ) * ( c - d )
  


با رعایت این نکات، کدتون حسابی تر و تمیز و استاندارد می‌شه! 💯

#python
#pep8

Group: @azad_program
Channel:
@kiau_program
❤5💯2👍1
🌐 تفاوت‌های IPv4 و IPv6 🌐

پروتکل های IPv4 و IPv6 دو پروتکل اصلی برای شناسایی دستگاه‌ها در شبکه هستند.

🔹 تعداد آدرس‌ها:
- پروتکل IPv4 از 32 بیت استفاده می‌کند و حدود 4.3 میلیارد آدرس را پشتیبانی می‌کند.
- پروتکل IPv6 با 128 بیت، امکان ایجاد 34 تریلیون تریلیون تریلیون آدرس را فراهم می‌کند.

🔹 ساده‌سازی پیکربندی:
- پروتکل IPv6 قابلیت پیکربندی خودکار (SLAAC) دارد که به دستگاه‌ها اجازه می‌دهد بدون نیاز به DHCP، آدرس IP خود را تنظیم کنند.

🔹 امنیت:
- پروتکل IPv6 به طور پیش‌فرض از IPsec برای امنیت ارتباطات استفاده می‌کند، در حالی که در IPv4 این ویژگی اختیاری است.

🔹 بهبود عملکرد:
- با حذف NAT (ترجمه آدرس شبکه)، ارتباطات مستقیم‌تر و سریع‌تر انجام می‌شود.

🔹 پشتیبانی از موبایل:
- پروتکل IPv6 بهینه‌سازی شده برای دستگاه‌های موبایل و اینترنت اشیا (IoT) است.

با توجه به رشد روزافزون اینترنت و نیاز به آدرس‌های بیشتر، انتقال به IPv6 ضروری است! 🚀

Group: @azad_program
Channel: @kiau_program
👍5
توزیع‌های لینوکسی و کاربردهای آن‌ها

1. اوبونتو (Ubuntu): مناسب برای کاربران تازه‌کار و دسکتاپ. با رابط کاربری ساده و پشتیبانی گسترده، برای کارهای روزمره، برنامه‌نویسی و حتی بازی‌ها عالی است. ( البته در زیر ساخت خیلی از شرکت ها از اوبنتو سرور استفاده میشه).

2. دبیان (Debian): پایدار و قابل اعتماد، مناسب برای سرورها و سیستم‌های مهم. به دلیل ثبات بالا، انتخاب خوبی برای توسعه‌دهندگان و مدیران سیستم است.

3. فدورا (Fedora): به‌روزترین نرم‌افزارها را ارائه میده و برای توسعه‌دهندگان ایده‌آل است.

4. آرچ لینوکس (Arch Linux): برای کاربران پیشرفته که می‌خواهند سیستم خود را از پایه بسازند. انعطاف‌پذیری بالا و کنترل کامل بر روی نصب نرم‌افزارها را فراهم می‌کند.

7. لینکس مینت (Linux Mint): بهترین گزینه برای کسانی که از ویندوز به لینوکس مهاجرت می‌کنند. رابط کاربری آشنا و امکانات متنوع آن باعث راحتی استفاده می‌شود.

8. کالی لینوکس (Kali Linux): مخصوص تست نفوذ و امنیت سایبری طراحی شده است. ابزارهای پیشرفته‌ای برای هکرها اخلاقی فراهم می‌کند.

Group: @azad_program
Channel: @kiau_program
❤1👍1
📊 کتابخانه‌های ضروری Python برای علم داده

💡 در این تصویر، مجموعه‌ای از کتابخانه‌های مهم Python که در علم داده استفاده می‌شوند، معرفی شده‌اند. این کتابخانه‌ها شامل ابزارهایی برای جمع‌آوری داده، پردازش، تحلیل، یادگیری ماشین، یادگیری عمیق، و استقرار مدل‌ها هستند.


کتابخانه Scrapy: جمع‌آوری داده و وب‌اسکرپینگ
کتابخانه pandas: دستکاری داده‌ها، پیش‌پردازش و تحلیل اکتشافی داده‌ها (EDA)
کتابخانه Matplotlib: تجسم داده‌ها
کتابخانه Statsmodels: تحلیل‌های آماری و سری زمانی
کتابخانه scikit-learn: یادگیری ماشین
کتابخانه TensorFlow: یادگیری عمیق
کتابخانه spaCy: پردازش زبان طبیعی
کتابخانه Flask: استقرار مدل
کتابخانه PySpark: داده‌های حجیم و محاسبات توزیع‌شده
کتابخانه Apache Airflow: اتوماسیون و ارکستراسیون جریان کاری

➖➖➖➖➖➖➖➖➖➖➖➖
❤4👍1