آموزش پایتون و برنامه نویسی
981 subscribers
5 photos
5 videos
2 files
13 links
آموزش پایتون و برنامه نویسی از صفر تا صد

@mohammad_j_p_1
هر سوالی داشتی ، بپرس!
Download Telegram
دستورات `break` و `continue` 🐍

سلام به همه‌ی برنامه‌نویسان! 👋 امروز با یکی دیگر از مفاهیم مهم در پایتون آشنا می‌شویم: دستورات break و continue. این دستورات به ما این امکان را می‌دهند که جریان اجرای حلقه‌ها را کنترل کنیم. 😊

۱. دستور `break` 🔚

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

for number in range(10):
if number == 5:
break
print(number)


در این کد، حلقه تا زمانی که به عدد ۵ برسد اجرا می‌شود. وقتی number برابر ۵ شد، دستور break اجرا شده و حلقه متوقف می‌شود. خروجی آن به شکل زیر خواهد بود:

0
1
2
3
4


۲. دستور `continue`

دستور continue به ما این امکان را می‌دهد که یک تکرار را نادیده بگیریم و به تکرار بعدی حلقه برویم. به عنوان مثال، فرض کنید می‌خواهیم اعداد ۱ تا ۱۰ را چاپ کنیم ولی عدد ۵ را نادیده بگیریم:

for number in range(1, 11):
if number == 5:
continue
print(number)


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

1
2
3
4
6
7
8
9
10


۳. ترکیب `break` و `continue` 🔄

شما همچنین می‌توانید از هر دو دستور به صورت همزمان در یک حلقه استفاده کنید. به عنوان مثال، فرض کنید می‌خواهیم اعداد ۱ تا ۱۰ را چاپ کنیم، اما اگر عدد ۳ یا ۷ را دیدیم، حلقه را متوقف کنیم:

for number in range(1, 11):
if number == 3 or number == 7:
break
print(number)


در این مثال، وقتی به عدد ۳ برسیم، دستور break اجرا می‌شود و حلقه خاتمه می‌یابد. خروجی آن به شکل زیر خواهد بود:

1
2


نتیجه‌گیری 📝

دستورات `break` و `continue` ابزارهای مفیدی برای مدیریت کنترل جریان در حلقه‌ها هستند. با یادگیری این دستورات می‌توانید برنامه‌های خود را انعطاف‌پذیرتر کنید و در مواقع لازم کنترل بیشتری بر روی روند اجرای کد داشته باشید! 😄


اگر سوالی دارید یا نیاز به توضیحات بیشتری هست، حتماً بپرسید! 📩

@python_with_mohammad
کدام یک از موارد زیر یک نوع داده صحیح (Integer) است؟
Anonymous Quiz
14%
"123"
61%
123
7%
12.3
19%
[1, 2, 3]
نتیجه‌ی کد زیر چیست؟
x = 10
y = 3 result = x % y print(result)
Anonymous Quiz
35%
1
12%
2
25%
3
28%
30
کدام یک از موارد زیر یک متغیر معتبر در پایتون نیست؟
Anonymous Quiz
12%
myVariable
49%
1st_variable
31%
_privateVar
9%
variable_name
نتیجه‌ی کد زیر چیست؟
a = "5"
b = 2 result = int(a) + b print(result)
Anonymous Quiz
53%
7
26%
52
12%
"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