پارت ۱۱: مفاهیم پایه برنامهنویسی شیءگرا (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: متدی که مرتبسازی را شروع کرده و آرایه مرتب شده را باز میگرداند.
- _quick_sort: متد خصوصی برای اجرای الگوریتم مرتبسازی سریع.
- _partition: متد خصوصی برای تقسیم آرایه به دو بخش بر اساس نقطه محوری.
مرحله 2: استفاده از کلاس QuickSort 📝
حالا با استفاده از کلاس QuickSort، آرایهای را مرتب میکنیم: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
پارت ۱۳: ماژولها و پکیجها در پایتون 📦🐍
در این پارت با ماژولها و پکیجها در پایتون آشنا میشویم و میبینیم چگونه میتوانیم کدهای خود را به صورت منطقی و قابل نگهداری تقسیمبندی کنیم.
۱. ماژولها (Modules)
ماژولها فایلهایی با پسوند
ایجاد و استفاده از یک ماژول
1. ایجاد ماژول: ابتدا یک فایل به نام
2. استفاده از ماژول: در یک فایل دیگر میتوانید از ماژول ایجاد شده استفاده کنید:
۲. پکیجها (Packages)
پکیجها مجموعهای از ماژولها هستند که در یک دایرکتوری قرار دارند و شامل یک فایل
ایجاد و استفاده از یک پکیج
1. ایجاد پکیج: ساختار زیر را ایجاد کنید:
2. فایل
3. فایل
4. استفاده از پکیج:
۳. نصب و استفاده از پکیجهای خارجی
شما میتوانید از پکیجهای خارجی که توسط جامعه پایتون ایجاد شدهاند نیز استفاده کنید. این پکیجها معمولاً از طریق PyPI (Python Package Index) در دسترس هستند و میتوانید آنها را با استفاده از pip نصب کنید.
نصب یک پکیج
به عنوان مثال، نصب پکیج
استفاده از پکیج نصب شده
۴. ایجاد و انتشار پکیج خود
اگر شما یک پکیج ایجاد کردهاید و میخواهید آن را با دیگران به اشتراک بگذارید، میتوانید آن را در PyPI منتشر کنید. این فرآیند شامل ایجاد فایلهایی مانند
فایل
این فایل شامل اطلاعاتی درباره پکیج شماست:
انتشار پکیج
مراحل کلی برای انتشار پکیج شامل ساخت و آپلود بسته به PyPI است:
[اینم کانال ما]
#پایتون #آموزش_پایتون #ماژول #پکیج #PythonModules #PythonPackages
در این پارت با ماژولها و پکیجها در پایتون آشنا میشویم و میبینیم چگونه میتوانیم کدهای خود را به صورت منطقی و قابل نگهداری تقسیمبندی کنیم.
۱. ماژولها (Modules)
ماژولها فایلهایی با پسوند
.py هستند که شامل کد پایتون میباشند. شما میتوانید از ماژولها برای سازماندهی کدهای خود و جلوگیری از تکرار کدها استفاده کنید.ایجاد و استفاده از یک ماژول
1. ایجاد ماژول: ابتدا یک فایل به نام
my_module.py ایجاد کنید و کدهای زیر را در آن قرار دهید:# my_module.py
def greet(name):
return f"Hello, {name}!"
def add(a, b):
return a + b
2. استفاده از ماژول: در یک فایل دیگر میتوانید از ماژول ایجاد شده استفاده کنید:
# main.py
import my_module
print(my_module.greet("Alice")) # خروجی: Hello, Alice!
print(my_module.add(5, 3)) # خروجی: 8
۲. پکیجها (Packages)
پکیجها مجموعهای از ماژولها هستند که در یک دایرکتوری قرار دارند و شامل یک فایل
init.py هستند. این فایل میتواند خالی باشد یا کدهای خاصی را شامل شود.ایجاد و استفاده از یک پکیج
1. ایجاد پکیج: ساختار زیر را ایجاد کنید:
my_package/
__init__.py
module1.py
module2.py
2. فایل
module1.py:# module1.py
def multiply(a, b):
return a * b
3. فایل
module2.py:# module2.py
def divide(a, b):
if b == 0:
return "Cannot divide by zero!"
return a / b
4. استفاده از پکیج:
# main.py
from my_package import module1, module2
print(module1.multiply(4, 5)) # خروجی: 20
print(module2.divide(10, 2)) # خروجی: 5.0
۳. نصب و استفاده از پکیجهای خارجی
شما میتوانید از پکیجهای خارجی که توسط جامعه پایتون ایجاد شدهاند نیز استفاده کنید. این پکیجها معمولاً از طریق PyPI (Python Package Index) در دسترس هستند و میتوانید آنها را با استفاده از pip نصب کنید.
نصب یک پکیج
به عنوان مثال، نصب پکیج
requests برای انجام درخواستهای HTTP:pip install requests
استفاده از پکیج نصب شده
import requests
response = requests.get('https://api.github.com')
print(response.status_code) # خروجی: 200 (یا هر کد وضعیت دیگر)
print(response.json()) # خروجی: دادههای JSON دریافت شده از API
۴. ایجاد و انتشار پکیج خود
اگر شما یک پکیج ایجاد کردهاید و میخواهید آن را با دیگران به اشتراک بگذارید، میتوانید آن را در PyPI منتشر کنید. این فرآیند شامل ایجاد فایلهایی مانند
setup.py و ثبت پکیج در PyPI میشود.فایل
setup.pyاین فایل شامل اطلاعاتی درباره پکیج شماست:
from setuptools import setup, find_packages
setup(
name='my_package',
version='0.1',
packages=find_packages(),
install_requires=[],
)
انتشار پکیج
مراحل کلی برای انتشار پکیج شامل ساخت و آپلود بسته به PyPI است:
python setup.py sdist bdist_wheel
twine upload dist/*
[اینم کانال ما]
#پایتون #آموزش_پایتون #ماژول #پکیج #PythonModules #PythonPackages