Python3
200 subscribers
100 photos
6 videos
26 files
518 links
🎓 آموزش و پروژه‌های Python
آموزش‌های کاربردی و پروژه‌های عملی Python برای همه سطوح. 🚀
Download Telegram
آموزش ورودی گرفتن بعد از اجرای کد بدون استفاده از input در پایتون 🖥️💡

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

روش اول: استفاده از فایل‌ها 📄

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

# ذخیره ورودی‌ها در یک فایل متنی
with open('input.txt', 'w') as file:
file.write('Hello, world!\n')
file.write('42\n')

# خواندن ورودی‌ها از فایل متنی
with open('input.txt', 'r') as file:
lines = file.readlines()

# پردازش ورودی‌ها
first_line = lines[0].strip()
second_line = int(lines[1].strip())

print(f"First Line: {first_line}")
print(f"Second Line: {second_line}")

در این کد:
1. ابتدا ورودی‌ها را در یک فایل متنی به نام input.txt ذخیره می‌کنیم.
2. سپس این فایل را باز کرده و خطوط آن را می‌خوانیم.
3. ورودی‌ها را پردازش کرده و چاپ می‌کنیم.

روش دوم: استفاده از آرگومان‌های خط فرمان 🖱️

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

import sys

if len(sys.argv) != 3:
print("Usage: python script.py <first_input> <second_input>")
sys.exit(1)

first_input = sys.argv[1]
second_input = int(sys.argv[2])

print(f"First Input: {first_input}")
print(f"Second Input: {second_input}")

برای اجرای این کد:
1. برنامه را با آرگومان‌های مورد نظر اجرا کنید:

   python script.py "Hello, world!" 42

در این کد:
1. از ماژول sys برای دسترسی به آرگومان‌های خط فرمان استفاده می‌کنیم.
2. آرگومان‌های ورودی را بررسی کرده و پردازش می‌کنیم.
3. ورودی‌ها را چاپ می‌کنیم.

نتیجه‌گیری 🌟
استفاده از فایل‌ها و آرگومان‌های خط فرمان دو روش معمول برای دریافت ورودی بعد از اجرای برنامه بدون استفاده از تابع input هستند. این روش‌ها به شما امکان می‌دهند تا برنامه‌های خود را انعطاف‌پذیرتر و کاربرپسندتر کنید. امیدوارم این آموزش برای شما مفید باشد!

🔻اینجا کلیک کن تا بیشتر یاد بگیری

#پایتون #کدنویسی #آموزش #ورودی #برنامه‌نویسی
👍3
معرفی ماژول‌های داخلی پایتون 🐍

پایتون دارای تعداد زیادی از ماژول‌های داخلی است که می‌توانند برای انواع مختلفی از وظایف استفاده شوند. در اینجا تعدادی از مهم‌ترین و پرکاربردترین ماژول‌های داخلی پایتون رو معرفی می‌کنیم:

1. os 🌐
- مدیریت فایل سیستم، دستورات سیستم‌عامل، و کار با مسیرهای فایل.

2. sys ⚙️
- دسترسی به پارامترها و توابع خاص مفسر پایتون.

3. math
- توابع ریاضی مانند سینوس، کسینوس، جذر و غیره.

4. datetime
- کار با تاریخ و زمان.

5. json 📜
- پارس و تولید داده‌های JSON.

6. re 🔍
- کار با عبارات منظم (Regular Expressions).

7. random 🎲
- تولید اعداد تصادفی و انتخاب‌های تصادفی از دنباله‌ها.

8. collections 📚
- انواع داده‌های جمع‌آوری پیشرفته مانند deque, Counter, OrderedDict.

9. itertools 🔄
- توابع برای ایجاد و کار با تکرارها (iterators).

10. functools 🛠️
- توابع و متدهایی برای دستکاری و کار با توابع دیگر.

11. operator 🔗
- توابع برای کار با عملگرهای استاندارد.

12. copy 📋
- توابع برای کپی کردن اشیاء.

13. heapq 📈
- پیاده‌سازی صف اولویت با استفاده از heap queue.

14. bisect 🪛
- توابع برای کار با دنباله‌های مرتب.

15. array 📊
- آرایه‌هایی با انواع داده‌های محدود.

16. enum 🏷️
- کلاس‌های شمارشی (enumeration).

17. fractions 🍰
- کلاس‌های کار با کسرها.

18. decimal 💲
- محاسبات دقیق اعشاری.

19. statistics 📈
- توابع آماری پایه.

20. socket 📡
- برقراری ارتباط شبکه‌ای.

21. threading 🧵
- مدیریت و کار با رشته‌ها (threads).

22. multiprocessing 🖥️
- اجرای کد در چندین فرآیند.

23. subprocess 🛠️
- اجرا و مدیریت فرآیندهای خارجی.

24. shutil 🗂️
- عملیات سطح بالای فایل و دایرکتوری.

25. unittest 🧪
- چارچوب تست واحد برای پایتون.

26. logging 📋
- ایجاد و مدیریت لاگ‌ها.

27. configparser ⚙️
- پارس و تولید فایل‌های پیکربندی.

28. csv 📑
- کار با فایل‌های CSV.

29. sqlite3 🗄️
- پایگاه داده SQLite.

30. xml 🌐
- پارس و تولید داده‌های XML.

31. email 📧
- مدیریت و ساخت ایمیل‌ها.

32. http 🌍
- کار با پروتکل HTTP.

33. urllib 🌐
- باز کردن و خواندن URL‌ها.

34. html 📄
- دستکاری داده‌های HTML.

35. cgi 🌐
- پشتیبانی از CGI برای برنامه‌های وب.

36. wsgiref 🌐
- ابزار و کلاس‌ها برای WSGI.

37. hashlib 🔒
- الگوریتم‌های هش.

38. hmac 🔒
- پیام‌های هش مبتنی بر کلید.

39. ssl 🔒
- مدیریت ارتباطات امن SSL/TLS.

40. base64 📜
- کدگذاری و دیکدگذاری داده‌ها با استفاده از Base64.

👈اینم کانال ما👉

#پایتون #برنامه‌نویسی #ماژول‌های_پایتون #Python #Coding
4👍1
👇👇👇🔴همستر لیست شد🔴👇👇👇👇



یعنی باید اینجوری بکشمت اینجا ری اکشن بزنی🤦‍♂️
👍52
به غیر از پایتون چه زبان دیگه ای بلدید؟؟؟😂❤️

👇👇👇 بگید 👇👇👇
👍3
گیمر هست اینجا؟😂💔
Anonymous Poll
70%
حاضرم
22%
نه فقط برنامه نویسی
7%
نتایج
4
نکته مهم در پایتون: استفاده از Decorators

در پایتون، Decorators یا دکوراتورها یکی از ابزارهای قدرتمند و پرکاربرد هستند که به شما این امکان را می‌دهند تا عملکرد یک تابع یا متد را بدون تغییر در کد اصلی آن، تغییر دهید یا گسترش دهید. 🌟

دکوراتور چیست؟
دکوراتور یک تابع است که یک تابع دیگر را به عنوان ورودی می‌گیرد و یک تابع جدید را برمی‌گرداند که معمولاً عملکردی اضافی به تابع اصلی اضافه می‌کند. 🎩

مثال:
فرض کنید می‌خواهید زمان اجرای یک تابع را اندازه‌گیری کنید. با استفاده از دکوراتور، می‌توانید این کار را به سادگی انجام دهید.

import time

def timing_decorator(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"Elapsed time: {end_time - start_time:.4f} seconds")
return result
return wrapper

@timing_decorator
def my_function():
for _ in range(1000000):
pass

my_function()

در این مثال:
1. دکوراتور timing_decorator تعریف شده است که زمان اجرای تابع را اندازه‌گیری می‌کند.
2. با استفاده از @timing_decorator، تابع my_function با دکوراتور زمان‌بندی تزئین شده است.
3. هر بار که my_function اجرا می‌شود، زمان اجرای آن اندازه‌گیری و چاپ می‌شود. 🕒💡

کاربردهای دکوراتورها:
- ورود و خروج: برای ثبت ورود و خروج به توابع.
- کنترل دسترسی: برای مدیریت دسترسی به توابع.
- مدیریت منابع: برای مدیریت منابع مانند باز و بسته کردن فایل‌ها.
- ارزیابی عملکرد: برای اندازه‌گیری عملکرد توابع.

به یاد داشته باشید: دکوراتورها می‌توانند خوانایی و مدیریت کد را بهبود بخشند، به شرطی که به درستی و با دقت استفاده شوند. 🎯📈

🔻بیا اینجا تا بیشتر یاد بگیری

#Python #CodingTips #Decorators #Programming #PythonTips #PythonTricks #LearnPython
👍3
استفاده از کلاس‌ها در پایتون: از ساده‌ترین تا پیچیده‌ترین روش‌ها

در این آموزش، ما به دو روش مختلف برای استفاده از کلاس‌ها در پایتون خواهیم پرداخت: یک روش ساده و یک روش پیچیده‌تر. 🌟

1. روش ساده: ایجاد یک کلاس برای مدیریت حساب بانکی

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

# روش ساده برای استفاده از کلاس‌ها در پایتون

class BankAccount:
def __init__(self, initial_balance=0):
self.balance = initial_balance

def deposit(self, amount):
self.balance += amount
print(f"Deposited {amount}, new balance is {self.balance}")

def withdraw(self, amount):
if amount <= self.balance:
self.balance -= amount
print(f"Withdrew {amount}, new balance is {self.balance}")
else:
print("Insufficient funds")

# ایجاد یک حساب بانکی با موجودی اولیه 100
account = BankAccount(100)

# واریز 50 به حساب
account.deposit(50)

# برداشت 30 از حساب
account.withdraw(30)

# تلاش برای برداشت 150 از حساب (موجودی کافی نیست)
account.withdraw(150)

در این مثال:
1. کلاس BankAccount تعریف شده است که دارای متد سازنinitit__)، متد deposit برای واریز پول و متد withdraw برای برداشت پول است.
2. یک حساب بانکی ایجاد می‌شود و عملیات واریز و برداشت روی آن انجام می‌شود. 💰

2. روش پیچیده: ایجاد یک کلاس با ویژگی‌ها و متدهای پیشرفته

در این روش، کلاس پیچیده‌تری را برای مدیریت حساب بانکی ایجاد می‌کنیم که شامل ویژگی‌های بیشتر و متدهای پیشرفته‌تری است.

# روش پیچیده‌تر برای استفاده از کلاس‌ها در پایتون

class BankAccount:
def __init__(self, initial_balance=0):
self.balance = initial_balance
self.transactions = []

def deposit(self, amount):
self.balance += amount
self.transactions.append(f"Deposited {amount}")
print(f"Deposited {amount}, new balance is {self.balance}")

def withdraw(self, amount):
if amount <= self.balance:
self.balance -= amount
self.transactions.append(f"Withdrew {amount}")
print(f"Withdrew {amount}, new balance is {self.balance}")
else:
self.transactions.append(f"Failed withdrawal of {amount}")
print("Insufficient funds")

def get_balance(self):
return self.balance

def get_transactions(self):
return self.transactions

# ایجاد یک حساب بانکی با موجودی اولیه 200
account = BankAccount(200)

# واریز 100 به حساب
account.deposit(100)

# برداشت 50 از حساب
account.withdraw(50)

# تلاش برای برداشت 300 از حساب (موجودی کافی نیست)
account.withdraw(300)

# نمایش موجودی حساب
print(f"Current balance is {account.get_balance()}")

# نمایش تراکنش‌ها
print("Transactions:")
for transaction in account.get_transactions():
print(transaction)

در این مثال:
1. کلاس BankAccount دارای ویژگی‌های اضافی مانند لیست تراکنش‌ها (transactions) است.
2. متدهای اضافی برای گرفتن موجودی (get_balance) و نمایش تراکنش‌ها (get_transactions) اضافه شده است.
3. عملیات واریز و برداشت به تراکنش‌ها اضافه می‌شود و در صورت ناکافی بودن موجودی، تراکنش ناموفق ثبت می‌شود. 📜

با این دو مثال، شما می‌توانید تفاوت بین استفاده ساده و پیچیده از کلاس‌ها در پایتون را ببینید. بسته به نیاز پروژه‌تان، می‌توانید روش مناسب را انتخاب کنید.

🔻اینجا کلیک کن تا بیشتر یاد بگیری

#Python #Classes #OOP #Programming #LearnPython #PythonClasses #BankAccount #AdvancedPython
👍5
سلام دوستان عزیز! 🌸

امیدوارم حال همگی خوب باشه و روزهای خوبی رو سپری کرده باشید. 🌞

اول از همه می‌خوام بابت غیبتم و عدم فعالیت طولانی‌مدت توی کانال از همتون عذرخواهی کنم. 🙏 متاسفانه به دلایل شخصی و مشغله‌های کاری نتونستم مثل گذشته با شما در ارتباط باشم و مطالب جدیدی رو به اشتراک بذارم. 💼

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

اما با کلی انرژی و ایده‌های جدید برگشتم تا دوباره با هم به یادگیری و اشتراک‌گذاری مطالب جذاب بپردازیم. 🎉 در روزهای آینده منتظر پست‌ها و مطالب جدید باشید. 😉

باز هم بابت تمام لطف و حمایت‌های شما ممنونم و امیدوارم بتونم جبران کنم. 🌟

با آرزوی موفقیت برای همه شما دوستان عزیز!
3👍1
📚 دوره آموزش پایتون از 0 تا 100

پارت ۱۹: شروع با Flask برای توسعه وب 🌐

در این پارت با فریم‌ورک Flask آشنا می‌شویم و یاد می‌گیریم چگونه با استفاده از این فریم‌ورک ساده اما قدرتمند، وب‌سایت‌ها و برنامه‌های وبی را ایجاد کنیم.

۱. Flask چیست؟ 🤔
Flask یک فریم‌ورک کوچک و منعطف برای توسعه وب در پایتون است که برای ساخت برنامه‌های وب ساده و سریع بسیار مناسب است.

۲. نصب Flask 🛠️

برای نصب Flask از pip استفاده می‌کنیم:

pip install Flask

۳. ایجاد اولین برنامه Flask 📝

یک فایل جدید با نام app.py ایجاد کنید و کد زیر را در آن بنویسید:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
return "Hello, Flask!"

if __name__ == '__main__':
app.run(debug=True)

این کد:
- Flask را ایمپورت می‌کند.
- یک اپلیکیشن Flask ایجاد می‌کند.
- یک روت برای صفحه اصلی تعریف می‌کند که متن "Hello, Flask!" را برمی‌گرداند.
- اپلیکیشن را در حالت دیباگ اجرا می‌کند.

برای اجرای برنامه، در ترمینال دستور زیر را وارد کنید:

python app.py

و مرورگر خود را باز کنید و به آدرس https://127.0.0.1:5000/ بروید. باید پیام "Hello, Flask!" را ببینید.

۴. مسیریابی (Routing) 🚦

Flask از مفهوم مسیریابی برای هدایت درخواست‌ها به توابع خاص استفاده می‌کند. بیایید یک مثال دیگر از مسیریابی ببینیم:

@app.route('/about')
def about():
return "This is the about page."

۵. استفاده از قالب‌ها (Templates) 📄

برای ایجاد صفحات HTML دینامیک از قالب‌ها استفاده می‌کنیم. ابتدا یک پوشه به نام templates ایجاد کرده و یک فایل HTML به نام index.html در آن ایجاد کنید:

<!doctype html>
<html>
<head>
<title>Flask App</title>
</head>
<body>
<h1>{{ message }}</h1>
</body>
</html>

حالا کد زیر را به app.py اضافه کنید:

from flask import render_template

@app.route('/')
def home():
return render_template('index.html', message="Hello, Flask with Templates!")

۶. دریافت ورودی از کاربر 📥

برای دریافت داده از کاربر از فرم‌ها استفاده می‌کنیم. یک فرم ساده در فایل index.html ایجاد کنید:

<form method="POST" action="/submit">
<input type="text" name="username">
<input type="submit" value="Submit">
</form>

و در app.py کد زیر را اضافه کنید:

from flask import request

@app.route('/submit', methods=['POST'])
def submit():
username = request.form['username']
return f"Hello, {username}!"

۷. مدیریت خطاها و ریدایرکت‌ها ⚠️➡️

برای مدیریت خطاها و ریدایرکت‌ها از توابع مخصوص استفاده می‌کنیم:

from flask import redirect, url_for

@app.route('/redirect')
def redirect_example():
return redirect(url_for('home'))

@app.errorhandler(404)
def page_not_found(e):
return "Page not found!", 404



نکات مهم
- Flask: یک فریم‌ورک کوچک و منعطف برای توسعه وب با پایتون است.
- نصب و راه‌اندازی: با استفاده از pip نصب شده و به راحتی قابل راه‌اندازی است.
- مسیریابی: هدایت درخواست‌ها به توابع مختلف با استفاده از decorators.
- قالب‌ها: ایجاد صفحات HTML دینامیک با استفاده از Jinja2.
- دریافت ورودی: استفاده از فرم‌ها برای دریافت داده از کاربر.
- مدیریت خطاها و ریدایرکت‌ها: مدیریت درخواست‌های نادرست و هدایت کاربران به صفحات موردنظر.

با این آموزش، شما می‌توانید یک برنامه وب ساده با Flask ایجاد کنید و آن را به مرور زمان گسترش دهید. موفق باشید! 🌟

🔻برای بیشتر یاد گرفتن بیا اینجا

#پایتون #آموزش_پایتون #Flask #توسعه_وب #PythonWebDevelopment #PythonProgramming
📚 دوره آموزش پایتون از 0 تا 100

پارت ۲۰: شروع با Django برای توسعه وب 🌐

در این پارت با فریم‌ورک Django آشنا می‌شویم و یاد می‌گیریم چگونه با استفاده از این فریم‌ورک قدرتمند و پیشرفته، وب‌سایت‌ها و برنامه‌های وبی را ایجاد کنیم.

۱. Django چیست؟ 🤔
Django یک فریم‌ورک سطح بالا برای توسعه وب با پایتون است که طراحی شده تا توسعه وب سریع، ساده و مقیاس‌پذیر باشد. Django دارای بسیاری از امکانات پیش‌فرض است که نیازهای رایج توسعه‌دهندگان وب را پوشش می‌دهد.

۲. نصب Django 🛠️

برای نصب Django از pip استفاده می‌کنیم:

pip install django

۳. ایجاد اولین پروژه Django 📝

برای ایجاد اولین پروژه Django، از دستور django-admin استفاده می‌کنیم:

django-admin startproject myproject

این دستور یک پوشه به نام myproject ایجاد می‌کند که شامل ساختار اولیه یک پروژه Django است.

۴. ساخت یک اپلیکیشن در Django 🏗️

در Django، یک پروژه می‌تواند شامل چندین اپلیکیشن باشد. برای ایجاد یک اپلیکیشن جدید، وارد پوشه پروژه شده و دستور زیر را اجرا کنید:

python manage.py
startapp myapp

این دستور یک پوشه به نام myapp ایجاد می‌کند که شامل ساختار اولیه یک اپلیکیشن Django است.

۵. تنظیمات پروژه 🔧

فایل تنظیمات پروژه در مسیر myproject/settings.py قرار دارد. برخی از تنظیمات مهم عبارتند از:

- INSTALLED_APPS: اپلیکیشن‌هایی که در پروژه فعال هستند.
- DATABASES: تنظیمات پایگاه داده.

برای اضافه کردن اپلیکیشن جدید به پروژه، myapp را به لیست INSTALLED_APPS اضافه کنید:

INSTALLED_APPS = [
...
'myapp',
]

۶. تعریف مدل‌ها (Models) 🗂️

مدل‌ها در Django برای تعریف ساختار داده‌ها و تعامل با پایگاه داده استفاده می‌شوند. در فایل myapp/models.py، مدل‌های خود را تعریف کنید:

from django.db import models

class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)

def __str__(self):
return self.title

۷. مهاجرت پایگاه داده (Database Migrations) 🔄

بعد از تعریف مدل‌ها، باید آن‌ها را به پایگاه داده مهاجرت کنید. برای این کار از دستورات زیر استفاده کنید:

python manage.py makemigrations
python manage.py migrate

۸. ایجاد و مدیریت ادمین (Admin) 🛡️

Django دارای یک رابط کاربری ادمین پیش‌فرض است که برای مدیریت مدل‌ها استفاده می‌شود. برای دسترسی به پنل ادمین، ابتدا یک سوپریوزر ایجاد کنید:

python manage.py
createsuperuser

سپس به فایل myapp/admin.py بروید و مدل‌های خود را ثبت کنید:

from django.contrib import admin
from .models import Post

admin.site.register(Post)

۹. تعریف ویوها (Views) و URLها 🌐

ویوها در Django برای پردازش درخواست‌ها و برگرداندن پاسخ‌ها استفاده می‌شوند. در فایل myapp/views.py، ویوهای خود را تعریف کنید:

from django.shortcuts import render
from .models import Post

def home(request):
posts = Post.objects.all()
return render(request, 'home.html', {'posts': posts})

سپس URLهای مربوطه را در فایل myapp/urls.py تعریف کنید:

from django.urls import path
from .views import home

urlpatterns = [
path('', home, name='home'),
]

فایل `urls.py را به فایل اصلی urls.py پروژه اضافه کنید:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
path('admin/', admin.site.urls),
path('', include('myapp.urls')),
]

۱۰. استفاده از قالب‌ها (Templates) 📄

برای ایجاد صفحات HTML از قالب‌ها استفاده می‌کنیم. یک پوشه به نام templates در پوشه myapp ایجاد کرده و فایل home.html را در آن ایجاد کنید:

<!doctype html>
<html>
<head>
<title>Django App</title>
</head>
<body>
<h1>Posts</h1>
{% for post in posts %}
<h2>{{ post.title }}</h2>
<p>{{ post.content }}</p>
<p><em>{{ post.created_at }}</em></p>
{% endfor %}
</body>
</html>

` نکات مهمهم*Djangogo**: یک فریم‌ورک قدرتمند برای توسعه وب با پایتون است.
- نصب و راه‌اندازی: با استفاده از pip نصب شده و به راحتی قابل راه‌اندازی است.
- مدل‌ها: برای تعریف ساختار داده‌ها و تعامل با پایگاه داده استفاده می‌شوند.
- ویوها و URLها: برای پردازش درخواست‌ها و هدایت آن‌ها به توابع مناسب استفاده می‌شوند.
- قالب‌ها: برای ایجاد صفحات HTML دینامیک با استفاده از Django Template Language.

با این آموزش، شما می‌توانید یک برنامه وب ساده با Django ایجاد کنید و آن را به مرور زمان گسترش دهید. موفق باشید! 🌟

🔻برای بیشتر یاد گرفتن بیا اینجا

#پایتون #آموزش_پایتون #Django #توسعه_وب #PythonWebDevelopment #PythonProgramming
📚 دوره آموزش پایتون از 0 تا 100

پارت ۲۱: معرفی Pandas برای تحلیل داده‌ها 📊

در این پارت با کتابخانه قدرتمند Pandas آشنا می‌شویم و یاد می‌گیریم چگونه از این ابزار برای تحلیل و پردازش داده‌ها استفاده کنیم.

۱. Pandas چیست؟ 🤔
Pandas یک کتابخانه متن‌باز برای زبان برنامه‌نویسی پایتون است که برای کار با داده‌های ساختاریافته و جدول‌بندی‌شده به کار می‌رود. این کتابخانه ابزارهای متنوعی برای خواندن، نوشتن، پردازش و تحلیل داده‌ها فراهم می‌کند.

۲. نصب Pandas 🛠️

برای نصب Pandas از pip استفاده می‌کنیم:

pip install pandas

۳. ایجاد و کار با سری‌ها (Series) 📝

سری‌ها، ساختارهای داده‌ای یک‌بعدی در Pandas هستند. یک سری را می‌توان به صورت یک ستون از یک جدول در نظر گرفت.

import pandas as pd

data = [1, 2, 3, 4, 5]
series = pd.Series(data)

print(series)

این کد:
- Pandas را ایمپورت می‌کند.
- یک لیست از داده‌ها ایجاد می‌کند.
- یک سری از داده‌ها ایجاد می‌کند و آن را چاپ می‌کند.

۴. ایجاد و کار با دیتا‌فریم‌ها (DataFrame) 📋

دیتافریم‌ها، ساختارهای داده‌ای دوبعدی در Pandas هستند که می‌توانند به صورت جداولی با ردیف‌ها و ستون‌ها در نظر گرفته شوند.

data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'San Francisco', 'Los Angeles']
}

df = pd.DataFrame(data)

print(df)

این کد:
- یک دیکشنری از داده‌ها ایجاد می‌کند.
- یک دیتافریم از داده‌ها ایجاد می‌کند و آن را چاپ می‌کند.

۵. خواندن و نوشتن فایل‌های CSV 📄

Pandas ابزارهایی برای خواندن و نوشتن فایل‌های CSV فراهم می‌کند.

برای خواندن یک فایل CSV:

df = pd.read_csv('data.csv')

print(df.head())

برای نوشتن یک دیتافریم به فایل CSV:

df.to_csv('output.csv', index=False)

۶. فیلتر و مرتب‌سازی داده‌ها 🔍

Pandas ابزارهایی برای فیلتر و مرتب‌سازی داده‌ها فراهم می‌کند.

برای فیلتر کردن داده‌ها:

filtered_df = df[df['Age'] > 30]

print(filtered_df)

برای مرتب‌سازی داده‌ها:

sorted_df = df.sort_values(by='Age')

print(sorted_df)

۷. عملیات بر روی دیتافریم‌ها

Pandas امکان انجام عملیات‌های مختلف بر روی دیتافریم‌ها را فراهم می‌کند.

برای اضافه کردن یک ستون جدید:

df['Salary'] = [50000, 60000, 70000]

print(df)

برای حذف یک ستون:

df = df.drop(columns=['Salary'])

print(df)

۸. گروه‌بندی و تجمع داده‌ها 📊

Pandas ابزارهایی برای گروه‌بندی و تجمع داده‌ها فراهم می‌کند.

برای گروه‌بندی داده‌ها:

grouped_df = df.groupby('City').mean()

print(grouped_df)


نکات مهم
- Pandas: یک کتابخانه قدرتمند برای تحلیل داده‌ها در پایتون است.
- سری‌ها و دیتافریم‌ها: ساختارهای داده‌ای پایه‌ای برای کار با داده‌ها.
- خواندن و نوشتن فایل‌های CSV: ابزارهای Pandas برای کار با فایل‌های داده‌ای.
- فیلتر و مرتب‌سازی داده‌ها: امکانات Pandas برای جستجو و سازمان‌دهی داده‌ها.
- عملیات بر روی دیتافریم‌ها: افزودن، حذف و تغییر داده‌ها در دیتافریم‌ها.
- گروه‌بندی و تجمع داده‌ها: ابزارهای Pandas برای تحلیل‌های پیچیده‌تر داده‌ها.

با این آموزش، شما می‌توانید به راحتی داده‌ها را با استفاده از Pandas تحلیل و پردازش کنید. موفق باشید! 🌟

🔻برای بیشتر یاد گرفتن بیا اینجا

#پایتون #آموزش_پایتون #Pandas #تحلیل_داده #PythonDataAnalysis #PythonProgramming
📚 دوره آموزش پایتون از 0 تا 100

پارت ۲۲: معرفی NumPy برای محاسبات علمی و عددی 🔢

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

۱. NumPy چیست؟ 🤔
NumPy (Numerical Python) یک کتابخانه متن‌باز برای زبان برنامه‌نویسی پایتون است که به‌طور خاص برای انجام محاسبات عددی و علمی توسعه یافته است. NumPy امکاناتی برای ایجاد و مدیریت آرایه‌ها، انجام عملیات ریاضی پیچیده و مدیریت داده‌های چندبعدی فراهم می‌کند.

۲. نصب NumPy 🛠️

برای نصب NumPy از pip استفاده می‌کنیم:

pip install numpy

۳. ایجاد و کار با آرایه‌ها (Arrays) 📝

آرایه‌ها ساختارهای داده‌ای پایه در NumPy هستند. یک آرایه را می‌توان به‌صورت یک لیست چندبعدی در نظر گرفت.

import numpy as np

# ایجاد یک آرایه یک‌بعدی
array_1d = np.array([1, 2, 3, 4, 5])

# ایجاد یک آرایه دوبعدی
array_2d = np.array([[1, 2, 3], [4, 5, 6]])

print("آرایه یک‌بعدی:", array_1d)
print("آرایه دوبعدی:\n", array_2d)

۴. عملیات پایه‌ای بر روی آرایه‌ها

NumPy امکانات متنوعی برای انجام عملیات‌های ریاضی بر روی آرایه‌ها فراهم می‌کند.

# عملیات جمع
array_sum = array_1d + 10
print("جمع آرایه:", array_sum)

# عملیات ضرب
array_product = array_1d * 2
print("ضرب آرایه:", array_product)

۵. ایندکس‌گذاری و بُرش (Indexing and Slicing) 🔍

برای دسترسی به عناصر خاص در آرایه‌ها از ایندکس‌گذاری و بُرش استفاده می‌کنیم.

# دسترسی به عناصر خاص
print("عنصر اول آرایه یک‌بعدی:", array_1d[0])
print("عنصر اول آرایه دوبعدی:", array_2d[0, 0])

# برش آرایه‌ها
print("بُرش آرایه یک‌بعدی:", array_1d[1:4])
print("بُرش آرایه دوبعدی:\n", array_2d[:, 1:3])

۶. ایجاد آرایه‌های خاص 🛠️

NumPy امکاناتی برای ایجاد آرایه‌های خاص مانند آرایه‌های صفر، آرایه‌های یک و آرایه‌های با توزیع‌های مختلف فراهم می‌کند.

# ایجاد آرایه‌های صفر و یک
zeros_array = np.zeros((2, 3))
ones_array = np.ones((3, 3))

# ایجاد آرایه‌های با توزیع مختلف
random_array = np.random.rand(3, 3)

print("آرایه صفر:\n", zeros_array)
print("آرایه یک:\n", ones_array)
print("آرایه تصادفی:\n", random_array)

۷. توابع و عملیات ریاضی پیشرفته 📊

NumPy دارای مجموعه‌ای از توابع ریاضی پیشرفته برای انجام محاسبات پیچیده است.

# محاسبه میانگین و انحراف معیار
mean_value = np.mean(array_1d)
std_dev = np.std(array_1d)

# انجام عملیات ماتریسی
matrix_product = np.dot(array_2d, array_2d.T)

print("میانگین:", mean_value)
print("انحراف معیار:", std_dev)
print("ضرب ماتریسی:\n", matrix_product)

۸. تغییر شکل آرایه‌ها (Reshaping) 🔄

برای تغییر شکل آرایه‌ها و تبدیل آن‌ها به شکل‌های مختلف از توابع reshaping استفاده می‌کنیم.

reshaped_array = array_1d.reshape((5, 1))

print("آرایه تغییر شکل یافته:\n", reshaped_array)



نکات مهم
- NumPy: یک کتابخانه قدرتمند برای انجام محاسبات علمی و عددی در پایتون است.
- آرایه‌ها: ساختارهای داده‌ای پایه برای کار با داده‌های چندبعدی.
- عملیات ریاضی: امکان انجام عملیات‌های ریاضی پایه‌ای و پیشرفته بر روی آرایه‌ها.
- ایندکس‌گذاری و بُرش: دسترسی به عناصر و بخش‌های خاص آرایه‌ها.
- آرایه‌های خاص: ایجاد آرایه‌های صفر، یک و با توزیع‌های مختلف.
- توابع ریاضی پیشرفته: محاسبات پیچیده و عملیات ماتریسی.
- تغییر شکل آرایه‌ها: تغییر شکل و تبدیل آرایه‌ها به فرم‌های مختلف.

با این آموزش، شما می‌توانید به راحتی داده‌ها را با استفاده از NumPy تحلیل و پردازش کنید. موفق باشید! 🌟

🔻برای بیشتر یاد گرفتن بیا اینجا

#پایتون #آموزش_پایتون #NumPy #محاسبات_علمی #PythonScientificComputing #PythonProgramming
📚 دوره آموزش پایتون از 0 تا 100

پارت ۲۳: پروژه نهایی - تحلیل داده‌ها 📊

در این پارت، از تمامی مفاهیمی که تا به حال آموخته‌ایم، برای انجام یک پروژه نهایی تحلیل داده‌ها استفاده می‌کنیم. هدف این پروژه، تحلیل یک مجموعه داده و استخراج اطلاعات مفید از آن است.

۱. انتخاب مجموعه داده 📂

ابتدا باید یک مجموعه داده مناسب انتخاب کنیم. برای این پروژه، از مجموعه داده معروف "Titanic" استفاده خواهیم کرد. این مجموعه داده شامل اطلاعاتی درباره مسافران کشتی تایتانیک است و می‌توانیم تحلیل‌های جالبی بر روی آن انجام دهیم.

۲. نصب کتابخانه‌های مورد نیاز 🛠️

برای انجام تحلیل داده‌ها، نیاز به نصب کتابخانه‌های Pandas و NumPy داریم. اگر قبلاً این کتابخانه‌ها را نصب نکرده‌اید، می‌توانید از طریق pip آن‌ها را نصب کنید:

pip install pandas numpy

۳. خواندن داده‌ها 📥

ابتدا مجموعه داده را با استفاده از Pandas وارد می‌کنیم:

import pandas as pd

# خواندن داده‌ها از فایل CSV
df = pd.read_csv('titanic.csv')

# نمایش چند ردیف اول از داده‌ها
print(df.head())

۴. بررسی اولیه داده‌ها 🔍

برای آشنایی بیشتر با داده‌ها، یک بررسی اولیه انجام می‌دهیم:

# نمایش اطلاعات کلی درباره داده‌ها
print(df.info())

# نمایش آمار توصیفی از داده‌ها
print(df.describe())

۵. تمیز کردن داده‌ها 🧹

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

# پر کردن مقادیر گمشده با میانگین ستون
df['Age'].fillna(df['Age'].mean(), inplace=True)

# حذف ردیف‌های با مقادیر گمشده در ستون Embarked
df.dropna(subset=['Embarked'], inplace=True)

۶. تحلیل داده‌ها 📊

حال که داده‌ها تمیز شده‌اند، می‌توانیم تحلیل‌های مختلفی بر روی آن‌ها انجام دهیم. به عنوان مثال، بررسی می‌کنیم چند درصد از مسافران زنده مانده‌اند.

# محاسبه درصد زنده‌مانده‌ها
survival_rate = df['Survived'].mean() * 100

print(f"درصد زنده‌مانده‌ها: {survival_rate:.2f}%")

۷. تحلیل گروهی داده‌ها 📋

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

# تعریف دسته‌های سنی
bins = [0, 12, 20, 40, 60, 80]
labels = ['کودک', 'نوجوان', 'جوان', 'میانسال', 'سالمند']
df['AgeGroup'] = pd.cut(df['Age'], bins=bins, labels=labels)

# محاسبه نرخ زنده‌ماندن برای هر گروه سنی
age_group_survival = df.groupby('AgeGroup')['Survived'].mean() * 100

print(age_group_survival)

۸. رسم نمودارها 📈

برای نمایش نتایج تحلیل‌ها، می‌توانیم از کتابخانه Matplotlib استفاده کنیم. اگر این کتابخانه را نصب ندارید، با استفاده از pip آن را نصب کنید:

pip install matplotlib

سپس می‌توانیم یک نمودار میله‌ای از نرخ زنده‌ماندن برای گروه‌های سنی مختلف رسم کنیم:

import matplotlib.pyplot as plt

# رسم نمودار میله‌ای
age_group_survival.plot(kind='bar')
plt.title('نرخ زنده‌ماندن برای گروه‌های سنی مختلف')
plt.xlabel('گروه سنی')
plt.ylabel('نرخ زنده‌ماندن (%)')
plt.show()



نکات مهم
- انتخاب مجموعه داده: استفاده از مجموعه داده Titanic.
- خواندن و بررسی داده‌ها: استفاده از Pandas برای خواندن و بررسی اولیه داده‌ها.
- تمیز کردن داده‌ها: پر کردن مقادیر گمشده و حذف داده‌های نامعتبر.
- تحلیل داده‌ها: انجام تحلیل‌های مختلف برای استخراج اطلاعات مفید.
- تحلیل گروهی داده‌ها: استفاده از گروه‌بندی برای تحلیل دقیق‌تر داده‌ها.
- رسم نمودارها: استفاده از Matplotlib برای نمایش بصری نتایج.

با این پروژه نهایی، شما قادر خواهید بود تحلیل داده‌ها را به طور کامل انجام دهید و نتایج خود را به صورت بصری نمایش دهید. موفق باشید! 🌟

🔻برای بیشتر یاد گرفتن بیا اینجا

#پایتون #آموزش_پایتون #تحلیل_داده #پروژه_نهایی #PythonDataAnalysis #PythonProgramming
📚 دوره آموزش پایتون از 0 تا 100

پارت ۲۴: جمع‌بندی و منابع بیشتر 📖

در این پارت پایانی، به مرور مطالبی که در طول دوره آموخته‌ایم می‌پردازیم و منابعی برای ادامه‌ی یادگیری و عمیق‌تر شدن در مفاهیم پایتون معرفی می‌کنیم.

مرور مطالب دوره 🎓

در طول این دوره، مباحث متنوع و جامعی را در زمینه پایتون پوشش دادیم. در زیر به خلاصه‌ای از مهم‌ترین مباحث اشاره می‌کنیم:

1. مبانی پایتون: نصب، متغیرها، انواع داده‌ها، عملیات ریاضی و منطقی.
2. ساختارهای داده: لیست‌ها، تاپل‌ها، دیکشنری‌ها و مجموعه‌ها.
3. حلقه‌ها و توابع: استفاده از حلقه‌ها و تعریف توابع.
4. مدیریت فایل‌ها و استثناء‌ها: خواندن و نوشتن فایل‌ها، مدیریت خطاها.
5. برنامه‌نویسی شیءگرا: مفاهیم پایه، وراثت و پلی‌مورفیسم.
6. ماژول‌ها و پکیج‌ها: معرفی و استفاده از ماژول‌ها و پکیج‌های استاندارد.
7. پروژه‌های عملی: پروژه‌های کاربردی برای تثبیت مطالب.
8. مفاهیم پیشرفته: Decorators، Generators و مدیریت حافظه.
9. توسعه وب: آشنایی با Flask و Django.
10. کار با داده‌ها: معرفی و استفاده از Pandas و NumPy.
11. تحلیل داده‌ها: انجام پروژه نهایی تحلیل داده‌ها.

*منابع بیشتر برای یادگیری 📚

برای ادامه‌ی یادگیری و عمیق‌تر شدن در مفاهیم پایتون، منابع زیادی وجود دارد که می‌توانند به شما کمک کنند. در اینجا چند منبع معتبر و مفید معرفی می‌شود:

۱. کتاب‌ها 📖

- "Automate the Boring Stuff with Python" نوشته Al Sweigart: این کتاب به شما کمک می‌کند تا با استفاده از پایتون، کارهای روزمره را خودکار کنید.
- "Python Crash Course" نوشته Eric Matthes: یک راهنمای کامل برای مبتدیان که شامل پروژه‌های عملی نیز هست.
- "Fluent Python" نوشته Luciano Ramalho: برای یادگیری عمیق‌تر مفاهیم پیشرفته پایتون.

۲. دوره‌های آنلاین 🎥

- Coursera: دوره‌های متعددی از دانشگاه‌های معتبر دنیا برای یادگیری پایتون.
- edX: دوره‌های مختلفی از دانشگاه‌های برتر جهان.
- Udemy: دوره‌های جامع و متنوعی برای هر سطح از دانش پایتون.

۳. مستندات رسمی 📄

- [مستندات رسمی پایتون]: بهترین منبع برای یادگیری دقیق و کامل تمامی توابع و کتابخانه‌های پایتون.
- [مستندات Pandas]: مرجعی کامل برای یادگیری Pandas.
- [مستندات NumPy]: بهترین منبع برای یادگیری NumPy.

۴. انجمن‌ها و سایت‌های پرسش و پاسخ 🌐

- Stack Overflow: بزرگ‌ترین انجمن برنامه‌نویسان جهان برای پرسش و پاسخ در مورد مسائل برنامه‌نویسی.
- Reddit: جوامع متعددی برای یادگیری و بحث درباره پایتون.

🔻برای بیشتر یاد گرفتن بیا اینجا

#پایتون #آموزش_پایتون #برنامه_نویسی #منابع_یادگیری #Python #PythonLearning #PythonResources
📚 برنامه کامل دوره آموزش پایتون از 0 تا 100

خوشحالیم که به دوره جامع آموزش پایتون از 0 تا 100 پیوستید. 🎉 این دوره برای تمامی سطوح طراحی شده و شما را از پایه تا پیشرفته به دنیای برنامه‌نویسی با پایتون می‌برد. در این پست، برنامه کامل دوره و موضوعات هر پارت را معرفی می‌کنیم. می‌توانید با کلیک روی هر موضوع، به لینک مربوطه دسترسی پیدا کنید.


1. [نصب و راه‌اندازی پایتون]
2. [متغیرها و انواع داده‌ها]
3. [عملیات ریاضی و منطقی]
4. [دستورات شرطی]
5. [لیست‌ها و تاپل‌ها]
6. [دیکشنری‌ها و مجموعه‌ها]
7. [حلقه‌ها]
8. [توابع]
9. [مدیریت فایل]
10. [مدیریت استثناء‌ها]
11. [مفاهیم پایه OOP]
12. [وراثت و پلی‌مورفیسم]
13. [ماژول‌ها و پکیج‌ها]
14. [کتابخانه‌های استاندارد پایتون]
15. [پروژه 1 - مدیریت مخاطبین]
16. [پروژه 2 - ماشین حساب پیشرفته]
17. [Decorators و Generators]
18. [مدیریت حافظه و Garbage Collection]
19. [معرفی Flask]
20. [معرفی Django]
21. [معرفی Pandas]
22. [معرفی NumPy]
23. [پروژه نهایی - تحلیل داده‌ها]
24. [جمع‌بندی و منابع بیشتر]


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

به زودی لینک‌های هر پارت در دسترس قرار خواهند گرفت تا به راحتی بتوانید به تمامی مطالب دسترسی داشته باشید. از همراهی شما سپاسگزاریم و امیدواریم این دوره برای شما مفید و لذت‌بخش باشد. 🚀

#پایتون #آموزش_پایتون #برنامه_نویسی #دوره_آموزشی #Python #Programming #PythonCourse
👍2
آموزش اتصال به مرورگر با استفاده از Selenium در پایتون 🖥️🌐

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

مراحل نصب و راه‌اندازی Selenium

1. نصب Selenium:
برای نصب Selenium، از دستور pip استفاده کنید:


   pip install selenium

2. دانلود WebDriver:
Selenium برای کنترل مرورگر نیاز به WebDriver دارد. WebDriver مرورگر خاصی را که می‌خواهید اتوماسیون کنید، کنترل می‌کند. برای Chrome، می‌توانید ChromeDriver را دانلود کنید:

- به صفحه [دانلود ChromeDriver] بروید.
- نسخه مناسب برای مرورگر Chrome خود را دانلود کنید.
- فایل دانلود شده را از حالت فشرده خارج کنید و آن را در یک مسیر قابل دسترسی قرار دهید.

مثال: باز کردن یک صفحه وب با استفاده از ChromeDriver

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

# مسیر ChromeDriver خود را مشخص کنید
chrome_driver_path = "/path/to/chromedriver"

# ایجاد یک نمونه از مرورگر Chrome
driver = webdriver.Chrome(executable_path=chrome_driver_path)

# باز کردن یک صفحه وب
driver.get("https://www.example.com")

# انتظار برای 5 ثانیه
time.sleep(5)

# یافتن المان توسط نام تگ و ارسال کلیدهای Enter
search_box = driver.find_element(By.TAG_NAME, "h1")
search_box.send_keys(Keys.ENTER)

# بستن مرورگر
driver.quit()

توضیحات کد:
1. وارد کردن کتابخانه‌های لازم:
- webdriver: برای کنترل مرورگر
- By و Keys: برای یافتن المان‌ها و ارسال کلیدها
- time: برای تاخیر زمانی

2. مسیر ChromeDriver:
- مسیر ChromeDriver را که دانلود و استخراج کردید، مشخص کنید.

3. ایجاد یک نمونه از مرورگر Chrome:
- webdriver.Chrome(executable_path=chrome_driver_path): یک نمونه از مرورگر Chrome ایجاد می‌کند.

4. باز کردن یک صفحه وب:
- driver.get("https://www.example.com"): صفحه وب مورد نظر را باز می‌کند.

5. انتظار برای 5 ثانیه:
- time.sleep(5): برای 5 ثانیه منتظر می‌ماند تا شما بتوانید صفحه را ببینید.

6. یافتن المان و ارسال کلید:
- driver.find_element(By.TAG_NAME, "h1"): المان با نام تگ h1 را پیدا می‌کند.
- search_box.send_keys(Keys.ENTER): کلید Enter را به المان ارسال می‌کند.

7. بستن مرورگر:
- driver.quit(): مرورگر را می‌بندد.

این کد یک مرورگر Chrome باز می‌کند، به صفحه https://www.example.com می‌رود، برای 5 ثانیه منتظر می‌ماند و سپس کلید Enter را به اولین المان با نام تگ h1 ارسال می‌کند و در نهایت مرورگر را می‌بندد.

🔻برای بیشتر یاد گرفتن بیا اینجا

#Python #Selenium #WebAutomation #BrowserAutomation #LearnPython #Programming #WebDriver
👍6
آموزش کد چند فرآیندی (Multiprocessing) در پایتون 🐍

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

مفهوم اولیه
در پایتون، کتابخانه‌ی multiprocessing ابزارهای لازم برای اجرای چند فرآیندی را فراهم می‌کند. این کتابخانه به شما امکان می‌دهد تا از فرآیندهای جداگانه برای اجرای وظایف مختلف استفاده کنید.

مثال کد

import multiprocessing
import time

def worker(num):
"""فرآیند نمونه ای که فقط یک عدد را چاپ می‌کند."""
print(f'Worker: {num}')
time.sleep(2)

if __name__ == '__main__':
processes = []
for i in range(5):
p = multiprocessing.Process(target=worker, args=(i,))
processes.append(p)
p.start()

for p in processes:
p.join()

توضیحات:

1. ایمپورت کتابخانه‌ی multiprocessing:

   import multiprocessing
import time

2. تعریف تابع worker:
این تابع ساده، یک عدد را به عنوان ورودی می‌گیرد و آن را چاپ می‌کند و سپس به مدت ۲ ثانیه توقف می‌کند.

   def worker(num):
print(f'Worker: {num}')
time.sleep(2)

3. ایجاد و شروع فرآیندها:
در بلوک if __name__ == '__main__':، ما پنج فرآیند ایجاد کرده و آنها را با استفاده از start() آغاز میname
   if __name__ == '__main__':
processes = []
for i in range(5):
p = multiprocessing.Process(target=worker, args=(i,))
processes.append(p)
p.start()

4. منتظر ماندن برای اتمام فرآیندها:
با استفاده از join()، ما مطمئن می‌شویم که تمامی فرآیندها قبل از پایان یافتن برنامه اصلی به اتمام رسیده‌اند.

   for p in processes:
p.join()

نکات مهم
1. به اشتراک‌گذاری داده‌ها:
کتابخانه‌ی multiprocessing ابزارهایی مانند Queue, Pipe, Manager برای به اشتراک‌گذاری داده‌ها بین فرآیندها فراهم می‌کند.

2. امنیت و مدیریت منابع:
اطمینان حاصل کنید که فرآیندها منابع سیستم را به درستی مدیریت می‌کنند و از مشکلاتی مانند مصرف بیش از حد حافظه جلوگیری کنید.

3. استفاده از CPU های چند هسته‌ای:
چند فرآیندی به شما امکان می‌دهد از قدرت پردازشی چند هسته‌ای بهره ببرید و برنامه‌های خود را سریع‌تر اجرا کنید.

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

این تکنیک می‌تواند به شما کمک کند تا برنامه‌های پیچیده و زمان‌بر خود را بهینه کنید و عملکرد بهتری را تجربه کنید. 🎉

🔻برای بیشتر یاد گرفتن بیا اینجا

#Python #Multiprocessing #Programming #ParallelComputing
👍2
استفاده از پردازش چند هسته‌ای CPU در پایتون

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

مثال ساده: پردازش همزمان وظایف ساده

برای شروع، یک برنامه ساده با استفاده از کتابخانه‌ی multiprocessing ایجاد می‌کنیم که چندین وظیفه را همزمان اجرا کند.

کد:

import multiprocessing
import time

def worker(num):
"""یک وظیفه ساده که عدد ورودی را چاپ می‌کند و برای ۲ ثانیه متوقف می‌شود."""
print(f'Worker: {num}')
time.sleep(2)

if __name__ == '__main__':
processes = []
for i in range(5):
p = multiprocessing.Process(target=worker, args=(i,))
processes.append(p)
p.start()

for p in processes:
p.join()

توضیحات:
1. ایمپورت کتابخانه‌ی multiprocessing و time:
این کتابخانه‌ها برای ایجاد و مدیریت فرآیندها و توقف زمان استفاده می‌شوند.

2. تعریف تابع worker:
این تابع یک عدد را به عنوان ورودی می‌گیرد و آن را چاپ می‌کند، سپس برای ۲ ثانیه متوقف می‌شایجاد و شروع فرآیندهاآیندها:
با استفاده از multiprocessing.Process، پنج فرآیند ایجاد می‌کنیم و آنها را با استفاده از start() آغاز می‌کنمنتظر ماندن برای اتمام فرآیندهاآیندها**:
با استفاده از join()، مطمئن می‌شویم که تمامی فرآیندها قبل از پایان یافتن برنامه اصلی به اتمام رسیده‌اند.

مثال پیشرفته: استفاده از Pool برای مدیریت وظایف

برای مدیریت بهتر تعداد زیادی از وظایف، می‌توان از کلاس Pool استفاده کرد. این روش به شما امکان می‌دهد که تعداد ثابتی از فرآیندها را ایجاد کرده و وظایف را بیکد:ید.

کد:

import multiprocessing
import time

def worker(num):
"""یک وظیفه ساده که عدد ورودی را چاپ می‌کند و برای ۲ ثانیه متوقف می‌شود."""
print(f'Worker: {num}')
time.sleep(2)

if __name__ == '__main__':
with multiprocessing.Pool(processes=4) as pool:
pool.map(worker, range(10))

توضیحات:
1. ایمپورت کتابخانه‌ی multiprocessing و time:
این کتابخانه‌ها برای ایجاد و مدیریت فرآیندها و توقف زمان اتعریف تابع worker*تعریف تابع worker**:
این تابع یک عدد را به عنوان ورودی می‌گیرد و آن را چاپ می‌کند، سپس برااستفاده از Pool **استفاده از Pool**:
با استفاده از multiprocessing.Pool، یک استخر از ۴ فرآیند ایجاد می‌کنیم و از متد map برای اجرای تابع worker برای هر عدد از ۰ تا ۹ استفاده می‌کنیم.

مثال پیشرفته‌تر: استفاده از concurrent.futures برای مدیریت وظایف

کتابخانه‌ی concurrent.futures یکی دیگر از ابزارهای پایتون برای مدیریت پردازش‌های همزمان است. این کتابخانه برای ساده‌تر کردن استفاده کد: طراحی شده است.

کد:

from concurrent.futures import ProcessPoolExecutor
import time

def worker(num):
"""یک وظیفه ساده که عدد ورودی را چاپ می‌کند و برای ۲ ثانیه متوقف می‌شود."""
print(f'Worker: {num}')
time.sleep(2)

if __name__ == '__main__':
with ProcessPoolExecutor(max_workers=4) as executor:
executor.map(worker, range(10))

توضیحات:
1. ایمپورت کتابخانه‌ی concurrent.futures و time:
این کتابخانه‌ها برای ایجاد و مدیریت فرتعریف تابع worker‌شوند.

2. تعریف تابع worker:
این تابع یک عدد را به عنوان ورودی می‌گیرد و آن را چاپ می‌کند، سپساستفاده از ProcessPoolExecutorاستفاده از ProcessPoolExecutor**:
با استفاده از ProcessPoolExecutor، یک استخر از ۴ فرآیند ایجاد می‌کنیم و از متد map برای اجرای تابع worker برای هر عدد از ۰ تا ۹ استفاده می‌کنیم.

استفاده از پردازش چند هسته‌ای در پایتون می‌تواند به بهبود کارایی برنامه‌ها کمک کند. با استفاده از کتابخانه‌هایی مانند multiprocessing و concurrent.futures، می‌توان وظایف مختلف را به طور همزمان اجرا کرد و از توان پردازشی سیستم به بهترین نحو استفاده کرد.

🔻برای بیشتر یاد گرفتن بیا اینجا

#Python #Multiprocessing #ConcurrentProgramming #ParallelComputing #ProgrammingTips
👍2
نکته‌ای جالب در مورد متغیرها در پایتون که کمتر کسی می‌داند

پایتون از روش مقادیر تعویض پذیر در سطح داخلی برای بهینه‌سازی حافظه استفاده می‌کند. این بدان معناست که برخی از اشیاء در پایتون، مانند رشته‌ها و اعداد صحیح کوچک، به صورت خودکار به اشتراک گذاشته می‌شوند. این ویژگی باعث می‌شود که دو متغیر مختلف که به یک مقدار کوچک و یا یکسان اشاره می‌کنند، در واقع به یک شیء در حافظه اشاره کنند. 😲

مثال:

a = 256
b = 256

print(a is b) # خروجی: True

c = 257
d = 257

print(c is d) # خروجی: False

در اینجا، مقدار 256 در هر دو متغیر a و b به یک شیء در حافظه اشاره می‌کنند، اما مقدار 257 اینگونه نیست.

توضیحات:
- تعویض‌پذیری اعداد کوچک:
پایتون اعداد صحیح کوچک را به صورت داخلی به اشتراک می‌گذارد (معمولاً اعداد بین -5 تا 256).
- اشتراک رشته‌ها:
رشته‌های کوتاه و ثابت نیز به صورت خودکار به اشتراک گذاشته می‌شوند.

این رفتار می‌تواند در بهینه‌سازی حافظه و همچنین درک بهتر از نحوه مدیریت حافظه در پایتون کمک کند.

🔻برای بیشتر یاد گرفتن بیا اینجا

#Python #Variables #MemoryManagement #ProgrammingTips #LearningPython
👍3