Python3
200 subscribers
100 photos
6 videos
26 files
518 links
🎓 آموزش و پروژه‌های Python
آموزش‌های کاربردی و پروژه‌های عملی Python برای همه سطوح. 🚀
Download Telegram
سه تا فایل
عکسی از کد
4
پارت ۱۱: مفاهیم پایه برنامه‌نویسی شیءگرا (OOP) در پایتون 🐍📘

در این پارت، به مفاهیم پایه برنامه‌نویسی شیءگرا (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)

سازنده‌ها متدی هستند که هنگام ایجاد یک شیء از کلاس فراخوانی می‌شوند. در پایتون، سازنده با initit__ شناخته می‌شود.

استفاده از سازنده

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 قابل دسترسی هستند.

چند تا مثال هم ببینیم👇
👍4
1. یک کلاس به نام 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 #کلاس #وراثت #چندریختی #مخفی_سازی_داده
👍4
پارت ۱۲: وراثت و چندریختی در پایتون 🐍👨‍💻

در این پارت به بررسی دو مفهوم کلیدی در برنامه‌نویسی شیءگرا (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
👍5
میانگین درآمد برنامه نویس ها در کشور های مختلف 👨‍💻
👍3
آموزش استفاده از ماژول 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 #وب_اسکرپینگ #آموزش #برنامه_نویسی
آموزش استفاده از کلاس‌ها برای پیاده‌سازی الگوریتم مرتب‌سازی سریع (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 #آموزش #برنامه_نویسی #مرتب‌سازی
2
آموزش کامل بلاک‌ها در پایتون 🐍

بلاک‌ها (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 #آموزش
5
صبح همتون بخیر دوستان ☕️
👍3
سلام دوستان ، شرمنده امروز پستی نذاشتیم ( سرکار )❤️🥲

یه نظرسنجی میزارم حتما جواب بدید✔️🔥
👍5
با PC کد میزنید یا موبایل ؟🤔
Anonymous Poll
95%
PC
5%
موبایل
👍5
🖥 | برای دوستانی که با «PC» کد میزنن برنامه «Visual Studio Code»

📱 | برای کسانی که با «موبایل» کد میزنن «Pydroid 3» رو پیشنهاد میکنم


⚠️ : @hamidpython123
👍5
🖥 | لینک دانلود {Visual Studio Code}

📱| لینک دانلود {Pydroid3}
👍5
پارت ۱۳: ماژول‌ها و پکیج‌ها در پایتون 📦🐍

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

۱. ماژول‌ها (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
پارت ۱۴: کتابخانه‌های استاندارد پایتون 📚🐍

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

۱. کتابخانه math
کتابخانه math شامل توابع و ثابت‌های ریاضی پایه‌ای است که برای انجام محاسبات ریاضی مورد استفاده قرار می‌گیرد.

مثال‌هایی از کتابخانه math
import math

# محاسبه جذر
print(math.sqrt(16)) # خروجی: 4.0

# محاسبه سینوس
print(math.sin(math.pi / 2)) # خروجی: 1.0

# محاسبه لگاریتم
print(math.log(10)) # خروجی: 2.302585092994046

۲. کتابخانه datetime
کتابخانه datetime برای کار با تاریخ و زمان استفاده می‌شود. این کتابخانه امکان انجام محاسبات تاریخ و زمان، قالب‌بندی و تجزیه را فراهم می‌کند.

مثال‌هایی از کتابخانه datetime
import datetime

# ایجاد یک شیء تاریخ و زمان
now = datetime.datetime.now()
print(now) # خروجی: تاریخ و زمان فعلی

# قالب‌بندی تاریخ
print(now.strftime("%Y-%m-%d %H:%M:%S")) # خروجی: قالب‌بندی شده به صورت سال-ماه-روز ساعت:دقیقه:ثانیه

# محاسبه اختلاف بین دو تاریخ
date1 = datetime.datetime(2023, 7, 5)
date2 = datetime.datetime(2024, 7, 5)
diff = date2 - date1
print(diff.days) # خروجی: 366

۳. کتابخانه os
کتابخانه os ابزارهایی برای تعامل با سیستم‌عامل فراهم می‌کند، از جمله کار با فایل‌ها و دایرکتوری‌ها، اجرای دستورات سیستم‌عامل و دسترسی به متغیرهای محیطی.

مثال‌هایی از کتابخانه os
import os

# دریافت مسیر دایرکتوری فعلی
current_directory = os.getcwd()
print(current_directory) # خروجی: مسیر دایرکتوری فعلی

# ایجاد یک دایرکتوری جدید
os.mkdir("new_directory")

# لیست کردن فایل‌ها و دایرکتوری‌ها
files = os.listdir(".")
print(files) # خروجی: لیستی از فایل‌ها و دایرکتوری‌ها در دایرکتوری فعلی

۴. کتابخانه sys
کتابخانه sys ابزارهایی برای تعامل با مفسر پایتون فراهم می‌کند، از جمله دسترسی به آرگومان‌های خط فرمان، مدیریت خروجی و ورودی استاندارد و مدیریت استثناء‌ها.

مثال‌هایی از کتابخانه sys
import sys

# دریافت آرگومان‌های خط فرمان
print(sys.argv) # خروجی: لیستی از آرگومان‌های خط فرمان

# چاپ پیام خطا و خروج از برنامه
sys.stderr.write("This is an error message\n")
sys.exit(1)

۵. کتابخانه random
کتابخانه random برای تولید اعداد تصادفی و انجام عملیات تصادفی مانند انتخاب عناصر از لیست استفاده می‌شود.

مثال‌هایی از کتابخانه random
import random

# تولید یک عدد تصادفی بین 1 و 10
print(random.randint(1, 10)) # خروجی: یک عدد تصادفی بین 1 و 10

# انتخاب تصادفی از لیست
choices = ['apple', 'banana', 'cherry']
print(random.choice(choices)) # خروجی: یکی از عناصر لیست به صورت تصادفی

# مخلوط کردن عناصر لیست
random.shuffle(choices)
print(choices) # خروجی: لیست مخلوط شده

۶. کتابخانه json
کتابخانه json برای کار با داده‌های JSON استفاده می‌شود. این کتابخانه ابزارهایی برای تبدیل داده‌های پایتون به فرمت JSON و برعکس فراهم می‌کند.

مثال‌هایی از کتابخانه json
import json

# تبدیل دیکشنری به رشته JSON
data = {'name': 'Alice', 'age': 30}
json_string = json.dumps(data)
print(json_string) # خروجی: {"name": "Alice", "age": 30}

# تبدیل رشته JSON به دیکشنری
data_parsed = json.loads(json_string)
print(data_parsed) # خروجی: {'name': 'Alice', 'age': 30}

(آموزش های خیلی مفید کانال ما)

#پایتون #آموزش_پایتون #کتابخانه_استاندارد #PythonStandardLibrary #PythonModules
👍2
| سوالی داشتین Pv پیام بدید :
🏆 :
@Mr_Xplus
👍2
آیا می‌دانستید؟ 🤓

اولین کامپیوتر مکانیکی قابل برنامه‌ریزی در جهان توسط کنراد تسوزه (Konrad Zuse) ساخته شد و به نام Z1 شناخته می‌شود. 💻 این شاهکار مهندسی در سال 1938 در آلمان ساخته شد و یکی از اولین تلاش‌ها برای ایجاد یک کامپیوتر دیجیتال واقعی بود.

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

از ویژگی‌های جالب Z1 می‌توان به موارد زیر اشاره کرد:
- استفاده از مموری مکانیکی برای ذخیره داده‌ها 🗄🔧
- قابلیت برنامه‌ریزی با استفاده از نوارهای پانچ 📜🎛
- انجام محاسبات منطقی و ریاضی با استفاده از سیستم دو دویی 🔢🤓

Z1 توسط تسوزه در خانه‌اش و با استفاده از منابع محدودی که در دسترس داشت، ساخته شد. این دستگاه نشان‌دهنده نبوغ و پیشگامی تسوزه در حوزه کامپیوتر بود و راه را برای نسل‌های بعدی کامپیوترها هموار کرد. 👨‍🔬🚀

این کامپیوتر خارق‌العاده، اگرچه در جنگ جهانی دوم و بمباران‌ها از بین رفت، اما مدل‌های بازسازی شده آن در موزه‌های مختلفی به نمایش گذاشته شده‌اند تا یادآور یکی از نخستین گام‌ها در دنیای محاسبات باشند. 🏛🔍

(دانستنی های بیشتر توی کانال ما)

#تاریخچه_کامپیوتر #کنراد_تسوزه #Z1 #کامپیوتر_مکانیکی #نوآوری #دانستنی #علم_و_فناوری
👍1