آموزش پایتون و برنامه نویسی
951 subscribers
6 photos
5 videos
3 files
14 links
آموزش پایتون و برنامه نویسی از صفر تا صد

@mohammad_j_p_1
هر سوالی داشتی ، بپرس!
Download Telegram
کدام یک از موارد زیر یک متغیر معتبر در پایتون نیست؟
Anonymous Quiz
12%
myVariable
48%
1st_variable
32%
_privateVar
9%
variable_name
نتیجه‌ی کد زیر چیست؟
a = "5"
b = 2 result = int(a) + b print(result)
Anonymous Quiz
53%
7
25%
52
11%
"7"
10%
"52"
تعریف و استفاده از توابع در پایتون

مقدمه

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

تعریف یک تابع

برای تعریف یک تابع در پایتون، از کلمه کلیدی def استفاده می‌کنیم. سپس نام تابع و پرانتزهایی که ممکن است شامل پارامترها باشند، می‌آید. بعد از آن، با استفاده از دو نقطه (:)، شروع به نوشتن بدنه تابع می‌کنیم.

مثال 1: تعریف یک تابع ساده

def greet():
print("سلام! خوش آمدید به دوره آموزش زبان پایتون.")


در این مثال، تابعی به نام greet تعریف کرده‌ایم که یک پیام خوشامدگویی را چاپ می‌کند.

فراخوانی یک تابع

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

مثال 2: فراخوانی تابع

greet()  # خروجی: سلام! خوش آمدید به دوره آموزش زبان پایتون.


توابع با پارامترها

توابع می‌توانند پارامترهایی را دریافت کنند تا بتوانند براساس ورودی‌ها عمل کنند. پارامترها می‌توانند به تابع اطلاعات بیشتری بدهند و آن را انعطاف‌پذیرتر کنند.

مثال 3: تابع با پارامتر

def greet_user(name):
print(f"سلام، {name}! خوش آمدید به دوره آموزش زبان پایتون.")


حالا تابع greet_user نام کاربر را به عنوان ورودی می‌گیرد.

فراخوانی تابع با پارامتر:

greet_user("علی")  # خروجی: سلام، علی! خوش آمدید به دوره آموزش زبان پایتون.
greet_user("مریم") # خروجی: سلام، مریم! خوش آمدید به دوره آموزش زبان پایتون.


توابع با چند پارامتر

توابع می‌توانند چندین پارامتر نیز بپذیرند تا عملیات پیچیده‌تری انجام دهند.

مثال 4: تابع با چند پارامتر

def add_numbers(num1, num2):
return num1 + num2


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

استفاده از تابع:

result = add_numbers(5, 10)
print("حاصل جمع:", result) # خروجی: حاصل جمع: 15


توابع با پارامترهای پیش‌فرض

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

مثال 5: تابع با پارامتر پیش‌فرض

def greet_user(name="کاربر"):
print(f"سلام، {name}! خوش آمدید.")


فراخوانی تابع:

greet_user("علی")  # خروجی: سلام، علی! خوش آمدید.
greet_user() # خروجی: سلام، کاربر! خوش آمدید.


توابع بازگشتی

توابع می‌توانند خروجی خود را با استفاده از دستور return برگردانند. این به شما اجازه می‌دهد تا از نتیجه تابع در سایر محاسبات استفاده کنید.

مثال 6: تابع بازگشتی

def square(num):
return num * num


استفاده از تابع:

result = square(4)
print("مربع 4 برابر است با:", result) # خروجی: مربع 4 برابر است با: 16


نتیجه‌گیری

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

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



اگر سوالی دارید، خوشحال می‌شوم کمک کنم!

@python_with_mohammad
👍2
پارامترها و آرگومان‌ها در پایتون

سلام به همه! 👋 امروز در این پست می‌خواهیم درباره پارامترها و آرگومان‌ها در پایتون صحبت کنیم. این مفهوم یکی از کلیدهای مهم برنامه‌نویسی به شمار می‌آید که به ما کمک می‌کند توابع را به صورت مؤثرتری بنویسیم و استفاده کنیم.

پارامترها چی هستن؟

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

آرگومان‌ها چی هستند؟

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

مثال 1: تابع با پارامترهای ساده

بیایید یک تابع ساده بنویسیم که دو عدد را باهم جمع کند:

def add_numbers(a, b):  # a و b پارامترهای تابع هستند
return a + b

# ارسال آرگومان‌ها
result = add_numbers(5, 3) # 5 و 3 آرگومان‌ها هستند
print("جمع دو عدد:", result) # خروجی: 8


در این مثال، a و b پارامترهای تابع add_numbers هستند و زمانی که ما تابع را با آرگومان‌های ۵ و ۳ فراخوانی می‌کنیم، این مقادیر به پارامترها نسبت داده می‌شوند.

مثال 2: استفاده از پارامترهای پیش‌فرض

شما می‌توانید پارامترهایی را تعریف کنید که دارای مقادیر پیش‌فرض باشند. این باعث می‌شود که هنگام نداشتن آرگومان، یک مقدار پیش‌فرض به تابع داده شود.

def greet(name="دوست"):  # پارامتر name دارای مقدار پیش‌فرض است
return f"سلام {name}!"

# فراخوانی تابع با آرگومان
print(greet("علی")) # خروجی: سلام علی!

# فراخوانی تابع بدون آرگومان
print(greet()) # خروجی: سلام دوست!


مثال 3: پارامترهای نام‌دار (Keyword Arguments)

در پایتون، می‌توانید هنگام فراخوانی تابع، آرگومان‌ها را به اسم پارامترها نسبت دهید. این کار باعث می‌شود کد شما واضح‌تر باشد.

def introduce(name, age):
return f"من {name} هستم و {age} سال دارم."

# استفاده از پارامترهای نام‌دار
print(introduce(age=25, name="مینا")) # خروجی: من مینا هستم و 25 سال دارم.


مثال 4: تعداد متغیر آرگومان‌ها (Arbitrary Arguments)

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

def sum_all(*args):  # args یک لیست از آرگومان‌ها است
total = 0
for num in args:
total += num
return total

# فراخوانی تابع با تعداد متغیر آرگومان‌ها
print(sum_all(1, 2, 3)) # خروجی: 6
print(sum_all(5, 10, 15, 20)) # خروجی: 50

مثال 5: پارامترهای کلیدی (Keyword-Only Arguments)

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

def create_profile(name, age, *, location="ناشناخته"):
return {
"name": name,
"age": age,
"location": location
}

# فراخوانی تابع با آرگومان‌های نام‌دار
print(create_profile("رامین", 30, location="تهران")) # خروجی: {'name': 'رامین', 'age': 30, 'location': 'تهران'}
print(create_profile("سارا", 25)) # خروجی: {'name': 'سارا', 'age': 25, 'location': 'ناشناخته'}


**جمع‌بندی**

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


اگر سوالی دارید یا به اطلاعات بیشتری نیاز دارید، خوشحال می‌شوم کمک کنم! 😊🌟

@python_with_mohammad
👍2
توابع بازگشتی در پایتون

مقدمه

توابع بازگشتی (Recursive Functions) توابعی هستند که درون خودشان فراخوانی می‌شوند. این نوع توابع معمولاً برای حل مسائلی که می‌توانند به زیرمسائل مشابه تقسیم شوند، استفاده می‌شوند. استفاده از توابع بازگشتی می‌تواند کد را ساده‌تر و مختصرتر کند، به‌شرطی که با دقت پیاده‌سازی شوند.

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

ساختار تابع بازگشتی

یک تابع بازگشتی معمولاً شامل دو بخش اصلی است:
1. پایه (Base Case): شرطی که باعث می‌شود تابع متوقف شود. برای مثال، اگر به یک عدد خاص برسیم، تابع دیگر خود را فراخوانی نمی‌کند.
2. حالت بازگشتی (Recursive Case): قسمتی از تابع که در آن تابع خودش را با مقادیری تغییر یافته فراخوانی می‌کند.

مثال 1: محاسبه فاکتوریل

فاکتوریل یک عدد طبیعی \( n \) به صورت \( n! \) تعریف می‌شود و به صورت زیر محاسبه می‌شود:
- \( 0! = 1 \)
- \( n! = n \times (n-1)! \) برای \( n > 0 \)

در اینجا یک تابع بازگشتی برای محاسبه فاکتوریل در پایتون داریم:

def factorial(n):
if n == 0: # پایه
return 1
else: # حالت بازگشتی
return n * factorial(n - 1)

# مثال استفاده
num = 5
print(f"فاکتوریل {num} برابر است با: {factorial(num)}")


خروجی:
فاکتوریل 5 برابر است با: 120


مثال 2: سری فیبوناچی

سری فیبوناچی یک دنباله عددی است که در آن هر عدد مجموع دو عدد قبلی خود است:
- \( F(0) = 0 \)
- \( F(1) = 1 \)
- \( F(n) = F(n-1) + F(n-2) \) برای \( n > 1 \)

اینجا تابعی بازگشتی برای محاسبه یک عدد در سری فیبوناچی داریم:

def fibonacci(n):
if n == 0: # پایه
return 0
elif n == 1: # پایه
return 1
else: # حالت بازگشتی
return fibonacci(n - 1) + fibonacci(n - 2)

# مثال استفاده
n = 6
print(f"عدد فیبوناچی {n} برابر است با: {fibonacci(n)}")


خروجی:
عدد فیبوناچی 6 برابر است با: 8


مثال 3: جمع اعداد از 1 تا n

می‌توانیم با استفاده از تابع بازگشتی، مجموع اعداد از 1 تا \( n \) را محاسبه کنیم. فرمول آن به صورت زیر است:
- \( sum(n) = n + sum(n - 1) \) برای \( n > 0 \)
- \( sum(0) = 0 \)

def sum_of_n(n):
if n == 0: # پایه
return 0
else: # حالت بازگشتی
return n + sum_of_n(n - 1)

# مثال استفاده
n = 5
print(f"مجموع اعداد از 1 تا {n} برابر است با: {sum_of_n(n)}")


خروجی:
مجموع اعداد از 1 تا 5 برابر است با: 15


نکات مهم در مورد توابع بازگشتی

- پایه‌ها: حتماً باید پایه‌‌هایی برای شکست تابع در نظر بگیرید تا از یک حلقه بی‌پایان جلوگیری شود.
- کارایی: توابع بازگشتی ممکن است باعث افزایش مصرف حافظه و زمان اجرا شوند. برای مثال، تابع فیبوناچی به دلیل تکرار محاسبات برای اعداد قبلی، کارایی پایینی دارد. در این موارد می‌توانید از روش‌های دیگر (مثل برنامه‌نویسی دینامیک) استفاده کنید.
- خوانایی کد: یکی از مزایای توابع بازگشتی، خوانایی بالای کد است. با دیدن تابع، معمولاً راحت‌تر می‌توان فهمید که الگوریتم چه کار می‌کند.

نتیجه‌گیری

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


امیدوارم که این توضیحات و مثال‌ها به شما در درک توابع بازگشتی کمک کند. اگر سوالی دارید یا نیاز به مثال‌های بیشتری دارید، خوشحال می‌شوم که کمک کنم! 🌟

@python_with_mohammad
👍1
ایجاد و مدیریت لیست‌ها در پایتون

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

لیست چیست؟

لیست در پایتون مجموعه‌ای از عناصر است که می‌تواند شامل انواع مختلف داده‌ها، مانند عدد، رشته و حتی لیست‌های دیگر باشد. لیست‌ها در پایتون با براکت‌ها ([]) تعریف می‌شوند.

مثال:
my_list = [1, 2, 3, 4, 5]
print(my_list) # خروجی: [1, 2, 3, 4, 5]


ایجاد لیست‌ها

برای ایجاد یک لیست می‌توانید عناصر را درون براکت‌ها قرار دهید، مانند مثال زیر:

fruits = ["سیب", "موز", "پرتقال"]
print(fruits) # خروجی: ["سیب", "موز", "پرتقال"]


دستکاری لیست‌ها

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

1. اضافه کردن عناصر به لیست

برای افزودن یک عنصر به لیست از متد append() استفاده می‌کنیم:

fruits.append("کیوی")
print(fruits) # خروجی: ["سیب", "موز", "پرتقال", "کیوی"]


برای افزودن چند عنصر به لیست، می‌توانید از extend() استفاده کنید:

fruits.extend(["انار", "گلابی"])
print(fruits) # خروجی: ["سیب", "موز", "پرتقال", "کیوی", "انار", "گلابی"]


2. حذف عناصر از لیست

برای حذف یک عنصر از لیست می‌توانید از remove() یا pop() استفاده کنید. remove() عنصر مشخصی را حذف می‌کند:

fruits.remove("موز")
print(fruits) # خروجی: ["سیب", "پرتقال", "کیوی", "انار", "گلابی"]


و اگر بخواهید آخرین عنصر را حذف کنید، از pop() استفاده می‌کنیم:

last_fruit = fruits.pop()
print(last_fruit) # خروجی: "گلابی"
print(fruits) # خروجی: ["سیب", "پرتقال", "کیوی", "انار"]


3. دسترسی به عناصر لیست

می‌توانید به عناصر لیست با استفاده از ایندکس آن‌ها دسترسی پیدا کنید. ایندکس‌ها از 0 شروع می‌شوند.

print(fruits[0])  # خروجی: "سیب"
print(fruits[2]) # خروجی: "کیوی"


4. تغییر عناصر لیست

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

fruits[1] = "موز"
print(fruits) # خروجی: ["سیب", "موز", "کیوی", "انار"]


5. تعداد عناصر در لیست

برای شمارش تعداد عناصر در لیست از تابع len() استفاده می‌کنیم:

print(len(fruits))  # خروجی: 4


حلقه زدن بر روی لیست‌ها

می‌توانید با استفاده از یک حلقه، بر روی هر کدام از عناصر لیست بگردید:

for fruit in fruits:
print(fruit)

خروجی:
سیب
موز
کیوی
انار


برگشت معکوس لیست

برای معکوس کردن ترتیب عناصر در لیست، می‌توانیم از متد reverse() استفاده کنیم:

fruits.reverse()
print(fruits) # خروجی: ["انار", "کیوی", "موز", "سیب"]


**نتیجه‌گیری**

لیست‌ها یکی از ابزارهای قدرتمند در پایتون هستند که به ما امکان می‌دهند داده‌ها را به شکل متنوعی مدیریت کنیم. با یادگیری نحوه ایجاد و مدیریت لیست‌ها، می‌توانید برنامه‌های قدرتمندتر و پیچیده‌تری بنویسید. حتماً با مثال‌های مختلف تمرین کنید تا این مفاهیم برایتان روشن‌تر شوند! 🌟


اگر سوالی دارید می تونید با ای دی من در میون بزارید.🎉


@python_with_mohammad
👍7
متد های پر کاربرد در لیست ها

در پایتون، لیست‌ها یکی از پرکاربردترین
ساختارهای داده هستند که به شما اجازه می‌دهند مجموعه‌ای از مقادیر را در یک متغیر ذخیره کنید.
لیست‌ها قابلیت ذخیره انواع مختلف داده‌ها (از جمله اعداد، رشته‌ها، لیست‌های دیگر و غیره) را دارند و دارای متدهای متعددی هستند که به شما در مدیریت آن‌ها کمک می‌کنند.
در ادامه برخی از متدهای متداول و مفید لیست‌ها در پایتون را معرفی می‌کنیم:


1. append()
این متد برای افزودن یک عنصر به انتهای لیست استفاده می‌شود.
python my_list = [1, 2, 3] my_list.append(4) print(my_list) # خروجی: [1, 2, 3, 4] 

2. extend()
این متد برای افزودن عناصری از یک لیست دیگر به انتهای لیست اصلی استفاده می‌شود.
python my_list = [1, 2, 3] my_list.extend([4, 5]) print(my_list) # خروجی: [1, 2, 3, 4, 5] 

3. insert()
این متد برای افزودن یک عنصر در موقعیت خاصی از لیست استفاده می‌شود. با دو آرگومان فراخوانی می‌شود: index و element.
python my_list = [1, 2, 3] my_list.insert(1, 'new') print(my_list) # خروجی: [1, 'new', 2, 3] 

4. remove()
این متد برای حذف اولین وقوع یک عنصر خاص از لیست استفاده می‌شود.
python my_list = [1, 2, 3, 2] my_list.remove(2) print(my_list) # خروجی: [1, 3, 2] 

5. pop()
این متد عنصر آخر لیست را حذف و برمی‌گرداند. همچنین می‌توانید ایندکس یک عنصر خاص را به آن بدهید تا آن عنصر حذف شود.
python my_list = [1, 2, 3] last_element = my_list.pop() print(last_element) # خروجی: 3 print(my_list) # خروجی: [1, 2] specific_element = my_list.pop(0) print(specific_element) # خروجی: 1 print(my_list) # خروجی: [2] 

6. clear()
این متد تمام عناصر لیست را حذف می‌کند.
python my_list = [1, 2, 3] my_list.clear() print(my_list) # خروجی: [] 

7. index()
این متد برای پیدا کردن ایندکس اولین وقوع یک عنصر خاص استفاده می‌شود.
python my_list = [1, 2, 3] index_of_two = my_list.index(2) print(index_of_two) # خروجی: 1 

8. count()
این متد برای شمارش تعداد وقوع یک عنصر خاص در لیست استفاده می‌شود.
python my_list = [1, 2, 3, 2] count_of_two = my_list.count(2) print(count_of_two) # خروجی: 2 

9. sort()
این متد برای مرتب‌سازی عناصر لیست (به طور پیش‌فرض به صورت صعودی) استفاده می‌شود.
python my_list = [3, 1, 4, 2] my_list.sort() print(my_list) # خروجی: [1, 2, 3, 4] 

10. reverse()
این متد برای معکوس کردن ترتیب عناصر لیست استفاده می‌شود.
python my_list = [1, 2, 3] my_list.reverse() print(my_list) # خروجی: [3, 2, 1] 


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

@python_with_mohammad
👍6
Media is too big
VIEW IN TELEGRAM
جلسه دوم دوره جامع آموزش پایتون - بخش مقدمات پایتون : چرا باید پایتون یاد بگیریم؟

@python_with_mohammad
👍2
Media is too big
VIEW IN TELEGRAM
جلسه سوم دوره جامع آموزش پایتون - بخش مقدمات پایتون : نصب پایتون و نرم افزار های مورد نیاز
@python_with_mohammad
دوره جامع آموزش برنامه نویسی پایتون و هوش مصنوعی

سرفصل های دوره:
فصل 1: مقدمات و مفاهیم پایه پایتون
فصل 2 : توابع در پایتون
فصل 3: کلاس ها در پایتون
فصل 4 : پیش‌پردازش و مدیریت داده‌ها با پانداس (Pandas)
فصل 5: محاسبات و عملیات ریاضی با نامپای (NumPy)
فصل 6 : ترسیم نمودارها و مصورسازی داده‌ها با مت‌پلات‌لیب (Matplotlib)
فصل 7 : مصور سازی داده ها با Seaborn
فصل 8 : ریاضیات کاربردی در برنامه‌نویسی
فصل 9: هوش مصنوعی و یادگیری ماشین (مقدماتی)
فصل 10 : یادگیری عمیق و یادگیری ماشین
فصل 11 : ساخت اپلیکیشن با کتابخانه Kivy
فصل 12: کار با Regex
فصل 13 : کار با دیتابیس ها در پایتون
فصل 14 : پردازش تصاویر در پایتون
فصل 15 : سوالات مصاحبه های شغلی


ویژگی های دوره:
به صورت کاملا پروژه محور
پشتیبانی یکساله دوره
آپدیت های ماهانه
گواهی پایان دوره

این دوره حدود 100 ساعت ویدیو آموزشی است که در حال حاضر 27 ساعت آن ضبط و آپلود شده است و سایر مباحث به صورت ماهانه در سایت آپلود می شود.
برای تهیه دوره به ای دی پشتیبانی پیام دهید یا از طریق وب سایت اقدام نمایید.

❇️ ای دی پشتیبانی :@Poshtibani_admin91
❇️ لینک دریافت دوره
عملیات بر روی لیست ها در پایتون
در پایتون، می‌توانید انواع عملیات مختلف را بر روی لیست‌ها انجام دهید.
این عملیات شامل افزودن، حذف، جستجو، و مرتب‌سازی عناصر در یک لیست است. در ادامه، برخی از این عملیات را با مثال‌هایی توضیح می‌دهم. 😊

۱. ایجاد یک لیست

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

my_list = [1, 2, 3, 4, 5]


۲. افزودن عناصر به لیست

- استفاده از
append()

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

my_list.append(6)
print(my_list) # خروجی: [1, 2, 3, 4, 5, 6]


- استفاده از insert()

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

my_list.insert(2, 'new')
print(my_list) # خروجی: [1, 2, 'new', 3, 4, 5, 6]


- استفاده از extend()

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

my_list.extend([7, 8])
print(my_list) # خروجی: [1, 2, 'new', 3, 4, 5, 6, 7, 8]


۳. حذف عناصر از لیست


- استفاده از remove()

برای حذف اولین وقوع یک عنصر خاص:

my_list.remove('new')
print(my_list) # خروجی: [1, 2, 3, 4, 5, 6, 7, 8]


- استفاده از pop()

برای حذف و برگرداندن آخرین عنصر (یا عنصر در ایندکس مشخص):

last_element = my_list.pop()
print(last_element) # خروجی: 8
print(my_list) # خروجی: [1, 2, 3, 4, 5, 6, 7]


- استفاده از clear()

برای حذف تمام عناصر لیست:

my_list.clear()
print(my_list) # خروجی: []


۴. دسترسی به عناصر

شما می‌توانید به عناصر لیست با استفاده از ایندکس دسترسی پیدا کنید:

my_list = [10, 20, 30]
print(my_list[0]) # خروجی: 10
print(my_list[-1]) # خروجی: 30 (آخرین عنصر)


۵. جستجو در لیست

- استفاده از
index()

برای یافتن ایندکس اولین وقوع یک عنصر:

my_list = [10, 20, 30]
index_of_twenty = my_list.index(20)
print(index_of_twenty) # خروجی: 1


- استفاده از count()

برای شمارش تعداد وقوع یک عنصر خاص:

count_of_ten = my_list.count(10)
print(count_of_ten) # خروجی: 1


۶. مرتب‌سازی و معکوس کردن لیست

- استفاده از sort()

برای مرتب‌سازی عناصر لیست:

my_list = [3, 1, 4, 2]
my_list.sort()
print(my_list) # خروجی: [1, 2, 3, 4]


- استفاده از reverse()

برای معکوس کردن ترتیب عناصر لیست:

my_list.reverse()
print(my_list) # خروجی: [4, 3, 2, 1]


@python_with_mohammad
👍1
مفهوم تاپل ، کاربرد ها و تفاوت آن با لیست
تاپل (Tuple) یکی از انواع داده‌ها در پایتون است که بسیار شبیه به لیست‌ها است، اما ویژگی‌های خاصی دارد.

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

۱. مفهوم تاپل

تاپل یک ساختار داده‌ی مطمئن و غیرقابل تغییر (Immutable) است که به شما اجازه می‌دهد مجموعه‌ای از عناصر را در یک متغیر ذخیره کنید. به عبارت دیگر، پس از ایجاد یک تاپل، نمی‌توانید عناصر آن را تغییر دهید.

ایجاد یک تاپل

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

my_tuple = (1, 2, 3)
another_tuple = 1, 2, 3 # بدون پرانتز هم معتبر است


۲. کاربردها

- استفاده به عنوان کلید در دیکشنری: از آنجا که تاپل‌ها غیرقابل تغییر هستند، می‌توانند به عنوان کلید در دیکشنری‌ها استفاده شوند.
- گروه‌بندی داده‌ها: تاپل‌ها می‌توانند برای گروه‌بندی داده‌ها (مثلاً کوردینات یک نقطه یا داده‌های مختلط) استفاده شوند.
- عملیات انباشتی: تاپل‌ها معمولاً برای بازگشت چندین مقدار از یک تابع به کار می‌روند.

۳. تفاوت‌های میان تاپل و لیست

تغییرپذیری:
- لیست‌ها (List) تغییرپذیر (Mutable) هستند، به این معنی که می‌توانیم عناصر آن‌ها را بعد از ایجاد تغییر دهیم.
- تاپل‌ها (Tuple) غیرقابل تغییر (Immutable) هستند، یعنی پس از ایجاد یک تاپل نمی‌توانیم عناصر آن را تغییر دهیم.

نحوه‌ی ایجاد:
- لیست‌ها با استفاده از براکت‌ها ([]) ایجاد می‌شوند.
- تاپل‌ها با استفاده از پرانتزها (()) یا بدون پرانتز (در برخی موارد) ایجاد می‌شوند.

عملکردها:
- لیست‌ها دارای متدهای بیشتری برای تغییر هستند؛ مانند اضافه کردن، حذف کردن و مرتب‌سازی.
- تاپل‌ها متدهای محدودتری دارند و عمدتاً شامل count() و index() هستند.

استفاده در دیکشنری:
- لیست‌ها نمی‌توانند به عنوان کلید در دیکشنری‌ها استفاده شوند.
- تاپل‌ها می‌توانند به عنوان کلید در دیکشنری‌ها استفاده شوند، زیرا غیرقابل تغییر هستند.

سرعت:
- لیست‌ها معمولاً سرعت کمتری دارند و کندتر از تاپل‌ها هستند.
- تاپل‌ها معمولاً سریع‌تر از لیست‌ها هستند زیرا غیرقابل تغییر هستند و فضای حافظه کمتری اشغال می‌کنند.

فضای حافظه:
- لیست‌ها معمولاً فضای بیشتری را در حافظه اشغال می‌کنند.
- تاپل‌ها معمولاً فضای کمتری را اشغال می‌کنند.


۴. مثال‌های کاربردی

مثال ۱: استفاده به عنوان کلید در دیکشنری

my_dict = { (1, 2): "point A", (3, 4): "point B" }
print(my_dict[(1, 2)]) # خروجی: point A


مثال ۲: بازگشت چندین مقدار از یک تابع

def coordinates():
return (10, 20)

x, y = coordinates()
print(x, y) # خروجی: 10 20




@python_with_mohammad
ایجاد و استفاده از تاپل‌ها ، نکات تخصصی تر و مثال ها

ایجاد تاپل‌ها

1. تعریف ساده تاپل:

   my_tuple = (1, 2, 3)


2. تاپل خالی:

   empty_tuple = ()


3. تاپل با یک عنصر:
(برای تاپل‌های یک عنصری، باید ویرگول در انتها بیاید.)

   single_element_tuple = (1,)


4. تاپل بدون پرانتز:

   implicit_tuple = 1, 2, 3


دسترسی به عناصر تاپل

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

my_tuple = (10, 20, 30)
print(my_tuple[0]) # خروجی: 10
print(my_tuple[1]) # خروجی: 20


برش (Slicing)

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

my_tuple = (1, 2, 3, 4, 5)
print(my_tuple[1:4]) # خروجی: (2, 3, 4)


تکرار و طول

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

my_tuple = (1, 2, 3)
print(my_tuple * 2) # خروجی: (1, 2, 3, 1, 2, 3)
print(len(my_tuple)) # خروجی: 3


ترکیب تاپل‌ها

می‌توانید تاپل‌ها را با هم ترکیب کنید.

tuple1 = (1, 2)
tuple2 = (3, 4)
combined_tuple = tuple1 + tuple2
print(combined_tuple) # خروجی: (1, 2, 3, 4)


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

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

my_dict = {}
key_tuple = (1, 2, 3)
my_dict[key_tuple] = "Value associated with (1, 2, 3)"
print(my_dict) # خروجی: {(1, 2, 3): 'Value associated with (1, 2, 3)'}


نکات تخصصی‌تر

1. تاپل به عنوان یک نوع داده‌ی ناپیوسته:
- تاپل‌ها می‌توانند برای ذخیره‌سازی مجموعه‌ای از داده‌هایی که نیازی به تغییر آن‌ها نیست، مانند مختصات جغرافیایی (latitude, longitude) یا کاراکترها در یک رشته، مفید باشند.

2. تاپل‌های تو در تو:
- می‌توانید تاپل‌هایی ایجاد کنید که شامل تاپل‌های دیگر باشند.

   nested_tuple = ((1, 2), (3, 4))


3. تجزیه تاپل:
- می‌توانید به سادگی عناصر یک تاپل را به متغیرهای جداگانه اختصاص دهید.

   a, b, c = (1, 2, 3)
print(a) # خروجی: 1
print(b) # خروجی: 2
print(c) # خروجی: 3


تابع count() و index() برای تاپل‌ها نیز قابل استفاده هستند:

my_tuple = (1, 2, 3, 2, 4)
print(my_tuple.count(2)) # خروجی: 2
print(my_tuple.index(3)) # خروجی: 2


@python_with_mohammad
👍2
📍دوره جامع آموزش برنامه نویسی پایتون و هوش مصنوعی

سرفصل های دوره:
فصل 1: مقدمات و مفاهیم پایه پایتون
فصل 2 : توابع در پایتون
فصل 3: کلاس ها در پایتون
فصل 4 : پیش‌پردازش و مدیریت داده‌ها با پانداس (Pandas)
فصل 5: محاسبات و عملیات ریاضی با نامپای (NumPy)
فصل 6 : ترسیم نمودارها و مصورسازی داده‌ها با مت‌پلات‌لیب (Matplotlib)
فصل 7 : مصور سازی داده ها با Seaborn
فصل 8 : ریاضیات کاربردی در برنامه‌نویسی
فصل 9: هوش مصنوعی و یادگیری ماشین (مقدماتی)
فصل 10 : یادگیری عمیق و یادگیری ماشین
فصل 11 : ساخت اپلیکیشن با کتابخانه Kivy
فصل 12: کار با Regex
فصل 13 : کار با  دیتابیس ها در پایتون
فصل 14 : پردازش تصاویر  در پایتون
فصل 15 :  سوالات مصاحبه های شغلی

💠 ویژگی های دوره:
به صورت کاملا پروژه محور
پشتیبانی یکساله دوره
آپدیت های ماهانه
گواهی پایان دوره

💰هزینه اصلی دوره ۲/۹۰۰/۰۰۰ تومان
💰هزینه با تخفیف ۸۵۰/۰۰۰ تومان

❇️ جهت ثبت نام به ایدی زیر پیام دهید👇
@Poshtibani_admin91
👍32
آموزش پایتون و برنامه نویسی pinned «📍دوره جامع آموزش برنامه نویسی پایتون و هوش مصنوعی سرفصل های دوره: فصل 1: مقدمات و مفاهیم پایه پایتون فصل 2 : توابع در پایتون فصل 3: کلاس ها در پایتون فصل 4 : پیش‌پردازش و مدیریت داده‌ها با پانداس (Pandas) فصل 5: محاسبات و عملیات ریاضی با نامپای (NumPy)…»
🎯 آشنایی کامل با دیکشنری در پایتون: ساختار کلید-مقدار

در پایتون، دیکشنری (Dictionary) یکی از قدرتمندترین و پرکاربردترین ساختارهای داده است که به شما اجازه می‌دهد اطلاعات را به شکل کلید و مقدار (Key-Value) ذخیره و مدیریت کنید.

🗝 دیکشنری چیست؟
دیکشنری یک نوع داده در پایتون است که مقادیر را به صورت جفت‌های کلید: مقدار ذخیره می‌کند.
هر کلید (Key) در دیکشنری باید یکتا باشد، اما مقادیر (Value) می‌توانند تکراری باشند.

🔑 چرا دیکشنری؟
- سریع و بهینه: دیکشنری‌ها دسترسی سریع به داده‌ها را از طریق کلیدها فراهم می‌کنند.
- انعطاف‌پذیری بالا: می‌توان انواع مختلفی از داده‌ها را به عنوان مقدار ذخیره کرد.


💻 ایجاد و استفاده از دیکشنری
مثال ساده:
# ایجاد یک دیکشنری ساده
student = {
"name": "Ali",
"age": 21,
"grade": "A"
}

# دسترسی به مقادیر با استفاده از کلید
print(student["name"]) # خروجی: Ali
print(student["age"]) # خروجی: 21


افزودن یا به‌روزرسانی مقادیر:
# اضافه کردن مقدار جدید
student["major"] = "Computer Science"

# به‌روزرسانی یک مقدار
student["grade"] = "A+"


حذف یک مقدار:
# حذف یک کلید-مقدار با دستور del
del student["age"]

# استفاده از متد pop
major = student.pop("major")



🔍 ویژگی‌های کلیدی دیکشنری‌ها
1. کلیدها یکتا هستند: اگر یک کلید تکراری تعریف شود، مقدار جدید جایگزین مقدار قبلی می‌شود.
2. ترتیب کلیدها از نسخه 3.7 به بعد حفظ می‌شود.
3. قابل تغییر (Mutable): می‌توانید مقادیر دیکشنری را اضافه، حذف یا تغییر دهید.
4. کلیدها باید از نوع‌های تغییرناپذیر (Immutable) باشند: مثلاً رشته (str)، عدد (int)، یا تاپل (tuple).
5. مقادیر می‌توانند هر نوعی باشند: عدد، رشته، لیست، یا حتی دیکشنری دیگر!



🌟 عملیات رایج روی دیکشنری
بررسی وجود کلید:
if "name" in student:
print("Name exists!")


پیمایش کلیدها و مقادیر:
# پیمایش فقط روی کلیدها
for key in student:
print(key)

# پیمایش روی کلیدها و مقادیر
for key, value in student.items():
print(f"{key}: {value}")


دریافت فقط کلیدها یا مقادیر:
keys = student.keys()    # لیستی از کلیدها
values = student.values() # لیستی از مقادیر




🚀 تمرین برای شما
1. یک دیکشنری برای مشخصات یک کتاب (عنوان، نویسنده، سال انتشار) بسازید.
2. کلید جدیدی با نام "ژانر" اضافه کنید و مقداری به آن اختصاص دهید.
3. بررسی کنید که آیا کلید "سال انتشار" وجود دارد یا نه.



🔗 نکات پیشرفته:
اگر موضوعات پیشرفته‌تری مثل دیکشنری‌های تو در تو**، **کاهش خطاها با متدهای get() یا کار با defaultdict مدنظرتان است، بگویید تا بیشتر توضیح دهیم.




@python_with_mohammad
عملیات پرکاربرد بر روی دیکشنری‌ها در پایتون

دیکشنری‌ها قابلیت‌های متنوعی دارند که باعث می‌شود کار با داده‌ها راحت و انعطاف‌پذیر باشد. در این بخش با رایج‌ترین عملیات بر روی دیکشنری‌ها آشنا می‌شوید:

---

1️⃣ ایجاد دیکشنری
روش‌های مختلف:
# ایجاد دیکشنری ساده
person = {"name": "Ali", "age": 30}

# ایجاد دیکشنری با استفاده از متد dict
info = dict(name="Sara", age=25, city="Tehran")

# ایجاد دیکشنری خالی
empty_dict = {}




2️⃣ اضافه کردن و تغییر مقدار
افزودن کلید-مقدار جدید:
person["gender"] = "Male"


به‌روزرسانی مقدار موجود:
person["age"] = 31




3️⃣ حذف کلید-مقدار
استفاده از del:
del person["age"]


استفاده از pop:
gender = person.pop("gender")  # مقدار حذف شده به متغیر gender اختصاص داده می‌شود.


حذف همه موارد:
person.clear()




4️⃣ دسترسی به مقدار با کلید
روش مستقیم:
print(person["name"])  # خروجی: Ali


جلوگیری از خطا با get:
print(person.get("name", "Not Found"))  # اگر کلید وجود نداشته باشد، "Not Found" چاپ می‌شود.




5️⃣ بررسی وجود کلید
if "name" in person:
print("کلید name موجود است.")




6️⃣ پیمایش روی دیکشنری
پیمایش روی کلیدها:
for key in person:
print(key)


پیمایش روی مقادیر:
for value in person.values():
print(value)


پیمایش روی کلید-مقدار:
for key, value in person.items():
print(f"{key}: {value}")




7️⃣ دریافت لیستی از کلیدها و مقادیر
کلیدها:
keys = person.keys()
print(list(keys)) # تبدیل به لیست


مقادیر:
values = person.values()
print(list(values)) # تبدیل به لیست


کلید-مقدار به صورت جفت:
items = person.items()
print(list(items)) # خروجی: [('name', 'Ali'), ('age', 30)]




8️⃣ کپی کردن دیکشنری
new_person = person.copy()




9️⃣ ادغام دو دیکشنری (از نسخه 3.9 به بعد)
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}

# ادغام دیکشنری‌ها
merged = dict1 | dict2
print(merged) # خروجی: {'a': 1, 'b': 3, 'c': 4}




🔍 نکات پیشرفته
1. دیکشنری تو در تو:
دیکشنری می‌تواند شامل دیکشنری‌های دیگر باشد:
   student = {
"name": "Ali",
"grades": {"math": 90, "science": 85}
}
print(student["grades"]["math"]) # خروجی: 90


2. استفاده از `defaultdict`:
اگر بخواهید مقادیر پیش‌فرض برای کلیدهای جدید تعیین کنید:
   from collections import defaultdict

scores = defaultdict(int) # مقدار پیش‌فرض عدد صفر است.
scores["Ali"] += 10
print(scores) # خروجی: {'Ali': 10}




🎯 تمرین برای شما
1. دیکشنری‌ای بسازید که شامل مشخصات یک محصول (نام، قیمت، تعداد موجودی) باشد.
2. تمام کلیدها و مقادیر آن را چاپ کنید.
3. یک کلید جدید با نام "دسته‌بندی" به دیکشنری اضافه کنید.
4. مقدار قیمت را دو برابر کنید و دیکشنری جدیدی بسازید که تغییرات اعمال شده باشد.


@python_with_mohammad
1
📚 متدهای کاربردی دیکشنری در پایتون

دیکشنری در پایتون متدهای متعددی دارد که کار با آن را ساده و مؤثر می‌کند. در ادامه لیستی از متدهای پرکاربرد همراه با مثال‌های واضح ارائه شده است:



🔑 1. متد `get`
این متد برای دسترسی به مقدار یک کلید استفاده می‌شود و اگر کلید وجود نداشته باشد، مقدار پیش‌فرض بازمی‌گرداند.

person = {"name": "Ali", "age": 30}

# دسترسی به مقدار موجود
print(person.get("name")) # خروجی: Ali

# کلید موجود نیست
print(person.get("gender", "Not Specified")) # خروجی: Not Specified



🔄 2. متد `update`
این متد برای به‌روزرسانی دیکشنری یا ادغام دو دیکشنری استفاده می‌شود.

person = {"name": "Ali", "age": 30}
update_data = {"age": 31, "city": "Tehran"}

person.update(update_data)
print(person)
# خروجی: {'name': 'Ali', 'age': 31, 'city': 'Tehran'}




🚮 3. متد `pop`
این متد یک کلید و مقدار آن را حذف کرده و مقدار حذف‌شده را بازمی‌گرداند.

person = {"name": "Ali", "age": 30}

age = person.pop("age")
print(age) # خروجی: 30
print(person) # خروجی: {'name': 'Ali'}




4. متد `popitem`
این متد آخرین کلید-مقدار اضافه‌شده را حذف کرده و به صورت یک جفت برمی‌گرداند.

person = {"name": "Ali", "age": 30}

last_item = person.popitem()
print(last_item) # خروجی: ('age', 30)
print(person) # خروجی: {'name': 'Ali'}




🔄 5. متد `clear`
تمام کلید-مقادیر موجود در دیکشنری را حذف می‌کند.

person = {"name": "Ali", "age": 30}

person.clear()
print(person) # خروجی: {}




📋 6. متد `keys`
تمام کلیدهای موجود در دیکشنری را به صورت یک شیء قابل پیمایش برمی‌گرداند.

person = {"name": "Ali", "age": 30}

keys = person.keys()
print(keys) # خروجی: dict_keys(['name', 'age'])



📋 7. متد `values`
تمام مقادیر موجود در دیکشنری را برمی‌گرداند.

person = {"name": "Ali", "age": 30}

values = person.values()
print(values) # خروجی: dict_values(['Ali', 30])


---

📋 8. متد `items`
تمام جفت‌های کلید-مقدار را به صورت یک شیء قابل پیمایش برمی‌گرداند.

person = {"name": "Ali", "age": 30}

items = person.items()
print(items) # خروجی: dict_items([('name', 'Ali'), ('age', 30)])




🔎 9. متد `copy`
یک کپی سطحی از دیکشنری ایجاد می‌کند.

person = {"name": "Ali", "age": 30}

person_copy = person.copy()
print(person_copy) # خروجی: {'name': 'Ali', 'age': 30}




10. متد `setdefault`
اگر کلید وجود نداشته باشد، مقدار پیش‌فرض را اضافه کرده و برمی‌گرداند. اگر کلید موجود باشد، مقدار آن را بازمی‌گرداند.

person = {"name": "Ali"}

# کلید موجود است
print(person.setdefault("name", "Unknown")) # خروجی: Ali

# کلید وجود ندارد
print(person.setdefault("age", 30)) # خروجی: 30
print(person) # خروجی: {'name': 'Ali', 'age': 30}



🎯 تمرین پیشنهادی
1. دیکشنری‌ای شامل اطلاعات دانشجویی (نام، سن، معدل) بسازید.
2. یک کلید جدید به آن اضافه کنید و مقدار پیش‌فرض تنظیم کنید.
3. تمام مقادیر را چاپ کنید و یک کلید خاص را حذف کنید.
4. دیکشنری را کپی کرده و آن را به‌روزرسانی کنید.

@python_with_mohammad
یک ماه گذشته به سبب درگیری های کاری و تایم زیاد بیمارستان فرصت نکردم اینجا مطلبی بذارم.

اما طی روز های اینده حدود 2 ساعت از ویدیو هایی که قبل تر ضبط کرده بودم رو یه چک می کنم و توی سایت می ذارم که دوستان بتونن استفاده کنن.

تا الان هم 30 ساعت از ویدیو های دوره توی سایت قرار گرفته که می تونید دانلود بفرمایید و ببینید.

https://moshkour.ir/?p=2929

اگر سرماخورگیم هم تا دو سه روز اینده برطرف شه که بتونم با صدایی بهتر ویدیو ها رو ضبط کنم تا اخر این هفته حدود 2 ساعت دیگه ویدیو به دوره اضافه می شه، امیدوارم که صدای من درست شه که این ویدیو ها زودتر ضبط شه.

هر سوال یا امری هم داشتید با این ای دی بنده در خدمتم.

@mohammad_j_p_1
3
📚 مفهوم مجموعه (Set) در پایتون و کاربردهای آن

🌟 مجموعه (Set) چیست؟
مجموعه (Set) در پایتون، یک ساختار داده است که:
1. شامل عناصر منحصربه‌فرد است (هیچ تکراری در مجموعه وجود ندارد).
2. عناصر آن بدون ترتیب خاصی ذخیره می‌شوند (برخلاف لیست یا تاپل).
3. می‌تواند شامل انواع داده‌های تغییرناپذیر (Immutable) باشد، مانند رشته، عدد، یا تاپل.



🛠 ایجاد مجموعه
1. ایجاد مجموعه با آکولاد {}:
my_set = {1, 2, 3, 4}
print(my_set) # خروجی: {1, 2, 3, 4}


2. ایجاد مجموعه با استفاده از set():
my_set = set([1, 2, 3, 4, 4])  # حذف مقادیر تکراری
print(my_set) # خروجی: {1, 2, 3, 4}


3. مجموعه خالی:
empty_set = set()  # استفاده از آکولاد برای مجموعه خالی ممکن نیست!




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



🔄 عملیات اصلی روی مجموعه‌ها
1. افزودن عنصر:
my_set = {1, 2, 3}
my_set.add(4) # اضافه کردن یک عنصر
print(my_set) # خروجی: {1, 2, 3, 4}


2. حذف عنصر:
my_set.remove(2)  # اگر عنصر وجود نداشته باشد، خطا می‌دهد.
my_set.discard(5) # اگر عنصر وجود نداشته باشد، خطا نمی‌دهد.
print(my_set) # خروجی: {1, 3, 4}


3. حذف همه عناصر:
my_set.clear()
print(my_set) # خروجی: set()




⚡️ عملیات ریاضی روی مجموعه‌ها
1. اجتماع (Union): ترکیب عناصر دو مجموعه.
set1 = {1, 2, 3}
set2 = {3, 4, 5}

union_set = set1 | set2 # یا از set1.union(set2) استفاده کنید
print(union_set) # خروجی: {1, 2, 3, 4, 5}


2. اشتراک (Intersection): عناصر مشترک بین دو مجموعه.
intersection_set = set1 & set2  # یا از set1.intersection(set2) استفاده کنید
print(intersection_set) # خروجی: {3}


3. تفاضل (Difference): عناصر موجود در یک مجموعه که در دیگری نیستند.
difference_set = set1 - set2  # یا از set1.difference(set2) استفاده کنید
print(difference_set) # خروجی: {1, 2}


4. تفاضل متقارن (Symmetric Difference): عناصر موجود در یکی از مجموعه‌ها (اما نه هر دو).
symmetric_diff = set1 ^ set2  # یا از set1.symmetric_difference(set2) استفاده کنید
print(symmetric_diff) # خروجی: {1, 2, 4, 5}




📋 کاربردهای مجموعه‌ها
1. حذف عناصر تکراری از لیست:
   my_list = [1, 2, 2, 3, 4, 4, 5]
unique_items = list(set(my_list))
print(unique_items) # خروجی: [1, 2, 3, 4, 5]


2. بررسی عضویت (Membership Test):
مجموعه‌ها برای بررسی سریع عضویت یک عنصر مناسب هستند:
   my_set = {1, 2, 3, 4}
print(3 in my_set) # خروجی: True
print(5 in my_set) # خروجی: False


3. عملیات ریاضی (اجتماع، اشتراک و ...):
استفاده در تحلیل داده‌ها، مانند پیدا کردن نقاط مشترک بین دو مجموعه داده.

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

5. یافتن عناصر منحصر به فرد:
شناسایی مقادیر یکتا در یک دیتاست.



✍️ تمرین برای شما
1. دو مجموعه از اعداد بسازید: یکی شامل مضرب‌های 2 و دیگری شامل مضرب‌های 3 (تا 20).
2. اجتماع، اشتراک، و تفاضل متقارن این دو مجموعه را محاسبه کنید.
3. بررسی کنید که آیا عدد 15 در هر یک از این مجموعه‌ها وجود دارد یا خیر.

@mohammad_j_p_1
👍1