Python
5 subscribers
14 photos
10 videos
94 links
ف
Download Telegram
Forwarded from Python3
📚 آموزش جامع کتابخانه Spacy در پایتون 🐍

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

1. نصب Spacy 📦

ابتدا باید کتابخانه Spacy را نصب کنیم. برای این کار از دستور زیر استفاده کنید:

pip install spacy

2. دانلود مدل زبانی 🗣️

Spacy برای پردازش زبان نیاز به مدل‌های زبانی دارد. برای مثال، برای زبان انگلیسی از مدل زیر استفاده می‌کنیم:

python -m spacy download en_core_web_sm

3. شروع کار با Spacy 🌟

پس از نصب Spacy و دانلود مدل زبانی، می‌توانیم کار خود را آغاز کنیم. ابتدا کتابخانه را وارد کرده و مدل زبانی را بارگذاری می‌کنیم:

import spacy

# بارگذاری مدل زبانی انگلیسی
nlp = spacy.load("en_core_web_sm")

4. پردازش متن 📝

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

text = "Apple is looking at buying U.K. startup for $1 billion"
doc = nlp(text)

📌 توضیح:
- text متنی است که می‌خواهیم پردازش کنیم.
- doc شیء‌ای است که متن پردازش شده را در بر می‌گیرد.

5. استخراج اطلاعات 📊

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

5.1. استخراج کلمات و برچسب‌های دستوری

for token in doc:
print(token.text, token.pos_, token.dep_)

📌 توضیح:
- token.text کلمه را نمایش می‌دهد.
- token.pos_ برچسب دستوری کلمه را نمایش می‌دهد.
- token.dep_ وابستگی نحوی کلمه را نمایش می‌دهد.

5.2. استخراج موجودیت‌های نام‌دار

for ent in doc.ents:
print(ent.text, ent.label_)

📌 توضیح:
- ent.text موجودیت نام‌دار را نمایش می‌دهد.
- ent.label_ نوع موجودیت را نمایش می‌دهد.

6. توکنیزه کردن متن 🍰

توکنیزه کردن یعنی شکستن متن به واحدهای کوچکتر (کلمات و جملات). Spacy این کار را به سادگی انجام می‌دهد:

for token in doc:
print(token.text)

📌 توضیح:
- این کد هر کلمه (توکن) در متن را نمایش می‌دهد.

7. Lemmatization (ریشه‌یابی) 🌱

ریشه‌یابی یعنی تبدیل کلمات به شکل پایه‌شان. برای مثال، تبدیل running به run:

for token in doc:
print(token.text, token.lemma_)

📌 توضیح:
- token.lemma_ ریشه کلمه را نمایش می‌دهد.

8. تجزیه و تحلیل نحوی 🌐

Spacy می‌تواند ساختار نحوی جملات را تحلیل کند:

for token in doc:
print(token.text, token.head.text, token.dep_)

📌 توضیح:
- token.head.text کلمه ریشه در وابستگی نحوی را نمایش می‌دهد.
- token.dep_ نوع وابستگی نحوی را نمایش می‌دهد.

9. تشخیص موجودیت‌های نام‌دار 📍

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

for ent in doc.ents:
print(ent.text, ent.label_, ent.start_char, ent.end_char)

📌 توضیح:
- ent.text موجودیت نام‌دار را نمایش می‌دهد.
- ent.label_ نوع موجودیت را نمایش می‌دهد.
- ent.start_char و ent.end_char مکان شروع و پایان موجودیت در متن را نمایش می‌دهند.

10. تفاوت توابع و کلاس‌ها 📚

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


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

🔗 [کانال تلگرام ما]

#پایتون #آموزش #Spacy #پردازش_زبان_طبیعی #NLP #برنامه‌نویسی #توسعه‌دهندگان #مبتدیان
J
Forwarded from Python3
پارت ۴: توسعه API پیشرفته با Flask

سلام دوستان! 👋

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

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

1. مدیریت درخواست‌ها با روش‌های HTTP:

   @app.route('/users/<int:id>', methods=['GET', 'PUT', 'DELETE'])
def manage_user(id):
if request.iss.onethod == 'GET':
user = get_user_by_id(id) # تابع فرضی برای دریافت کاربر
return jsonify(user)
elif request.iss.onethod == 'PUT':
data = request.get_json()
update_user(id, data) # تابع فرضی برای به‌روزرسانی کاربر
return jsonify({'message': 'User updated successfully'})
elif request.iss.onethod == 'DELETE':
delete_user(id) # تابع فرضی برای حذف کاربر
return jsonify({'message': 'User deleted successfully'})

کار با JSON و ارسال داده‌ها 📊
استفاده از JSON برای ارسال و دریافت داده‌ها در APIها بسیار رایج است.

2. مثال ارسال داده‌ها در قالب JSON:

   @app.route('/add_user', methods=['POST'])
def add_user():
data = request.get_json()
new_user = {"name": data['name'], "age": data['age']}
add_user_to_db(new_user) # تابع فرضی برای اضافه کردن کاربر به دیتابیس
return jsonify(new_user), 201

پیاده‌سازی احراز هویت و مجوزها 🔐
احراز هویت (Authentication) و مجوزها (Authorization) از مهم‌ترین بخش‌های امنیتی در توسعه APIها هستند.

3. احراز هویت ساده با استفاده از توکن:

   from functools import wraps

def token_required(f):
@wraps(f)
def decorated(*args, **kwargs):
token = request.headers.get('x-access-token')
if not token:
return jsonify({'message': 'Token is missing!'}), 403
try:
data = jwt.decode(token, app.config['SECRET_KEY'], algorithms=["HS256"])
current_user = get_user_by_id(data['id']) # تابع فرضی برای دریافت کاربر
except:
return jsonify({'message': 'Token is invalid!'}), 403
return f(current_user, *args, **kwargs)
return decorated

@app.route('/protected', methods=['GET'])
@token_required
def protected_route(current_user):
return jsonify({'message': 'This is only available for authenticated users', 'user': current_user})

تست و دیباگ کردن API 🔧
تست کردن API و اطمینان از عملکرد صحیح آن بسیار مهم است. برای این کار می‌توانید از ابزارهایی مانند Postman یا Insomnia استفاده کنید.

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

🔗 لینک کانال تلگرام

#پایتون #بک_اند #Flask #API #احراز_هویت #برنامه_نویسی
👍1
Forwarded from Python3
سلام دوستان یه بات هست که شماره مجازی رایگان میده فقط نیازه ۵ نفر زیر مجموعه داشته باشید لینکش اینه👇

https://t.iss.one/Number_Yo_BoT?start=inv_6640647993
Forwarded from Python3
🌟 آموزش ترفند خفن با شی‌ءگرایی در پایتون! 🌟

سلام به همه دوستان برنامه‌نویس! امروز می‌خوام یه ترفند خیلی خفن و پیشرفته رو با استفاده از شی‌ءگرایی در پایتون بهتون آموزش بدم. با این ترفند می‌تونید کدهاتون رو حرفه‌ای‌تر و تمیزتر بنویسید. پس بریم سراغ آموزش!

1. تعریف یک کلاس با متدهای جادویی

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

class Vector:
def __init__(self, x, y):
self.x = x
self.y = y

def __repr__(self):
return f"Vector({self.x}, {self.y})"

def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)

def __mul__(self, scalar):
return Vector(self.x * scalar, self.y * scalar)

def __len__(self):
return int((self.x**2 + self.y**2)**0.5)

# نمونه استفاده
v1 = Vector(3, 4)
v2 = Vector(2, -1)
print(v1 + v2) # Vector(5, 3)
print(v1 * 3) # Vector(9, 12)
print(len(v1)) # 5

amulمع دو وکتور، _am برای ضlen در یک عدد و ضlen در یک عدد و __len__ برای محاسبه طول وکتور تعریف شدن. با این کار، کار با وکتورها خیلی راحت‌تر میش 2. استفاده از دکوراتورها برای افزودن قابلیت‌هاها**

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

def trace(func):
def wrapper(*args, **kwargs):
print(f"Executing {func.__name__} with arguments {args} and {kwargs}")
result = func(*args, **kwargs)
print(f"{func.__name__} returned {result}")
return result
return wrapper

class Calculator:
@trace
def add(self, a, b):
return a + b

@trace
def multiply(self, a, b):
return a * b

# نمونه استفاده
calc = Calculator()
print(calc.add(3, 5)) # Executing add with arguments (3, 5) and {}
# add returned 8
# 8
print(calc.multiply(4, 7)) # Executing multiply with arguments (4, 7) and {}
# multiply returned 28
# 28

با استفاده از این دکوراتور، هر بار که تابع add یا multiply فراخوانی میشه، ورودی‌ها و خروجی‌های اون‌ها چاپ میشن که می‌تونه توی دیباگ کردن خیلی کمک‌کننده باش

نتیجه‌گیری

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

[بیا تو کانال من تا بیشتر یاد بگیری]

#برنامه‌نویسی #پایتون #آموزش #شیءگرایی #ترفند
Forwarded from Python3
🌟 آموزش یک ویژگی خیلی ناشناخته در پایتون: Slots! 🌟

سلام به همه دوستان برنامه‌نویس! امروز می‌خوام در مورد یک ویژگی کمتر شناخته‌شده و خیلی ناشناخته در پایتون صحبت کنم که کمتر کسی در موردش آموزش داده: slots. این ویژگی به شما امکان می‌ده تا حافظه مصرفی اشیاء کلاس رو بهینه کنید و دسترسی سریع‌تری به صفات داشته باشید. پس بریم سراغ آموزش!

1. آشنایی با slots

در
پایتون، هر شیء یک دیکشنری داخلی (dict) برای نگهداری صفات خودش داره. این دیکشنری باعث انعطاف‌پذیری زیادی می‌شه ولی حافظه زیادی هم مصرف می‌کنه. با استفاده از slots, می‌تونید این دیکشنری رو حذف کنید و حافظه کمتری مصرف کنید.

class MyClass:
__slots__ = ['x', 'y'] # فقط صفات x و y مجاز هستند

def __init__(self, x, y):
self.x = x
self.y = y

# نمونه استفاده
obj = MyClass(1, 2)
print(obj.x, obj.y) # 1 2

try:
obj.z = 3 # AttributeError: 'MyClass' object has no attribute 'z'
except AttributeError as e:
print(e)

2. مزایای استslots_slots__

- صرفه‌جویی درslot
s_slots__ باعث کاهش مصرف حافظه می‌شه چون دیگه نیازی به دیکشنری داخلی نیست.
- سرعت دسترسی بیشتر: دسترسی به صفات با استslots_slots__ سریع‌تره چون از ساختارهای داده بهینه‌تر استفاده می‌کنه.

3. محدوslots_slots__

- عدم انعطاف‌پذیری
: شما فقط می‌تونید صفات تعریفslots_slots__ رو به اشیاء اضافه کنید.
- ناسازگاری با برخی ویژگی‌ها: برخی ویژگی‌های پایتون مثل صفات داینامیک یا استفاده از متا کلاس‌ها مslots_slots__ سازگار نباشند.

4. مثالی عملی

بیایید یک مثال عملی‌تر ببینیم slots_slots__ می‌تونه در یک کلاس واقعی استفاده بشه.

class Person:
__slots__ = ['name', 'age']

def __init__(self, name, age):
self.name = name
self.age = age

def __repr__(self):
return f"Person(name={self.name}, age={self.age})"

# نمونه استفاده
p = Person("Alice", 30)
print(p) # Person(name=Alice, age=30)

try:
p.address = "123 Main St" # AttributeError: 'Person' object has no attribute 'address'
except AttributeError as e:
print(e)

نتیجه‌slotsاستفاده از __slots__, می‌تونید مصرف حافظه کلاس‌های پایتون رو بهینه کنید و دسترسی سریع‌تری به صفات داشته باشید. این ویژگی مخصوصاً در برنامه‌هایی که با تعداد زیادی از اشیاء سر و کار دارند، می‌تونه بسیار مفید باشه.

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

#برنامه‌نویسی #پایتون #آموزش
Forwarded from Python3
🔔 اخبار جدید پایتون - ۲۸ ژوئن ۲۰۲۴ 🔔

1. پایان موفقیت‌آمیز PyCon US 2024: کنفرانس سالانه PyCon US 2024 با موفقیت در پیتسبورگ برگزار شد. این رویداد بزرگ شامل سخنرانی‌ها، کارگاه‌ها و فرصت‌های شبکه‌سازی بود که جامعه پایتون را گرد هم آورد. 🏙️🎤

2. معرفی ابزار uv توسط Astral: Astral، سازنده ابزار محبوب Ruff، از uv رونمایی کرده است. uv یک ابزار مدیریت بسته‌ها و پروژه‌ها است که با Rust نوشته شده و سرعت بالایی دارد. 🚀🔧

3. انتشار نسخه جدید REPL در پایتون 3.13: نسخه جدید REPL (Read-Evaluate-Print Loop) در پایتون 3.13 با ویژگی‌هایی همچون پشتیبانی از چندین خط کد و تاریخچه ورودی‌ها معرفی شد. 🎨💻

4. معرفی سخنرانان اصلی EuroPython 2024: EuroPython 2024 در ماه جولای در پراگ برگزار خواهد شد و سخنرانان برجسته‌ای همچون Anna Přistoupilová و Armin Ronacher در این رویداد حضور خواهند داشت. 🌟🎙️

5. تاخیر در اجرای PEP 649 تا پایتون 3.14: اجرای PEP 649 که به ارزیابی تأخیری از توضیحات می‌پردازد، تا نسخه 3.14 پایتون به تأخیر افتاده است. 📜

6. رشد استفاده از پایتون در Snowflake: استفاده از پایتون در پلتفرم Snowflake رشد چشمگیری داشته است و این شرکت قصد دارد ابزارهای جدیدی برای پشتیبانی از پایتون ارائه دهد. ☁️📈

7. تغییرات در قوانین Python Software Foundation: تغییرات جدید در قوانین Python Software Foundation امکان حذف اعضای هر طبقه‌بندی را با رای‌گیری فراهم می‌کند. 🏛️🗳️

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

[خبر های بروز پایتون تو کانال ما]


#Python #PyConUS2024 #EuroPython2024 #Python3.13 #uvTool #Snowflake #PSF #PEP649
Forwarded from Python3
🔔 آموزش یکی از ترسناک‌ترین الگوریتم‌ها در پایتون: 🕵️‍♂️🔍

سلام دوستان! می‌خوام درباره یکی از پیچیده‌ترین و ترسناک‌ترین الگوریتم‌ها در پایتون صحبت کنم:

الگوریتم صفحه‌بندی LRU (Least Recently Used).

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

1. الگوریتم LRU چیه؟

الگوریتم LRU برای مدیریت حافظه و کش‌ها استفاده می‌شه. این الگوریتم قدیمی‌ترین آیتم‌های استفاده نشده را از حافظه حذف می‌کند تا جا برای آیتم‌های جدید باز شود.

2. ساختار داده‌های مورد نیاز

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

3. پیاده‌سازی LRU Cache

بیایید با هم یک LRU Cache را پیاده‌سازی کنیم:

class DLinkedNode:
def __init__(self, key=0, value=0):
self.key = key
self.value = value
self.prev = None
self.next = None

class LRUCache:
def __init__(self, capacity: int):
self.cache = {}
self.capacity = capacity
self.size = 0
self.head = DLinkedNode()
self.tail = DLinkedNode()
self.head.next = self.tail
self.tail.prev = self.head

def _add_node(self, node):
node.prev = self.head
node.next = self.head.next
self.head.next.prev = node
self.head.next = node

def _remove_node(self, node):
prev = node.prev
new = node.next
prev.next = new
new.prev = prev

def _move_to_head(self, node):
self._remove_node(node)
self._add_node(node)

def _pop_tail(self):
res = self.tail.prev
self._remove_node(res)
return res

def get(self, key: int) -> int:
node = self.cache.get(key, None)
if not node:
return -1
self._move_to_head(node)
return node.value

def put(self, key: int, value: int) -> None:
node = self.cache.get(key)
if not node:
newNode = DLinkedNode(key, value)
self.cache[key] = newNode
self._add_node(newNode)
self.size += 1
if self.size > self.capacity:
tail = self._pop_tail()
del self.cache[tail.key]
self.size -= 1
else:
node.value = value
self._move_to_head(node)

4. نحوه استفاده از LRU Cache

حالا بیایید یک نمونه از استفاده از LRU Cache را ببینیم:

lru_cache = LRUCache(2)

lru_cache.put(1, 1)
lru_cache.put(2, 2)
print(lru_cache.get(1)) # 1
lru_cache.put(3, 3) # حذف کلید 2
print(lru_cache.get(2)) # -1 (کلید 2 حذف شده)
lru_cache.put(4, 4) # حذف کلید 1
print(lru_cache.get(1)) # -1 (کلید 1 حذف شده)
print(lru_cache.get(3)) # 3
print(lru_cache.get(4)) # 4

نتیجه‌گیری

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

الگوریتم های بیشتر توی کانال ما

#برنامه‌نویسی #پایتون #آموزش #الگوریتم #LRU
Forwarded from Python3
📚 مقدمه دوره آموزش پایتون از 0 تا 100

سلام دوستان عزیز! 👋

به دوره جامع آموزش پایتون از 0 تا 100 خوش آمدید! 🎉

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

🔍 اهداف دوره:

- آشنایی با پایتون: شروع از مفاهیم پایه و نصب پایتون.
- مبانی برنامه‌نویسی: متغیرها، انواع داده‌ها، عملیات ریاضی و منطقی.
- ساختارهای داده: لیست‌ها، تاپل‌ها، دیکشنری‌ها و مجموعه‌ها.
- حلقه‌ها و توابع: استفاده از حلقه‌ها و تعریف توابع.
- مدیریت فایل‌ها و استثناء‌ها: خواندن و نوشتن فایل‌ها، مدیریت خطاها.
- برنامه‌نویسی شیءگرا: مفاهیم پایه، وراثت و پلی‌مورفیسم.
- ماژول‌ها و کتابخانه‌ها: معرفی ماژول‌ها و کتابخانه‌های استاندارد.
- پروژه‌های عملی: پروژه‌های کاربردی برای تثبیت مطالب.
- مفاهیم پیشرفته: Decorators، Generators و مدیریت حافظه.
- توسعه وب: آشنایی با Flask و Django.
- کار با داده‌ها: معرفی Pandas و NumPy.

📅 برنامه دوره:

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

🎯 چه چیزهایی یاد خواهید گرفت؟

- نوشتن کد پایتون: از اولین قدم‌ها تا پروژه‌های پیچیده.
- حل مسائل: استفاده از پایتون برای حل مسائل روزمره.
- توسعه وب: ساخت و توسعه وب‌سایت‌ها با استفاده از Flask و Django.
- تحلیل داده: کار با داده‌ها و انجام تحلیل‌های پیچیده با Pandas و NumPy.

🛠️ ابزارهایی که استفاده خواهیم کرد:

- پایتون: نسخه‌های جدید پایتون.
- ویرایشگرهای متنی: Visual Studio Code، PyCharm.
- کتابخانه‌ها و فریم‌ورک‌ها: Flask، Django، Pandas، NumPy.

آماده‌اید شروع کنیم؟ بیایید با هم دنیای جذاب برنامه‌نویسی پایتون را کشف کنیم! 🚀

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

#پایتون #آموزش_پایتون #برنامه_نویسی #دوره_آموزشی #Python #Programming #PythonCourse
Forwarded from Python3
📚 دوره آموزش پایتون از 0 تا 100

پارت 1: نصب و راه‌اندازی پایتون

سلام دوستان عزیز! 👋

به اولین پارت از دوره جامع آموزش پایتون خوش آمدید! 🎉

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

🔧 نصب پایتون

1. دانلود پایتون:
- به وبسایت رسمی پایتون ([Python.org]) بروید و آخرین نسخه پایتون را دانلود کنید. 🚀

2. نصب پایتون:
- فایل دانلود شده را اجرا کنید.
- مطمئن شوید گزینه "Add Python to PATH" را انتخاب کرده‌اید.
- روی "Install Now" کلیک کنید. 🛠️

🖥️ نصب ویرایشگر متنی

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

1. Visual Studio Code:
- رایگان و بسیار قدرتمند
- [دانلود Visual Studio Code]

2. PyCharm:
- نسخه رایگان و حرفه‌ای
- [دانلود PyCharm]

👨‍💻 اجرای اولین برنامه پایتون

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

1. باز کردن ویرایشگر:
ویرایشگر متنی خود را باز کنید.

2. ایجاد فایل جدید:
یک فایل جدید با پسوند .py ایجاد کنید (مثلاً hello.py). 📄

3. نوشتن کد:
کد زیر را در فایل خود بنویسید:


   print("Hello, World!")

4. ذخیره و اجرای فایل:
- فایل را ذخیره کنید.
- برای اجرای فایل:
- در Visual Studio Code: روی دکمه "Run" کلیک کنید. ▶️
- در خط فرمان: دستور python hello.py را اجرا کنید. 💻

اگر همه چیز درست انجام شده باشد، باید خروجی زیر را ببینید:

   Hello, World!

تبریک می‌گوییم! شما اولین برنامه پایتون خود را با موفقیت اجرا کردید. 🎉

🎯 خلاصه

در این جلسه:
- پایتون را دانلود و نصب کردید.
- یک ویرایشگر متنی نصب کردید.
- اولین برنامه پایتون خود را نوشتید و اجرا کردید.

🔜 ادامه دوره

در جلسه بعدی، به متغیرها و انواع داده‌ها در پایتون خواهیم پرداخت. منتظر باشید! 😉

[اموزش های بیشتر کانال ما]

#پایتون #آموزش_پایتون #برنامه_نویسی #دوره_آموزشی #Python #Programming #PythonCourse
Forwarded from Python3
این بیلاخ(👍)زیر پستارو هم انگشت کنید هربار که نباید بگم
Forwarded from Python3
📚 دوره آموزش پایتون از 0 تا 100

پارت 3: عملیات ریاضی و منطقی

سلام دوستان عزیز! 👋

به سومین پارت از دوره جامع آموزش پایتون خوش آمدید! 🎉

در این جلسه، قصد داریم با عملیات ریاضی و منطقی در پایتون آشنا شویم. این عملیات‌ها پایه و اساس بسیاری از برنامه‌ها و الگوریتم‌های برنامه‌نویسی هستند. بیایید شروع کنیم! 🚀

عملیات ریاضی

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

1. جمع (+):

   a = 10
b = 5
result = a + b
print("Sum:", result) # خروجی: Sum: 15

2. تفریق (-):

   a = 10
b = 5
result = a - b
print("Difference:", result) # خروجی: Difference: 5

3. ضرب (*):

   a = 10
b = 5
result = a * b
print("Product:", result) # خروجی: Product: 50

4. تقسیم (/):

   a = 10
b = 5
result = a / b
print("Quotient:", result) # خروجی: Quotient: 2.0

5. توان ():**

   a = 2
b = 3
result = a ** b
print("Power:", result) # خروجی: Power: 8

6. باقی‌مانده (٪):

   a = 10
b = 3
result = a % b
print("Remainder:", result) # خروجی: Remainder: 1

7. تقسیم صحیح (//):

   a = 10
b = 3
result = a // b
print("Floor Division:", result) # خروجی: Floor Division: 3

🔄 اولویت عملیات ریاضی

اولویت عملیات ریاضی در پایتون مشابه ریاضیات معمول است:

1. پرانتز‌ها ()
2. توان **
3. ضرب، تقسیم، تقسیم صحیح و باقی‌مانده * / // %
4. جمع و تفریق + -

مثال:
result = 2 + 3 * 4
print("Result:", result) # خروجی: Result: 14

result = (2 + 3) * 4
print("Result with parentheses:", result) # خروجی: Result with parentheses: 20

🔍 عملیات منطقی

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

1. مساوی بودن (==):

   a = 10
b = 5
result = (a == b)
print("Equal:", result) # خروجی: Equal: False

2. نامساوی (!=):

   a = 10
b = 5
result = (a != b)
print("Not Equal:", result) # خروجی: Not Equal: True

3. بزرگتر از (>):

   a = 10
b = 5
result = (a > b)
print("Greater than:", result) # خروجی: Greater than: True

4. کوچکتر از (<):

   a = 10
b = 5
result = (a < b)
print("Less than:", result) # خروجی: Less than: False

5. بزرگتر یا مساوی (>=):

   a = 10
b = 10
result = (a >= b)
print("Greater than or Equal:", result) # خروجی: Greater than or Equal: True

6. کوچکتر یا مساوی (<=):

   a = 10
b = 10
result = (a <= b)
print("Less than or Equal:", result) # خروجی: Less than or Equal: True

7. عملگر منطقی and:

   a = True
b = False
result = a and b
print("Logical AND:", result) # خروجی: Logical AND: False

8. عملگر منطقی or:

   a = True
b = False
result = a or b
print("Logical OR:", result) # خروجی: Logical OR: True

9. عملگر منطقی not:

   a = True
result = not a
print("Logical NOT:", result) # خروجی: Logical NOT: False

🎯 مثال‌های عملی

1. مثال 1: محاسبه مساحت یک مستطیل

   length = 5
width = 3
area = length * width
print("Area of Rectangle:", area) # خروجی: Area of Rectangle: 15

2. مثال 2: بررسی شرایط سن

   age = 20
is_adult = age >= 18
print("Is Adult:", is_adult) # خروجی: Is Adult: True

3. مثال 3: بررسی شرایط متعدد

   score = 85
passed = score >= 50
excellent = score >= 90
result = passed and not excellent
print("Passed but not Excellent:", result) # خروجی: Passed but not Excellent: True

🎯 خلاصه

در این جلسه:
- با عملیات ریاضی در پایتون آشنا شدیم.
- اولویت عملیات ریاضی را یاد گرفتیم.
- با عملیات منطقی و کاربردهای آن‌ها آشنا شدیم.
- مثال‌های عملی برای درک بهتر مفاهیم ارائه دادیم.

🔜 ادامه دوره

در جلسه بعدی، به دستورات شرطی در پایتون خواهیم پرداخت. منتظر باشید! 😉

[اموزش های بیشتر کانال ما]

#پایتون #آموزش_پایتون #برنامه_نویسی #دوره_آموزشی #Python
Forwarded from Python3
📚 دوره آموزش پایتون از 0 تا 100

پارت 4: دستورات شرطی و کنترل جریان

سلام دوستان عزیز! 👋

به چهارمین پارت از دوره جامع آموزش پایتون خوش آمدید! 🎉

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

🚦 دستورات شرطی

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

1. دستور if:

   age = 20
if age >= 18:
print("You are an adult.")

2. دستور if و else:

   age = 15
if age >= 18:
print("You are an adult.")
else:
print("You are not an adult yet.")

3. دستور if، elif و else:

   score = 85
if score >= 90:
print("Grade: A")
elif score >= 80:
print("Grade: B")
elif score >= 70:
print("Grade: C")
else:
print("Grade: D")

🔄 عبارات منطقی

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

- and: بررسی هر دو عبارت
- or: بررسی حداقل یکی از دو عبارت
- not: اعتراض به یک عبارت

🎯 مثال‌های عملی

1. مثال 1: دستورات شرطی


   age = 20
if age >= 18:
print("You are an adult.")
else:
print("You are not an adult yet.")

2. مثال 2: دستورات شرطی چندگانه


   score = 85
if score >= 90:
print("Grade: A")
elif score >= 80:
print("Grade: B")
elif score >= 70:
print("Grade: C")
else:
print("Grade: D")

3. مثال 3: استفاده از عبارات منطقی


   is_raining = True
have_umbrella = False
if is_raining and not have_umbrella:
print("Take an umbrella!")

🔜 ادامه دوره

در جلسه بعدی، به حلقه‌ها و تکرارها در پایتون خواهیم پرداخت. منتظر باشید! 😉
Forwarded from Python3
پارت ۵: لیست‌ها و تاپل‌ها در پایتون 📋🐍

در این پارت، به بررسی دو ساختار داده‌ای پرکاربرد در پایتون می‌پردازیم: لیست‌ها (Lists) و تاپل‌ها (Tuples). این ساختارها به ما کمک می‌کنند تا مجموعه‌ای از داده‌ها را به صورت منظم و قابل دسترس ذخیره و مدیریت کنیم.

۱. لیست‌ها (Lists)

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

تعریف لیست

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

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

افزودن و حذف عناصر

می‌توانیم عناصر جدید به لیست اضافه کنیم یا عناصر موجود را حذف کنیم:

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

my_list.remove(3) # حذف اولین وجود عنصر از لیست
print(my_list) # خروجی: [1, 2, 4, 5, 6]

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

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

first_element = my_list[0]
print(first_element) # خروجی: 1

last_element = my_list[-1]
print(last_element) # خروجی: 6

برش (Slicing)

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

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

۲. تاپل‌ها (Tuples)

تاپل‌ها مشابه لیست‌ها هستند، با این تفاوت که غیر قابل تغییر (immutable) هستند. این ویژگی باعث می‌شود تا تاپل‌ها سریع‌تر و مطمئن‌تر باشند.

تعریف تاپل

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

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

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

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

first_element = my_tuple[0]
print(first_element) # خروجی: 1

last_element = my_tuple[-1]
print(last_element) # خروجی: 5

تفاوت‌های اصلی بین لیست‌ها و تاپل‌ها

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


تمرین‌ها

1. لیستی بسازید که شامل نام پنج دوست شما باشد و سپس نام دوست ششم خود را به آن اضافه کنید.
2. تاپلی بسازید که شامل شماره‌های مورد علاقه شما باشد و سپس سعی کنید یکی از شماره‌ها را تغییر دهید. چه اتفاقی می‌افتد؟
3. لیستی از اعداد ایجاد کنید و میانگین آنها را محاسبه کنید.

[آموزش های بیشتر کانال ما ]

#پایتون #آموزش_پایتون #برنامه_نویسی #لیست #تاپل #کدنویسی
Forwarded from Python3
پارت ۶: دیکشنری‌ها و مجموعه‌ها در پایتون 📚🐍

در این پارت، به بررسی دو ساختار داده‌ای مهم و پرکاربرد دیگر در پایتون می‌پردازیم: دیکشنری‌ها (Dictionaries) و مجموعه‌ها (Sets). این ساختارها ابزارهایی قوی برای مدیریت داده‌ها به شکلی موثر و بهینه هستند.

۱. دیکشنری‌ها (Dictionaries)

دیکشنری‌ها ساختارهای داده‌ای هستند که داده‌ها را به صورت جفت‌های کلید-مقدار (key-value pairs) ذخیره می‌کنند. این ویژگی باعث می‌شود تا دیکشنری‌ها برای ذخیره و بازیابی داده‌ها با استفاده از کلید‌ها بسیار مفید باشند.

تعریف دیکشنری

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

my_dict = {"name": "Ali", "age": 25, "city": "Tehran"}
print(my_dict) # خروجی: {'name': 'Ali', 'age': 25, 'city': 'Tehran'}

افزودن و حذف عناصر

می‌توانیم عناصر جدید به دیکشنری اضافه کنیم یا عناصر موجود را حذف کنیم:

my_dict["email"] = "[email protected]"  # افزودن عنصر جدید
print(my_dict) # خروجی: {'name': 'Ali', 'age': 25, 'city': 'Tehran', 'email': '[email protected]'}

del my_dict["age"] # حذف عنصر
print(my_dict) # خروجی: {'name': 'Ali', 'city': 'Tehran', 'email': '[email protected]'}

دسترسی به مقادیر دیکشنری

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

name = my_dict["name"]
print(name) # خروجی: Ali

متدهای پرکاربرد دیکشنری

دیکشنری‌ها دارای متدهای متعددی هستند که کار با آنها را آسان‌تر می‌کنند:

# استفاده از متد get برای دریافت مقدار با کلید، در صورت عدم وجود کلید مقدار پیش‌فرض بازمی‌گرداند
age = my_dict.get("age", "Unknown")
print(age) # خروجی: Unknown

# دریافت لیست کلیدها و مقادیر
keys = my_dict.keys()
values = my_dict.values()
print(keys) # خروجی: dict_keys(['name', 'city', 'email'])
print(values) # خروجی: dict_values(['Ali', 'Tehran', '[email protected]'])

۲. مجموعه‌ها (Sets)

مجموعه‌ها ساختارهای داده‌ای هستند که تنها شامل عناصر یکتا (غیر تکراری) می‌شوند. این ویژگی باعث می‌شود تا مجموعه‌ها برای انجام عملیات‌های مجموعه‌ای مانند اشتراک، اجتماع و تفاضل بسیار مفید باشند.

تعریف مجموعه

مجموعه‌ها با استفاده از آکولاد {} یا تابع set() تعریف می‌شوند:

my_set = {1, 2, 3, 4, 5}
print(my_set) # خروجی: {1, 2, 3, 4, 5}

my_set = set([1, 2, 3, 4, 5])
print(my_set) # خروجی: {1, 2, 3, 4, 5}

فزودن و حذف عناصر

می‌توانیم عناصر جدید به مجموعه اضافه کنیم یا عناصر موجود را حذف کنیم:

my_set.add(6)   # افزودن عنصر جدید
print(my_set) # خروجی: {1, 2, 3, 4, 5, 6}

my_set.remove(3) # حذف عنصر
print(my_set) # خروجی: {1, 2, 4, 5, 6}

# عملیات‌های مجموعه‌ای

مجموعه‌ها دارای متدهای مختلفی برای انجام عملیات‌های مجموعه‌ای هستند:

set1 = {1, 2, 3}
set2 = {3, 4, 5}

# اجتماع
union_set = set1.union(set2)
print(union_set) # خروجی: {1, 2, 3, 4, 5}

# اشتراک
intersection_set = set1.intersection(set2)
print(intersection_set) # خروجی: {3}

# تفاضل
difference_set = set1.difference(set2)
print(difference_set) # خروجی: {1, 2}

تمرین‌ها

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

[آموزش های مفید پایتون اینجاست]

#پایتون #آموزش_پایتون #برنامه_نویسی #دیکشنری #مجموعه #کدنویسی
Forwarded from Python3
📚 آموزش الگوریتم مرتب‌سازی ادغامی (Merge Sort)

سلام دوستان! امروز قصد داریم یکی از الگوریتم‌های مهم و پرکاربرد در علوم کامپیوتر که در دانشگاه‌ها تدریس می‌شود را به شما آموزش دهیم. این الگوریتم به نام مرتب‌سازی ادغامی (Merge Sort) شناخته می‌شود. بیایید با هم یاد بگیریم چطور این الگوریتم کار می‌کند. 🧠

الگوریتم مرتب‌سازی ادغامی
مرتب‌سازی ادغامی یکی از الگوریتم‌های مرتب‌سازی است که از روش تقسیم و غلبه (Divide and Conquer) استفاده می‌کند. در این روش، لیست به دو نیم تقسیم شده و هر نیمه به صورت جداگانه مرتب می‌شود، سپس دو نیمه مرتب شده به هم ادغام می‌شوند تا یک لیست مرتب نهایی ایجاد شود.

مراحل اجرای الگوریتم
1. تقسیم لیست: لیست اصلی را به دو نیمه مساوی تقسیم کنید.
2. مرتب‌سازی نیمه‌ها: هر نیمه را به صورت جداگانه با استفاده از الگوریتم مرتب‌سازی ادغامی مرتب کنید.
3. ادغام نیمه‌ها: دو نیمه مرتب شده را به یکدیگر ادغام کنید تا یک لیست مرتب نهایی به دست آید.

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

def merge_sort(arr):
if len(arr) > 1:
mid = len(arr) // 2
left_half = arr[:mid]
right_half = arr[mid:]

merge_sort(left_half)
merge_sort(right_half)

i = j = k = 0

while i < len(left_half) and j < len(right_half):
if left_half[i] < right_half[j]:
arr[k] = left_half[i]
i += 1
else:
arr[k] = right_half[j]
j += 1
k += 1

while i < len(left_half):
arr[k] = left_half[i]
i += 1
k += 1

while j < len(right_half):
arr[k] = right_half[j]
j += 1
k += 1

return arr

این الگوریتم به صورت بازگشتی عمل کرده و پیچیدگی زمانی آن O(n log n) است، که آن را برای بسیاری از کاربردها به یک انتخاب عالی تبدیل می‌کند.

مزایا و معایب
مزایا:
- پیچیدگی زمانی مناسب
- عملکرد قابل پیش‌بینی

معایب:
- نیاز به حافظه اضافی برای لیست‌های نیمه

امیدوارم این آموزش برای شما مفید بوده باشد! تا آموزش بعدی، موفق و پیروز باشید! 🌟

#الگوریتم #مرتب_سازی #برنامه_نویسی #کامپیوتر #آموزش #MergeSort
Forwarded from Python3
🟥الگوریتم مرتب سازی ادغامی(merge sort)
Forwarded from Python3
Forwarded from Python3
آیا می‌دانستید؟ 🤓

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

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

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

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

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

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

#تاریخچه_کامپیوتر #کنراد_تسوزه #Z1 #کامپیوتر_مکانیکی #نوآوری #دانستنی #علم_و_فناوری
Forwarded from Python3
آیا می‌دانستید؟ 🤓

یکی از نکات بسیار مهم در کار با توابع در پایتون که می‌تواند به شما کمک کند تا با خطاهای کمتری مواجه شوید، استفاده از آرگومان‌های پیش‌فرض (Default Arguments) است. 🌟

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

مثال
def greet(name, message="سلام!"):
print(f"{message}, {name}")

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

# فراخوانی تابع با ارسال آرگومان message
greet("علی", "صبح بخیر")
# خروجی: صبح بخیر, علی

چرا استفاده از آرگومان‌های پیش‌فرض مهم است؟
1. جلوگیری از خطاهای رایج: وقتی شما آرگومان‌های پیش‌فرض تعیین می‌کنید، در صورتی که برخی از آرگومان‌ها فراموش شوند، کد شما همچنان به درستی کار خواهد کرد و با خطای "آرگومان کافی نیست" مواجه نخواهید شد. 🚫

2. افزایش خوانایی و کارایی کد: با استفاده از آرگومان‌های پیش‌فرض، کد شما خواناتر و استفاده از توابع شما راحت‌تر خواهد شد، به خصوص زمانی که توابع پیچیده‌تری دارید. 📖

3. انعطاف‌پذیری بیشتر: شما می‌توانید توابعی بنویسید که در شرایط مختلف و با مقادیر ورودی مختلف به درستی عمل کنند، بدون اینکه نیاز باشد چندین تابع مختلف برای شرایط متفاوت تعریف کنید. 🎛🔄

این نکته ساده اما قدرتمند می‌تواند به شما کمک کند تا کدهای تمیزتر و پایدارتر بنویسید و با خطاهای کمتری مواجه شوید. 🛠🔍

🔻برای نکته های بیشتر اینجا کلیک کن

#پایتون #برنامه‌نویسی #آموزش_پایتون #تابع‌ها #توسعه_دهنده #نکات_برنامه‌نویسی