پارت ۱۱: مفاهیم پایه برنامهنویسی شیءگرا (OOP) در پایتون 🐍📘
در این پارت، به مفاهیم پایه برنامهنویسی شیءگرا (Object-Oriented Programming یا به اختصار OOP) در پایتون میپردازیم. OOP یک پارادایم برنامهنویسی است که از اشیاء و کلاسها برای ساختاردهی و مدیریت کد استفاده میکند.
۱. تعریف کلاس و شیء
کلاسها قالبی برای ایجاد اشیاء هستند. یک کلاس میتواند شامل متغیرها (ویژگیها) و توابع (روشها) باشد.
تعریف یک کلاس ساده
توضیح: در این مثال، کلاسی به نام
۲. سازندهها (Constructors)
سازندهها متدی هستند که هنگام ایجاد یک شیء از کلاس فراخوانی میشوند. در پایتون، سازنده با in
استفاده از سازنده
توضinit
۳. متدها (Methods)
متدها توابعی هستند که در داخل کلاس تعریف میشوند و میتوانند به ویژگیها و دیگر متدهای کلاس دسترسی داشته باشند.
تعریف متد
توضیح: متد
۴. وراثت (Inheritance)
وراثت به شما اجازه میدهد تا یک کلاس جدید ایجاد کنید که تمام ویژگیها و متدهای یک کلاس دیگر را به ارث میبرد.
تعریف وراثت
توضیح: کلاس
۵. چندریختی (Polymorphism)
چندریختی به شما اجازه میدهد تا از یک رابط یکسان برای انواع مختلف اشیاء استفاده کنید.
تعریف چندریختی
توضیح: در این مثال، تابع
۶. مخفیسازی داده (Encapsulation)
مخفیسازی داده به شما اجازه میدهد تا دسترسی به ویژگیهای یک کلاس را محدود کنید.
تعریف مخفیسازی داده
توضیح: در name و یژگیهای
چند تا مثال هم ببینیم👇
در این پارت، به مفاهیم پایه برنامهنویسی شیءگرا (Object-Oriented Programming یا به اختصار OOP) در پایتون میپردازیم. OOP یک پارادایم برنامهنویسی است که از اشیاء و کلاسها برای ساختاردهی و مدیریت کد استفاده میکند.
۱. تعریف کلاس و شیء
کلاسها قالبی برای ایجاد اشیاء هستند. یک کلاس میتواند شامل متغیرها (ویژگیها) و توابع (روشها) باشد.
تعریف یک کلاس ساده
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def bark(self):
print(f"{self.name} is barking.")
# ایجاد یک شیء از کلاس
my_dog = Dog("Buddy", 3)
print(my_dog.name) # خروجی: Buddy
my_dog.bark() # خروجی: Buddy is barking.
توضیح: در این مثال، کلاسی به نام
Dog
تعریف کردهایم که دارای ویژگیهای name
و age
و یک روش به نام bark
است. سپس شیئی از این کلاس ایجاد کرده و از روشهای آن استفاده کردهایم.۲. سازندهها (Constructors)
سازندهها متدی هستند که هنگام ایجاد یک شیء از کلاس فراخوانی میشوند. در پایتون، سازنده با in
itit__ ش
ناخته میشود.استفاده از سازنده
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
# ایجاد یک شیء با استفاده از سازنده
my_dog = Dog("Buddy", 3)
print(my_dog.name) # خروجی: Buddy
توضinit
__init__
به عنوان سازنده در هنگام ایجاد شیء فراخوانی میشود و ویژگیهای name
و age
را مقداردهی میکند.۳. متدها (Methods)
متدها توابعی هستند که در داخل کلاس تعریف میشوند و میتوانند به ویژگیها و دیگر متدهای کلاس دسترسی داشته باشند.
تعریف متد
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def bark(self):
print(f"{self.name} is barking.")
# استفاده از متد
my_dog = Dog("Buddy", 3)
my_dog.bark() # خروجی: Buddy is barking.
توضیح: متد
bark
در کلاس Dog
تعریف شده و از ویژگی name
استفاده میکند.۴. وراثت (Inheritance)
وراثت به شما اجازه میدهد تا یک کلاس جدید ایجاد کنید که تمام ویژگیها و متدهای یک کلاس دیگر را به ارث میبرد.
تعریف وراثت
class Animal:
def __init__(self, name):
self.name = name
def eat(self):
print(f"{self.name} is eating.")
class Dog(Animal):
def bark(self):
print(f"{self.name} is barking.")
# استفاده از وراثت
my_dog = Dog("Buddy")
my_dog.eat() # خروجی: Buddy is eating.
my_dog.bark() # خروجی: Buddy is barking.
توضیح: کلاس
Dog
از کلاس Animal
وراثت میبرد و به ویژگیها و متدهای آن دسترسی دارد.۵. چندریختی (Polymorphism)
چندریختی به شما اجازه میدهد تا از یک رابط یکسان برای انواع مختلف اشیاء استفاده کنید.
تعریف چندریختی
class Cat(Animal):
def meow(self):
print(f"{self.name} is meowing.")
# تعریف تابعی که از چندریختی استفاده میکند
def make_sound(animal):
if isinstance(animal, Dog):
animal.bark()
elif isinstance(animal, Cat):
animal.meow()
# استفاده از چندریختی
my_dog = Dog("Buddy")
my_cat = Cat("Kitty")
make_sound(my_dog) # خروجی: Buddy is barking.
make_sound(my_cat) # خروجی: Kitty is meowing.
توضیح: در این مثال، تابع
make_sound
از چندریختی استفاده میکند تا با اشیاء مختلف از کلاسهای Dog
و Cat
تعامل داشته باشد.۶. مخفیسازی داده (Encapsulation)
مخفیسازی داده به شما اجازه میدهد تا دسترسی به ویژگیهای یک کلاس را محدود کنید.
تعریف مخفیسازی داده
class Dog:
def __init__(self, name, age):
self.__name = name # ویژگی خصوصی
self.__age = age # ویژگی خصوصی
def get_name(self):
return self.__name
def get_age(self):
return self.__age
# استفاده از مخفیسازی داده
my_dog = Dog("Buddy", 3)
print(my_dog.get_name()) # خروجی: Buddy
print(my_dog.get_age()) # خروجی: 3
توضیح: در name و یژگیهای
__name
و __age
خصوصی هستند و فقط از طریق متدهای get_name
و get_age
قابل دسترسی هستند.چند تا مثال هم ببینیم👇
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
👍4
1. یک کلاس به نام
2. یک کلاس به نام
3. یک کلاس به نام
(آموزش های بیشتر تو کانال ما)
#پایتون #آموزش_پایتون #برنامه_نویسی #شیء_گرایی #OOP #کلاس #وراثت #چندریختی #مخفی_سازی_داده
Car
ایجاد کنید که شامل ویژگیهای make
, model
و year
باشد. یک متد به نام start
تعریف کنید که پیامی مبنی بر روشن شدن خودرو چاپ کند. سپس شیئی از این کلاس ایجاد کرده و متد start
را فراخوانی کنید.class Car:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
def start(self):
print(f"The {self.year} {self.make} {self.model} is starting.")
my_car = Car("Toyota", "Corolla", 2020)
my_car.start() # خروجی: The 2020 Toyota Corolla is starting.
2. یک کلاس به نام
Person
ایجاد کنید که شامل ویژگیهای name
و age
باشد. یک متد به نام greet
تعریف کنید که پیامی شامل نام و سن فرد چاپ کند. سپس دو شیء از این کلاس ایجاد کرده و متد greet
را برای هر کدام فراخوانی کنید.class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print(f"Hello, my name is {self.name} and I am {self.age} years old.")
person1 = Person("Ali", 25)
person2 = Person("Sara", 30)
person1.greet() # خروجی: Hello, my name is Ali and I am 25 years old.
person2.greet() # خروجی: Hello, my name is Sara and I am 30 years old.
3. یک کلاس به نام
Employee
ایجاد کنید که شامل ویژگیهای name
, position
و salary
باشد. یک کلاس دیگر به نام Manager
ایجاد کنید که از Employee
وراثت ببرد و یک متد به نام promote
داشته باشد که حقوق کارمند را افزایش دهد. سپس شیئی از کلاس Manager
ایجاد کرده و متد promote
را فراخوانی کنید.class Employee:
def __init__(self, name, position, salary):
self.name = name
self.position = position
self.salary = salary
class Manager(Employee):
def promote(self, increase):
self.salary += increase
print(f"{self.name} has been promoted. New salary: {self.salary}")
manager = Manager("Ali", "Manager", 5000)
manager.promote(1000) # خروجی: Ali has been promoted. New salary: 6000
(آموزش های بیشتر تو کانال ما)
#پایتون #آموزش_پایتون #برنامه_نویسی #شیء_گرایی #OOP #کلاس #وراثت #چندریختی #مخفی_سازی_داده
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
👍4
پارت ۱۲: وراثت و چندریختی در پایتون 🐍👨💻
در این پارت به بررسی دو مفهوم کلیدی در برنامهنویسی شیءگرا (OOP) میپردازیم: وراثت (Inheritance) و چندریختی (Polymorphism). این دو مفهوم به شما کمک میکنند تا کدهای قابل نگهداری و توسعهپذیرتری بنویسید.
۱. وراثت (Inheritance)
وراثت به شما اجازه میدهد تا یک کلاس جدید را بر اساس کلاس موجود ایجاد کنید. کلاس جدید (کلاس فرزند) میتواند تمام ویژگیها و متدهای کلاس موجود (کلاس والد) را به ارث ببرد و همچنین ویژگیها و متدهای جدیدی را به آن اضافه کند.
مثال ساده از وراثت
توضیح: در این مثال، کلاس
۲. چندریختی (Polymorphism)
چندریختی به شما اجازه میدهد تا از یک رابط یکسان برای انواع مختلف اشیاء استفاده کنید. این بدان معناست که متدهای یکسان در کلاسهای مختلف میتوانند رفتارهای متفاوتی داشته باشند.
مثال چندریختی
توضیح: در این مثال، تابع
۳. وراثت چندگانه (Multiple Inheritance)
پایتون از وراثت چندگانه پشتیبانی میکند، یعنی یک کلاس میتواند از بیش از یک کلاس والد وراثت ببرد.
مثال وراثت چندگانه
توضیح: در این مثال، کلاس
👇اینم چند تا مثال
1. یک کلاس به نام
2. یک کلاس به نام
در این پارت به بررسی دو مفهوم کلیدی در برنامهنویسی شیءگرا (OOP) میپردازیم: وراثت (Inheritance) و چندریختی (Polymorphism). این دو مفهوم به شما کمک میکنند تا کدهای قابل نگهداری و توسعهپذیرتری بنویسید.
۱. وراثت (Inheritance)
وراثت به شما اجازه میدهد تا یک کلاس جدید را بر اساس کلاس موجود ایجاد کنید. کلاس جدید (کلاس فرزند) میتواند تمام ویژگیها و متدهای کلاس موجود (کلاس والد) را به ارث ببرد و همچنین ویژگیها و متدهای جدیدی را به آن اضافه کند.
مثال ساده از وراثت
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
pass
class Dog(Animal):
def speak(self):
return f"{self.name} says Woof!"
class Cat(Animal):
def speak(self):
return f"{self.name} says Meow!"
# استفاده از کلاسهای فرزند
dog = Dog("Buddy")
cat = Cat("Kitty")
print(dog.speak()) # خروجی: Buddy says Woof!
print(cat.speak()) # خروجی: Kitty says Meow!
توضیح: در این مثال، کلاس
Dog
و Cat
از کلاس Animal
وراثت میبرند و متد speak
را بازنویسی میکنند.۲. چندریختی (Polymorphism)
چندریختی به شما اجازه میدهد تا از یک رابط یکسان برای انواع مختلف اشیاء استفاده کنید. این بدان معناست که متدهای یکسان در کلاسهای مختلف میتوانند رفتارهای متفاوتی داشته باشند.
مثال چندریختی
class Bird(Animal):
def speak(self):
return f"{self.name} says Tweet!"
# تعریف تابعی که از چندریختی استفاده میکند
def animal_sound(animal):
print(animal.speak())
# استفاده از چندریختی
dog = Dog("Buddy")
cat = Cat("Kitty")
bird = Bird("Tweety")
animal_sound(dog) # خروجی: Buddy says Woof!
animal_sound(cat) # خروجی: Kitty says Meow!
animal_sound(bird) # خروجی: Tweety says Tweet!
توضیح: در این مثال، تابع
animal_sound
از چندریختی استفاده میکند تا با اشیاء مختلف از کلاسهای Dog
, Cat
و Bird
تعامل داشته باشد.۳. وراثت چندگانه (Multiple Inheritance)
پایتون از وراثت چندگانه پشتیبانی میکند، یعنی یک کلاس میتواند از بیش از یک کلاس والد وراثت ببرد.
مثال وراثت چندگانه
class Swimmable:
def swim(self):
print("I can swim!")
class Flyable:
def fly(self):
print("I can fly!")
class Duck(Animal, Swimmable, Flyable):
def speak(self):
return f"{self.name} says Quack!"
# استفاده از وراثت چندگانه
duck = Duck("Donald")
duck.speak() # خروجی: Donald says Quack!
duck.swim() # خروجی: I can swim!
duck.fly() # خروجی: I can fly!
توضیح: در این مثال، کلاس
Duck
از کلاسهای Animal
, Swimmable
و Flyable
وراثت میبرد و به تمامی ویژگیها و متدهای آنها دسترسی دارد.👇اینم چند تا مثال
1. یک کلاس به نام
Vehicle
ایجاد کنید که شامل ویژگیهای brand
و model
باشد. سپس دو کلاس Car
و Bike
ایجاد کنید که از Vehicle
وراثت ببرند و هرکدام یک متد به نام start_engine
داشته باشند که پیامی مربوط به روشن شدن موتور را چاپ کند.class Vehicle:
def __init__(self, brand, model):
self.brand = brand
self.model = model
class Car(Vehicle):
def start_engine(self):
print(f"The engine of the {self.brand} {self.model} car is starting.")
class Bike(Vehicle):
def start_engine(self):
print(f"The engine of the {self.brand} {self.model} bike is starting.")
car = Car("Toyota", "Corolla")
bike = Bike("Yamaha", "MT-07")
car.start_engine() # خروجی: The engine of the Toyota Corolla car is starting.
bike.start_engine() # خروجی: The engine of the Yamaha MT-07 bike is starting.
2. یک کلاس به نام
Shape
ایجاد کنید که شامل متدی به نام area
باشد. سپس دو کلاس Rectangle
و Circle
ایجاد کنید که از Shape
وراثت ببرند و متد area
را برای محاسبه مساحت هر شکل بازنویسی کنند.👍5
class Shape:
def area(self):
pass
class Rectangle(Shape):
init__init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
class Circle(Shape):
init__init__(self, radius):
self.radius = radius
def area(self):
import math
return math.pi * self.radius ** 2
rect = Rectangle(4, 5)
circ = Circle(3)
print(rect.area()) # خروجی: 20
print(circ.area()) # خروجی: 28.274333882308138
3. یک کلاس به نام
Employee
ایجاد کنید که شامل ویژگیهای name
و salary
باشد. سپس یک کلاس به نام Manager
ایجاد کنید که از Employee
وراثت ببرد و یک متد به نام give_raise
داشته باشد که حقوق کارمند را افزایش دهد.class Employee:
def init(self, name, salary):
self.name = name
self.salary = salary
class Manager(Employee):
def give_raise(self, amount):
self.salary += amount
print(f"{self.name} has been given a raise. New salary: {self.salary}")
manager = Manager("Ali", 5000)
manager.give_raise(1000) # خروجی: Ali has been given a raise. New salary: 6000
[اینجا کلیک کن تا بیشتر یاد بگیری]
#پایتون #آموزش_پایتون #برنامه_نویسی #وراثت #چندریختی #OOP #Inheritance #Polymorphism
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
👍5
آموزش استفاده از ماژول Scrapy 🕷
Scrapy یکی از قدرتمندترین ماژولهای پایتون برای وب اسکرپینگ است. این ابزار عالی به شما کمک میکند تا دادهها را از وبسایتها استخراج کنید. 🚀
وب اسکرپینگ به فرآیند استخراج اطلاعات از وبسایتها گفته میشود که معمولاً به صورت خودکار انجام میشود. Scrapy این کار را بسیار آسان و کارآمد میکند.
مرحله 1: نصب Scrapy 🛠
ابتدا باید این ماژول را نصب کنید. میتوانید از دستور زیر استفاده کنید:
این دستور Scrapy را روی سیستم شما نصب میکند.
مرحله 2: ایجاد پروژه Scrapy 📁
یک پروژه جدید ایجاد کنید:
به جای
مرحله 3: ایجاد Spider 🕸
به دایرکتوری پروژه بروید و یک Spider جدید ایجاد کنید:
این دستور یک Spider با نام
مرحله 4: نوشتن کد Spider ✍️
فایل
- import scrapy: ماژول Scrapy را وارد میکند.
- name: نام Spider که باید یکتا باشد.
- start_urls: لیستی از URL هایی که Spider باید از آنها شروع به کار کند.
- parse: متدی که برای پردازش پاسخ از URL های شروع استفاده میشود.
- response.css('title'): انتخاب عنوان صفحه با استفاده از CSS Selector.
- yield: استخراج و بازگشت دادهها.
مرحله 5: اجرای Spider 🎬
حالا میتوانید Spider خود را اجرا کنید و دادهها را استخراج کنید:
این دستور Spider را اجرا کرده و دادههای استخراج شده را در یک فایل JSON ذخیره میکند.
نکات تکمیلی:
- CSS Selectors: برای انتخاب عناصر HTML از CSS Selectors استفاده کنید.
- XPath: میتوانید از XPath نیز برای انتخاب عناصر استفاده کنید.
- Pipelines: برای پردازش و ذخیرهسازی دادههای استخراج شده از Pipelines استفاده کنید.
استفاده از Scrapy میتواند استخراج دادهها را به شدت ساده و کارآمد کند. امیدوارم این آموزش برای شما مفید باشد! 😊
(کانال تلگرامی ما)
#Python #Scrapy #وب_اسکرپینگ #آموزش #برنامه_نویسی
Scrapy یکی از قدرتمندترین ماژولهای پایتون برای وب اسکرپینگ است. این ابزار عالی به شما کمک میکند تا دادهها را از وبسایتها استخراج کنید. 🚀
وب اسکرپینگ به فرآیند استخراج اطلاعات از وبسایتها گفته میشود که معمولاً به صورت خودکار انجام میشود. Scrapy این کار را بسیار آسان و کارآمد میکند.
مرحله 1: نصب Scrapy 🛠
ابتدا باید این ماژول را نصب کنید. میتوانید از دستور زیر استفاده کنید:
pip install scrapy
این دستور Scrapy را روی سیستم شما نصب میکند.
مرحله 2: ایجاد پروژه Scrapy 📁
یک پروژه جدید ایجاد کنید:
scrapy startproject myproject
به جای
myproject
نام پروژه خود را وارد کنید. این دستور ساختار اولیه پروژه Scrapy را ایجاد میکند.مرحله 3: ایجاد Spider 🕸
به دایرکتوری پروژه بروید و یک Spider جدید ایجاد کنید:
cd myproject
scrapy genspider example example.com
این دستور یک Spider با نام
example
ایجاد میکند که وبسایت example.com
را هدف قرار میدهد.مرحله 4: نوشتن کد Spider ✍️
فایل
example.py
را باز کنید و کد Spider خود را بنویسید. این یک مثال ساده است:import scrapy
class ExampleSpider(scrapy.Spider):
name = "example" # نام Spider
start_urls = [
'https://example.com', # URL شروع
]
def parse(self, response):
for title in response.css('title'): # انتخاب عنوان صفحه با استفاده از CSS Selector
yield {'title': title.get()} # استخراج عنوان و ذخیره آن
- import scrapy: ماژول Scrapy را وارد میکند.
- name: نام Spider که باید یکتا باشد.
- start_urls: لیستی از URL هایی که Spider باید از آنها شروع به کار کند.
- parse: متدی که برای پردازش پاسخ از URL های شروع استفاده میشود.
- response.css('title'): انتخاب عنوان صفحه با استفاده از CSS Selector.
- yield: استخراج و بازگشت دادهها.
مرحله 5: اجرای Spider 🎬
حالا میتوانید Spider خود را اجرا کنید و دادهها را استخراج کنید:
scrapy crawl example -o output.json
این دستور Spider را اجرا کرده و دادههای استخراج شده را در یک فایل JSON ذخیره میکند.
نکات تکمیلی:
- CSS Selectors: برای انتخاب عناصر HTML از CSS Selectors استفاده کنید.
- XPath: میتوانید از XPath نیز برای انتخاب عناصر استفاده کنید.
- Pipelines: برای پردازش و ذخیرهسازی دادههای استخراج شده از Pipelines استفاده کنید.
استفاده از Scrapy میتواند استخراج دادهها را به شدت ساده و کارآمد کند. امیدوارم این آموزش برای شما مفید باشد! 😊
(کانال تلگرامی ما)
#Python #Scrapy #وب_اسکرپینگ #آموزش #برنامه_نویسی
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزش استفاده از کلاسها برای پیادهسازی الگوریتم مرتبسازی سریع (QuickSort) 📚
مرتبسازی سریع (QuickSort) یکی از محبوبترین و کارآمدترین الگوریتمهای مرتبسازی است. در این آموزش، نحوه پیادهسازی این الگوریتم با استفاده از کلاسها در پایتون را به شما نشان میدهیم. 🚀
مرحله 1: تعریف کلاس QuickSort 🧩
ابتدا کلاس
initit
- تعریف آرایه: یک آرایه نمونه برای مرتبسازی.
- ایجاد نمونه: یک نمونه از کلاس
- مرتبسازی: فراخوانی متد
- نمایش نتیجه: نمایش آرایه مرتب شده.
توضیحات:
1. تعریف کلاس: کلاس
2. متد سازنده: مinitit__
استفاده از کلاسها در پایتون میتواند برنامهنویسی شیءگرا را سادهتر و قابل مدیریتتر کند. امیدوارم این آموزش برای شما مفید باشد! 😊
(آموزش بیشتر کانال ما)
#Python #QuickSort #آموزش #برنامه_نویسی #مرتبسازی
مرتبسازی سریع (QuickSort) یکی از محبوبترین و کارآمدترین الگوریتمهای مرتبسازی است. در این آموزش، نحوه پیادهسازی این الگوریتم با استفاده از کلاسها در پایتون را به شما نشان میدهیم. 🚀
مرحله 1: تعریف کلاس QuickSort 🧩
ابتدا کلاس
QuickSort
را تعریف میکنیم که شامل متدهای مختلف برای مرتبسازی است.class QuickSort:
def __init__(self, array):
self.array = array # آرایهای که باید مرتب شود
def sort(self):
self._quick_sort(0, len(self.array) - 1) # فراخوانی متد مرتبسازی سریع
return self.array # بازگشت آرایه مرتب شده
def _quick_sort(self, low, high):
if low < high:
pivot_index = self._partition(low, high) # پیدا کردن نقطه محوری
self._quick_sort(low, pivot_index - 1) # مرتبسازی بخش چپ از نقطه محوری
self._quick_sort(pivot_index + 1, high) # مرتبسازی بخش راست از نقطه محوری
def _partition(self, low, high):
pivot = self.array[high] # انتخاب عنصر پایانی به عنوان نقطه محوری
i = low - 1 # اندیس اولین عنصر کوچکتر از نقطه محوری
for j in range(low, high):
if self.array[j] <= pivot:
i += 1
self.array[i], self.array[j] = self.array[j], self.array[i] # تعویض عناصر
self.array[i + 1], self.array[high] = self.array[high], self.array[i + 1] # تعویض نقطه محوری با عنصر در جایگاه i+1
return i + 1
initit
__: متد سازنده که آرایهای که باید مرتب شود را دریافت میکند.
- sort: متدی که مرتبسازی را شروع کرده و آرایه مرتب شده را باز میگرداند.
- _q
uick_sort: متد خصوصی برای اجرای الگوریتم مرتبسازی سریع.
- _p
artition: متد خصوصی برای تقسیم آرایه به دو بخش بر اساس نقطه محوری.
مرحله 2: استفاده از کلاس QuickSort 📝
حالا با استفاده از کلاس Quic
kSort، آرایهای را مرتب میکنیم:
nameme__ mainin__":
array = [10, 7, 8, 9, 1, 5] # آرایه نمونه
sorter = QuickSort(array) # ایجاد نمونهای از کلاس QuickSort
sorted_array = sorter.sort() # مرتبسازی آرایه
print("Sorted array:", sorted_array) # نمایش آرایه مرتب شده
- تعریف آرایه: یک آرایه نمونه برای مرتبسازی.
- ایجاد نمونه: یک نمونه از کلاس
QuickSort
با استفاده از آرایه ورودی.- مرتبسازی: فراخوانی متد
sort
برای مرتبسازی آرایه.- نمایش نتیجه: نمایش آرایه مرتب شده.
توضیحات:
1. تعریف کلاس: کلاس
QuickSort
را تعریف کردیم که شامل متدهای مختلف برای مرتبسازی است.2. متد سازنده: مinitit__
آرایهای که باید مرتب شود را دریافت میکند.
3. متد sort: متد
sort عملیات مرتبسازی را شروع کرده و آرایه مرتب شده را باز میگرداند.
4. متدهای خصوصی: متدهای
_quick_sort و
_partition برای اجرای الگوریتم مرتبسازی سریع به کار میروند.
5. استفاده از کلاس: یک نمونه از کلاس
QuickSort` ایجاد کرده و آرایه را مرتب کردیم.استفاده از کلاسها در پایتون میتواند برنامهنویسی شیءگرا را سادهتر و قابل مدیریتتر کند. امیدوارم این آموزش برای شما مفید باشد! 😊
(آموزش بیشتر کانال ما)
#Python #QuickSort #آموزش #برنامه_نویسی #مرتبسازی
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
❤2
آموزش کامل بلاکها در پایتون 🐍
بلاکها (Blocks) در پایتون، بخشهای کدی هستند که با استفاده از تورفتگی (Indentation) مشخص میشوند. بلاکها معمولا در ساختارهای کنترلی، حلقهها، تعریف توابع و کلاسها استفاده میشوند. در این آموزش، با مفاهیم و کاربردهای مختلف بلاکها آشنا میشویم. 🚀
1. بلاکها در ساختارهای کنترلی (if-else) 🧩
بلاکها در پایتون با استفاده از تورفتگی (Spaces یا Tabs) تعریف میشوند. برای مثال، در ساختار
در اینجا، هر دو بلاک با تورفتگی یکسان از خط اصلی جدا شدهاند.
2. بلاکها در حلقهها (for و while) 🔄
در حلقههای
هر بلاک شامل دستورات متعددی میتواند باشد که با تورفتگی از هم جدا میشوند.
3. بلاکها در تعریف توابع (Functions) 📝
بلاکها در تعریف توابع نیز به کار میروند:
در اینجا، بلاک داخل تابع با تورفتگی مشخص شده است.
4. بلاکها در تعریف کلاسها (Classes) 🏫
تعریف کلاسها نیز شامل بلاکهای مختلفی است:
در اینجا، بلاکهای داخل کلاس و متدها با تورفتگی مشخص شدهاند.
5. بلاکها در مدیریت استثناها (Exceptions) 🚨
مدیریت استثناها نیز از بلاکها استفاده میکند:
بلاکهای
توضیحات:
1. ساختارهای کنترلی: بلاکهای
2. حلقهها: بلاکهای
3. توابع: بلاکهای داخل توابع با تورفتگی از خط تعریف تابع جدا میشوند.
4. کلاسها: بلاکهای داخل کلاس و متدها نیز با تورفتگی مشخص میشوند.
5. مدیریت استثناها: بلاکهای
استفاده از بلاکها در پایتون بسیار ساده و شهودی است. تورفتگی در پایتون نقش مهمی در خوانایی و ساختار کد دارد. امیدوارم این آموزش برای شما مفید باشد! 😊
(کانال تلگرام مارو دنبال کنید)
#Python #Programming #Coding #Blocks #آموزش
بلاکها (Blocks) در پایتون، بخشهای کدی هستند که با استفاده از تورفتگی (Indentation) مشخص میشوند. بلاکها معمولا در ساختارهای کنترلی، حلقهها، تعریف توابع و کلاسها استفاده میشوند. در این آموزش، با مفاهیم و کاربردهای مختلف بلاکها آشنا میشویم. 🚀
1. بلاکها در ساختارهای کنترلی (if-else) 🧩
بلاکها در پایتون با استفاده از تورفتگی (Spaces یا Tabs) تعریف میشوند. برای مثال، در ساختار
if-else
:x = 10
if x > 5:
print("x is greater than 5") # این یک بلاک است
else:
print("x is less than or equal to 5") # این نیز یک بلاک است
در اینجا، هر دو بلاک با تورفتگی یکسان از خط اصلی جدا شدهاند.
2. بلاکها در حلقهها (for و while) 🔄
در حلقههای
for
و while
نیز از بلاکها استفاده میشود:# حلقه for
for i in range(5):
print("Iteration", i) # این یک بلاک است
# حلقه while
j = 0
while j < 5:
print("Iteration", j) # این یک بلاک است
j += 1
هر بلاک شامل دستورات متعددی میتواند باشد که با تورفتگی از هم جدا میشوند.
3. بلاکها در تعریف توابع (Functions) 📝
بلاکها در تعریف توابع نیز به کار میروند:
def greet(name):
print("Hello", name) # این یک بلاک است
greet("Alice")
در اینجا، بلاک داخل تابع با تورفتگی مشخص شده است.
4. بلاکها در تعریف کلاسها (Classes) 🏫
تعریف کلاسها نیز شامل بلاکهای مختلفی است:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print("Hello, my name is", self.name)
p = Person("Bob", 30)
p.greet()
در اینجا، بلاکهای داخل کلاس و متدها با تورفتگی مشخص شدهاند.
5. بلاکها در مدیریت استثناها (Exceptions) 🚨
مدیریت استثناها نیز از بلاکها استفاده میکند:
try:
x = 1 / 0
except ZeroDivisionError:
print("You cannot divide by zero!") # این یک بلاک است
finally:
print("This will always execute") # این یک بلاک است
بلاکهای
try
, except
و finally
هر کدام با تورفتگی از هم جدا شدهاند.توضیحات:
1. ساختارهای کنترلی: بلاکهای
if-else
با تورفتگی مشخص میشوند.2. حلقهها: بلاکهای
for
و while
شامل دستورات با تورفتگی مشابه هستند.3. توابع: بلاکهای داخل توابع با تورفتگی از خط تعریف تابع جدا میشوند.
4. کلاسها: بلاکهای داخل کلاس و متدها نیز با تورفتگی مشخص میشوند.
5. مدیریت استثناها: بلاکهای
try
, except
و finally
هر کدام با تورفتگی از هم جدا شدهاند.استفاده از بلاکها در پایتون بسیار ساده و شهودی است. تورفتگی در پایتون نقش مهمی در خوانایی و ساختار کد دارد. امیدوارم این آموزش برای شما مفید باشد! 😊
(کانال تلگرام مارو دنبال کنید)
#Python #Programming #Coding #Blocks #آموزش
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
❤5
سلام دوستان ، شرمنده امروز پستی نذاشتیم ( سرکار )❤️🥲
یه نظرسنجی میزارم حتما جواب بدید✔️🔥
یه نظرسنجی میزارم حتما جواب بدید✔️🔥
👍5
🖥 | برای دوستانی که با «PC» کد میزنن برنامه «Visual Studio Code»
📱 | برای کسانی که با «موبایل» کد میزنن «Pydroid 3» رو پیشنهاد میکنم
⚠️ : @hamidpython123
📱 | برای کسانی که با «موبایل» کد میزنن «Pydroid 3» رو پیشنهاد میکنم
⚠️ : @hamidpython123
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
👍5