آموزش برنامه‌نویسی پایتون و هوش مصنوعی
140 subscribers
358 photos
190 videos
41 files
172 links
🎯 یادگیری پایتون با رویکردی متفاوت
🚀 آموزش‌های کاملاً عملی و پروژه‌محور
💻 مسیر تبدیل شدن به یک برنامه‌نویس حرفه‌ای
🌟 فرقی نداره مبتدی هستی یا پیشرفته، از هر سطحی شروع کن و پایتون رو اصولی یاد بگیر
📩 ارتباط با ادمین: @YMahmoodian
09156519984
Download Telegram
راهنمای رسمی یادگیری هوش مصنوعی با پایتون

1️⃣ مقدمه

هوش مصنوعی (Artificial Intelligence – AI) شاخه‌ای از علوم کامپیوتر است که به ساخت سیستم‌هایی می‌پردازد که توانایی تصمیم‌گیری، یادگیری و حل مسئله دارند. پایتون یکی از محبوب‌ترین زبان‌ها برای توسعه AI است، زیرا کتابخانه‌های متنوع، جامعه بزرگ و کاربرد در صنعت و پژوهش دارد.


---

2️⃣ دسته‌بندی‌های اصلی هوش مصنوعی در پایتون

2.1 یادگیری ماشین (Machine Learning)

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

کتابخانه‌ها: scikit-learn, xgboost, lightgbm

پروژه‌های پیشنهادی:

پیش‌بینی قیمت خانه

دسته‌بندی ایمیل اسپم

تحلیل داده‌های فروش و پیش‌بینی روند آینده




---

2.2 یادگیری عمیق (Deep Learning)

هدف: استفاده از شبکه‌های عصبی عمیق برای حل مسائل پیچیده.

کتابخانه‌ها: TensorFlow, Keras, PyTorch

پروژه‌های پیشنهادی:

تشخیص اشیا و چهره در تصاویر

تولید متن با مدل‌های RNN/Transformer

سیستم‌های ترجمه خودکار




---

2.3 پردازش تصویر و بینایی ماشین (Computer Vision)

هدف: استخراج اطلاعات و تحلیل تصاویر و ویدئوها.

کتابخانه‌ها: OpenCV, Pillow, scikit-image

پروژه‌های پیشنهادی:

تشخیص چهره یا اجسام

OCR (خواندن متن از تصویر)

فیلترگذاری و تغییر رنگ ویدئو




---

2.4 پردازش زبان طبیعی (Natural Language Processing)

هدف: تحلیل و تولید زبان و متن انسانی.

کتابخانه‌ها: NLTK, spaCy, Transformers (HuggingFace)

پروژه‌های پیشنهادی:

ساخت چت‌بات

تحلیل احساسات شبکه‌های اجتماعی

خلاصه‌سازی خودکار مقالات




---

2.5 یادگیری تقویتی (Reinforcement Learning)

هدف: آموزش ایجنت‌ها برای تصمیم‌گیری بهینه در محیط.

کتابخانه‌ها: gym (OpenAI), Stable Baselines3

پروژه‌های پیشنهادی:

بازی‌های ساده مانند Gridworld یا FrozenLake

رباتیک شبیه‌سازی‌شده

مسیریابی خودکار




---

2.6 الگوریتم‌ها و سیستم‌های هوشمند سنتی

هدف: استفاده از الگوریتم‌های جستجو، منطق فازی و سیستم‌های خبره.

کتابخانه‌ها: pyknow, DEAP (الگوریتم ژنتیک)

پروژه‌های پیشنهادی:

سیستم توصیه‌گر ساده

حل مسئله با جستجوی A*

تصمیم‌گیری هوشمند با قوانین




---

2.7 علوم داده و تحلیل (Data Science)

هدف: جمع‌آوری، تحلیل و مصورسازی داده‌ها برای استخراج الگو.

کتابخانه‌ها: pandas, numpy, matplotlib, seaborn

پروژه‌های پیشنهادی:

مصورسازی روند فروش

تحلیل داده‌های شبکه‌های اجتماعی

پیش‌بینی نتایج بر اساس داده‌های تاریخی




---

3️⃣ مسیر یادگیری پیشنهادی (قدم‌به‌قدم)

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

numpy, pandas, matplotlib, seaborn



2. یادگیری ماشین پایه:

مدل‌های رگرسیون و دسته‌بندی با scikit-learn



3. پردازش تصویر با OpenCV:

فیلترگذاری، تشخیص لبه و رنگ‌ها

تشخیص اشیا ساده



4. یادگیری عمیق با Keras/PyTorch:

شبکه‌های CNN برای تصویر

شبکه‌های RNN و Transformer برای متن



5. پردازش زبان طبیعی:

تحلیل متن و چت‌بات با spaCy و Transformers



6. یادگیری تقویتی و شبیه‌سازی محیط‌ها:

OpenAI Gym و Q-Learning

پروژه‌های بازی و رباتیک



7. پروژه عملی و انتشار:

GitHub: پروژه‌ها، کدها و مستندات

Kaggle: مسابقات و تمرین داده‌ها

انتشار مقاله یا آموزش آنلاین





---

4️⃣ نکات کلیدی برای موفقیت

تمرین با پروژه‌های واقعی مهم‌تر از صرفا خواندن تئوری است.

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

مستند کردن پروژه‌ها و اشتراک‌گذاری آن‌ها باعث دیده شدن و اعتبار علمی می‌شود.
آزمون انتخابی پایتون – ۲۰ سوال


از هر بخش (سخت، متوسط، آسان) یک سوال انتخاب کنید.









سطح سخت (انتخاب 1)

1. بزرگ‌ترین عدد فرد در لیست


2. شمارش حروف بزرگ و کوچک در رشته


3. محاسبه معدل دانش‌آموزان از دیکشنری


4. فاکتوریل عدد n با تابع بازگشتی


5. صاف کردن لیست از لیست‌ها (flatten)


6. بررسی عدد اول


7. حذف حروف تکراری از رشته




---

سطح متوسط (انتخاب 1)

8. مجموع اعداد زوج تا n


9. شمارش معکوس با حلقه while


10. بزرگ‌ترین عدد از دو عدد با تابع


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


12. بررسی وجود مقدار در لیست


13. گرفتن مقدار از دیکشنری با بررسی کلید




---

سطح آسان (انتخاب 1)

14. چاپ جمله شخصی‌سازی‌شده از نام و سن


15. بررسی زوج یا فرد بودن عدد


16. چاپ اعداد ۱ تا ۱۰ با حلقه for


17. جمع اعداد ۱ تا n با حلقه


18. رسم مربع با Turtle


19. نمایش نوع داده ورودی


20. تابع ساده با پارامتر پیش‌فرض






سلام دوستان،

برای تمرین عملی، ۲۰ سوال پایتون داریم که به سه سطح سخت، متوسط و آسان تقسیم شده‌اند.

از هر سطح یک سوال انتخاب کنید.

پاسخ خود را در حد یک یا دو خط توضیحات بنویسید و کد کامل  برای بنده ارسال کنید.


هدف از این تمرین:

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

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


موفق باشید!


-
This media is not supported in your browser
VIEW IN TELEGRAM
لیست و دسته‌بندی همه متدها و توابع مهم پایتون




# دسته‌بندی متدهای پایتون بر اساس نوع داده‌ها
types_to_check = {
"str (رشته)": str,
"list (لیست)": list,
"tuple (تاپل)": tuple,
"dict (دیکشنری)": dict,
"set (مجموعه)": set,
"int (عدد صحیح)": int,
"float (عدد اعشاری)": float,
"complex (عدد مختلط)": complex,
"bool (بولی)": bool,
}

print("📚 دسته‌بندی متدها و توابع در پایتون")
print("="*60)

for type_name, type_obj in types_to_check.items():
print(f"\n🔹 {type_name}")
print("-"*40)
methods = [m for m in dir(type_obj) if not m.startswith("_")]
for m in methods:
print(m)
This media is not supported in your browser
VIEW IN TELEGRAM
لیست (کلیدواژه‌ها، استثناها، متدهای ویژه‌ی شی‌ءگرایی)


---

کد

import keyword
import builtins

print("📚 دایرةالمعارف پایتون")
print("="*60)

# 1. کلیدواژه‌ها
print("\n🔹 کلیدواژه‌های پایتون (Keywords):")
print("-"*40)
for kw in keyword.kwlist:
print(kw)

# 2. استثناها (Exceptions)
print("\n🔹 استثناها (Exceptions):")
print("-"*40)
exceptions = [name for name in dir(builtins)
if isinstance(getattr(builtins, name), type)
and issubclass(getattr(builtins, name), BaseException)]
for e in exceptions:
print(e)

# 3. متدهای ویژه (Magic / Dunder Methods)
print("\n🔹 متدهای ویژه (Magic Methods):")
print("-"*40)
magic_methods = [m for m in dir(object) if m.startswith("") and m.endswith("")]
for mm in magic_methods:
print(mm)


---
توضیح

Keywords → لیست همه کلیدواژه‌های رزرو شده پایتون مثل if, for, while, lambda, try …

Exceptions → لیست تمام خطاهای داخلی مثل ValueError, TypeError, ZeroDivisionError, KeyError …
Magic Methods → متدهای خاص پایتون که رفتار شی‌ها رو تعریف می‌کنن مثل init, str, add, len
This media is not supported in your browser
VIEW IN TELEGRAM
from turtle import *
import colorsys

speed(0)
bgcolor("black")
h = 0

penup()
goto(0, 0)
pendown()

for i in range(36):
penup()
goto(0, 0) # هر بار Turtle به مرکز بازمی‌گردد
pendown()

color = colorsys.hsv_to_rgb(h, 1, 1)
pencolor(color[0], color[1], color[2])

circle(150) # دایره بزرگ در مرکز
rt(10) # چرخش کلی برای مارپیچ
h += 0.03

done()
This media is not supported in your browser
VIEW IN TELEGRAM
🔋 نمایش درصد شارژ و وضعیت باتری با پایتون



کد:

import psutil

# دریافت اطلاعات باتری
battery = psutil.sensors_battery()

if battery is not None:
print("Battery Percentage:", battery.percent, "%")
print("Power Plugged in:", battery.power_plugged)

# تبدیل ثانیه به ساعت:دقیقه:ثانیه
def convertTime(seconds):
minutes, seconds = divmod(seconds, 60)
hours, minutes = divmod(minutes, 60)
return "%d:%02d:%02d" % (hours, minutes, seconds)

print("Battery remaining time:", convertTime(battery.secsleft))
else:
print("No battery information available.")
This media is not supported in your browser
VIEW IN TELEGRAM
📊 تحلیل همبستگی بازدهی سهام با پایتون




کد:

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

# لیست نمادهای سهام
tickers = ['AAPL', 'MSFT', 'GOOG', 'AMZN', 'META', 'TSLA', 'NVDA', 'JPM', 'V', 'DIS']

# تولید داده‌های تصادفی برای بازدهی روزانه
np.random.seed(42)
returns = pd.DataFrame(np.random.randn(100, len(tickers)), columns=tickers)

# محاسبه ماتریس همبستگی
correlation_matrix = returns.corr()

# ترسیم Heatmap
plt.figure(figsize=(14, 10))
sns.heatmap(correlation_matrix, annot=True, cmap="RdYlGn", center=0)
plt.title("Stock Return Correlation Heatmap")
plt.show()
📢 اطلاعیه برگزاری دوره مقدماتی پایتون

با سلام خدمت دانش‌آموزان گرامی و والدین محترم،

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

🔹 زمان‌بندی دوره به گونه‌ای تنظیم شده است که کلاس‌ها تا پیش از آغاز سال تحصیلی (اول مهر) به پایان برسند.
🔹 در صورت تمایل به شرکت در این دوره، لطفاً هرچه سریع‌تر اطلاع دهید تا با تکمیل ظرفیت، کلاس‌ها از پایان همین هفته آغاز گردد.

با آرزوی موفقیت و پیشرفت برای همه دانش‌آموزان عزیز 🌱
🚀 دوره مقدماتی برنامه‌نویسی پایتون

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

🐍 چرا پایتون؟

ساده، خوانا و قدرتمند برای انواع پروژه‌ها

پایه اصلی هوش مصنوعی، یادگیری ماشین و علم داده

کاربرد در توسعه وب، اتوماسیون، رباتیک و پژوهش‌های علمی


🎯 مزایای یادگیری پایتون:

سرمایه‌گذاری بلندمدت روی آینده شغلی و علمی

دروازه ورود به دنیای فناوری‌های نوین


👨‍🏫 مدرس دوره: یاسر محمودیان – کارشناس ارشد کامپیوتر مدرس برنامه‌نویسی و هوش مصنوعی

🎓 مخاطبان: دانش‌آموزان، دانشجویان و علاقه‌مندان به برنامه‌نویسی (بدون نیاز به پیش‌زمینه)

📅 زمان‌بندی: کلاس‌ها تا قبل از آغاز سال تحصیلی (اول مهر)

📌 ثبت‌نام و اطلاعات بیشتر:

تلگرام و روبیکا: @PyPlus_Admin

ایتا: @learns_py

اینستاگرام: instagram.com/learns.py


ظرفیت محدود، شروع کلاس‌ها از پایان همین هفته

#خراسان‌_رضوی
#درگز
#کانون_فرهنگی_ورزشی_شهید_صیاد_شیرازی_بسیج_درگز
https://eitaa.com/saiad_shiirazi
Media is too big
VIEW IN TELEGRAM
📚 آموزش جامع مجموعه‌ها (Set) در پایتون!

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

در این ویدیو با متدهای Set آشنا می‌شویم:
ایجاد و کپی مجموعه‌ها
اضافه و حذف عناصر
تغییر مقادیر
انجام عملیات ریاضی مثل اشتراک، اجتماع و تفاوت

یکبار ببینید و مهارت خود در کار با مجموعه‌ها را چند برابر کنید! 💡
فرا رسیدن سالروز شهادت امام رضا (ع)، آقای درد و دل‌های محرمانه، خدمت شما همراهان عزیز کانال برنامه‌نویسی پایتون تسلیت عرض می‌کنیم.

خوشا مشهد و شاه بی‌مثالش
خوشا آن صاحب، صاحب کمالش
خوشا صحن پر از جاه و جلالش
خوشا هر کس که روزی شد وصالش

شهادت امام رضا (ع) تسلیت باد.
🚀 دوره جدید مقدماتی برنامه‌نویسی پایتون

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

🐍 چرا پایتون؟

ساده، خوانا و قدرتمند برای انواع پروژه‌ها

زبان پایه در هوش مصنوعی، یادگیری ماشین و علم داده

کاربردی در توسعه وب، اتوماسیون، رباتیک و پژوهش‌های علمی


🎯 مزایای یادگیری پایتون:

سرمایه‌گذاری بلندمدت روی آینده شغلی و علمی

دروازه ورود به دنیای فناوری‌های نوین


👨‍🏫 مدرس دوره:
یاسر محمودیان – کارشناس ارشد کامپیوتر
مدرس برنامه‌نویسی و هوش مصنوعی
مربی کانون فرهنگی ورزشی شهید صیاد شیرازی بسیج درگز
🎓 مخاطبان: دانش‌آموزان، دانشجویان و علاقه‌مندان (بدون نیاز به پیش‌زمینه)



📍 محل برگزاری دوره:
کانون فرهنگی ورزشی شهید صیاد شیرازی – بسیج درگز

ثبت‌نام و اطلاعات بیشتر:
تلگرام و روبیکا: @PyPlus_Admin
ایتا: @learns_py
اینستاگرام: instagram.com/learns.py


📞 تماس جهت ثبت‌نام یا تحویل مدارک:
۰۹۳۷۰۱۲۲۶۹۱ – آقای ایمان کفاشان (مدیر کانون شهید صیاد شیرازی بسیج درگز)
❤️
«۷ مفهوم کلیدی پایتون که هر برنامه‌نویسی باید بلد باشد». اینم توضیح جمع‌وجور ولی کاربردی هر کدوم—با نکته‌های مهم و چند تکه‌کد:

1. متغیرها و انواع داده



پایتون «داینامیک‌تایپ» است: نوعِ متغیر از روی مقدار مشخص می‌شود.

قابل‌تغییرها: list, dict, set — غیرقابل‌تغییرها: int, float, bool, str, tuple.


x = 3 # int
x = float(x) # 3.0
type(x) # <class 'float'>

2. دستورهای شرطی



if / elif / else + عملگرهای مقایسه (==, !=, <, …) و منطقی (and, or, not).

حواست به truthy/falsy باشد: [], "", 0, None همگی False محسوب می‌شوند.


if name and age >= 18:
print("Adult")
elif age is None:
print("Unknown")
else:
print("Minor")

3. حلقه‌ها (for و while)



for روی هر «قابل‌تکرار» کار می‌کند؛ enumerate برای گرفتن اندیس.

break/continue و حواست به حلقه‌های بی‌پایان while.

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


for i, fruit in enumerate(["apple","banana"]):
print(i, fruit)

# list comprehension
squares = [n*n for n in range(5)] # [0,1,4,9,16]

4. تابع‌ها



پارامترها: موقعیتی، کلیدواژه‌ای، پیش‌فرض، *args و **kwargs.

محدوده‌ٔ دید (LEGB) و بازگشت مقدار؛ بهتره تایپ‌هینت و داک‌استرینگ بنویسی.


def greet(name: str = "World") -> str:
"""Return a friendly greeting."""
return f"Hello, {name}"

5. لیست‌ها و دیکشنری‌ها



لیست: append, pop, sort, slicing.

دیکشنری: get، items، comprehension؛ برای کلیدها از مقادیر هش‌پذیر استفاده کن.


fruits = ["apple","banana","cherry"]
person = {"name":"Alice","age":25}
person.get("job", "N/A") # 'N/A'
ages = {name: len(name) for name in ["Ali","Sara"]} # {'Ali':3,'Sara':4}

6. مدیریت استثنا



همیشه «خاص» بگیر نه Exception کلی؛ از else و finally هم می‌شود بهره برد.


try:
result = 10 / x
except ZeroDivisionError:
result = None
else:
print("OK")
finally:
print("done")

7. کار با فایل



با with خیالت از بستن فایل راحته؛ حالت‌ها: "r","w","a","b", و encoding.

برای مسیرها از pathlib و برای ساختارها از json استفاده کن.


from pathlib import Path
import json

data = {"name":"Alice","age":25}
Path("data.json").write_text(json.dumps(data, ensure_ascii=False), encoding="utf-8")
text = Path("notes.txt").read_text(encoding="utf-8")

نکات طلایی کوتاه:

از f-string برای فرمت متن استفاده کن.

از venv برای جداسازی محیط پروژه‌ها.

کد تمیز = اسم‌گذاری خوب + تابع‌های کوچک + تست‌های ساده (pytest).
🔑 ۷ مفهوم مهم پایتون (نسخه ساده با نکات کامل)

1) متغیر و نوع داده

متغیر = جعبه‌ای که چیزی توش می‌ذاریم.

پایتون خودش نوع داده رو تشخیص می‌ده.

نوع داده‌ها: عدد صحیح (int)، اعشاری (float)، متن (str)، درست/غلط (bool)، لیست (list)، مجموعه (set)، دیکشنری (dict)، تاپل (tuple).


x = 5 # عدد صحیح
y = 3.14 # اعشاری
name = "Ali" # متن
ok = True # درست/غلط


---

2) شرط‌ها (if, elif, else)

برای تصمیم‌گیری استفاده می‌شه.

عملگرها: == برابر، != نابرابر، < کوچکتر، > بزرگتر.

مقدارهای خالی مثل "", 0, [] یعنی «غلط».


if x > 10:
print("بزرگتر از ۱۰")
elif x == 10:
print("برابر ۱۰")
else:
print("کوچکتر از ۱۰")


---

3) حلقه‌ها (for, while)

for برای تکرار روی لیست یا بازه.

while تا وقتی شرط برقرار باشه ادامه می‌ده.

کلیدواژه‌ها: break (شکستن حلقه)، continue (رفتن به دور بعدی).


for fruit in ["سیب", "موز", "گیلاس"]:
print(fruit)

i = 0
while i < 3:
print("i:", i)
i += 1


---

4) تابع‌ها (def)

تابع = دستورهای آماده که خودمون می‌سازیم.

می‌تونه ورودی بگیره و خروجی بده.

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


def greet(name="دوست"):
return f"سلام {name}"

print(greet()) # سلام دوست
print(greet("علی")) # سلام علی


---

5) لیست و دیکشنری

لیست: مجموعه‌ای از چیزها پشت سر هم.

دیکشنری: اطلاعات با «کلید» و «مقدار».

هر دو خیلی پرکاربرد هستن.


fruits = ["سیب", "موز", "گیلاس"]
print(fruits[0]) # سیب

person = {"name": "Ali", "age": 15}
print(person["name"]) # Ali


---

6) مدیریت خطا (try, except)

برنامه همیشه ممکنه خطا بده (مثلاً تقسیم بر صفر).

با try/except جلوی کرش‌کردن برنامه رو می‌گیریم.

می‌تونیم finally هم بذاریم که همیشه اجرا بشه.


try:
result = 10 / 0
except ZeroDivisionError:
print("نمی‌شه تقسیم بر صفر کرد!")
finally:
print("برنامه ادامه دارد...")


---

7) کار با فایل‌ها

می‌تونیم از فایل بخونیم یا داخلش بنویسیم.

with باعث می‌شه فایل خودش بسته بشه.

حالت‌ها: "r" (خواندن)، "w" (نوشتن)، "a" (اضافه کردن).


with open("info.txt", "w", encoding="utf-8") as f:
f.write("سلام دنیا!")

with open("info.txt", "r", encoding="utf-8") as f:
print(f.read())
تحقیق کامل درباره Dynamic Typing در پایتون

1. مقدمه

زبان‌های برنامه‌نویسی بر اساس نحوه‌ی مدیریت نوع داده‌ها (Type System) به دو دسته کلی تقسیم می‌شوند:

Static Typing (ایستا)

Dynamic Typing (پویا)


پایتون یک زبان Dynamic Typed است. یعنی نوع متغیرها در زمان اجرای برنامه (Runtime) تعیین می‌شود، نه در زمان کامپایل (Compile-time). این ویژگی باعث انعطاف‌پذیری بالای پایتون می‌شود اما در عین حال چالش‌هایی هم به همراه دارد.


---

2. تعریف Dynamic Typing

در زبان‌های داینامیک تایپ مثل پایتون:

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

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

یک متغیر می‌تواند در طول اجرای برنامه چندین بار نوعش تغییر کند.


مثال:

x = 10 # x یک int است
print(type(x))

x = "hello" # حالا x یک str شده
print(type(x))

x = [1, 2, 3] # و حالا x یک list است
print(type(x))


---

3. مقایسه با Static Typing

در زبان‌های Static Typed مثل Java یا C++، شما باید نوع متغیر را از ابتدا مشخص کنید و بعداً نمی‌توانید آن را تغییر دهید.

مثال در جاوا:

int x = 10;
x = "hello"; // خطا: نمی‌توان رشته را به int نسبت داد

در پایتون، چنین محدودیتی وجود ندارد.


---

4. مزایای Dynamic Typing در پایتون

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

مثال:

def add(a, b):
return a + b

print(add(5, 10)) # جمع دو عدد
print(add("hi ", "py")) # الحاق دو رشته


---

5. معایب Dynamic Typing

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

مثال خطا:

def divide(a, b):
return a / b

print(divide(10, 2)) # درست
print(divide("10", 2)) # خطا در زمان اجرا


---

6. نقش Duck Typing در پایتون

پایتون از مفهومی به نام Duck Typing استفاده می‌کند:

> اگر چیزی مثل اردک راه می‌رود و مثل اردک صدا می‌کند، پس اردک است!



یعنی پایتون کمتر به نوع داده‌ها اهمیت می‌دهد و بیشتر به رفتار آن‌ها (متدها و عملگرهای پشتیبانی‌شده) توجه دارد.

مثال:

class Duck:
def quack(self):
print("Quack!")

class Person:
def quack(self):
print("I’m pretending to be a duck!")

def make_it_quack(duck_like):
duck_like.quack()

make_it_quack(Duck()) # Quack!
make_it_quack(Person()) # I’m pretending to be a duck!


---

7. Type Hinting (اشاره‌گر نوع) در پایتون

از نسخه Python 3.5 به بعد، امکان Type Hints اضافه شد.
این قابلیت اجازه می‌دهد نوع متغیرها را مشخص کنید اما همچنان اجباری نیست و در زمان اجرا بررسی نمی‌شود؛ فقط ابزارهایی مثل mypy یا IDE می‌توانند آن را بررسی کنند.

مثال با Type Hint:

def greet(name: str) -> str:
return "Hello, " + name

print(greet("Ali")) # درست
print(greet(123)) # خطا در mypy (ولی پایتون اجرا می‌کند!)


---

8. کارایی (Performance)

از آنجایی که پایتون باید در زمان اجرا نوع هر متغیر را بررسی کند، سرعت آن نسبت به زبان‌های استاتیک تایپ کمتر است.
با این حال، انعطاف‌پذیری بالای آن باعث شده برای توسعه سریع (Rapid Development) بسیار محبوب باشد.


---

9. جمع‌بندی

پایتون یک زبان داینامیک تایپ است.

نوع متغیرها در زمان اجرا مشخص می‌شود و می‌تواند تغییر کند.

این ویژگی باعث سادگی، انعطاف‌پذیری و سرعت در توسعه می‌شود.

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

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

الف) حلقه for

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

مثال روی لیست:


fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)

ب) حلقه while

تا وقتی شرط True باشد، تکرار می‌کند.


i = 0
while i < 5:
print(i)
i += 1


---

2. روش‌های حلقه زدن روی داده‌ها

2.1 روی لیست

numbers = [1, 2, 3, 4, 5]
for n in numbers:
print(n)

2.2 روی رشته

word = "Python"
for letter in word:
print(letter)

2.3 روی دیکشنری

person = {"name": "Ali", "age": 25}
for key in person:
print(key, person[key])

# یا
for key, value in person.items():
print(key, value)

2.4 با تابع range()

برای تکرار به تعداد مشخص:


for i in range(5):
print(i)


---

3. روش‌های پیشرفته‌تر

3.1 حلقه‌های تو در تو (Nested Loops)

matrix = [[1,2,3],[4,5,6]]
for row in matrix:
for item in row:
print(item)

3.2 حلقه با شرط (List Comprehension)

روشی کوتاه و پایتونیک برای حلقه:


squares = [x**2 for x in range(5)]
print(squares)

3.3 استفاده از enumerate

برای دسترسی به اندیس و مقدار همزمان:


fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
print(index, fruit)

3.4 استفاده از zip

برای حلقه زدن روی چند لیست همزمان:


names = ["Ali", "Sara"]
ages = [25, 30]
for name, age in zip(names, ages):
print(name, age)


---

4. دستورات کنترلی در حلقه‌ها

break: خروج از حلقه

continue: رد کردن تکرار فعلی

else در حلقه: وقتی حلقه بدون break تمام شود


for i in range(5):
if i == 3:
break
print(i)
else:
print("تمام شد!") # اجرا نمی‌شود چون break اتفاق افتاد
🔹 یادگیری برنامه‌نویسی یعنی تمرین، تجربه و چالش 🔹

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

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

پس آماده باشید برای یک مسیر پر از تمرین، خلاقیت و یادگیری عمیق 🚀
سلام بچه‌ها 🌹

نمونه‌سوالات خیلی خوبی برامون ارسال شده.
ما ۲۰ سؤال مطابق دروس تدریس‌شده آماده کردیم که می‌تونید از هر سطح ساده، متوسط و سخت انتخاب کنید و حل کنید:
🔗 لینک سوالات
https://eitaa.com/85334588/1160

لطفاً وقتی می‌خواید روی یک سؤال کار کنید:

1. شماره سؤال رو بنویسید.


2. کد تایپی جواب رو داخل گروه بذارید.


3. ۲ تا ۳ عکس یا یک فیلم کوتاه از اجرای کد و خروجی هم بذارید تا مطمئن بشیم درست اجرا شده.



📌 مثال:
سؤال: پیدا کردن بزرگترین عدد
کد تایپی + عکس/فیلم اجرای خروجی

این کار باعث میشه:

بقیه دوستان همون سؤال رو تکراری نفرستن.

همه روش‌های مختلف حل رو ببینیم و یاد بگیریم.

مطمئن بشیم کد اجرا میشه و جواب درست داده.


🙏 همچنین از همه دوستانی که تا الان تمرین‌ها رو ارسال کردند تشکر می‌کنیم.

۱. آقای محمدصالح قادریان
۲.آقای جعفرزاده

توجه و تلاش شما نشون میده آموزش‌ها رو جدی دنبال می‌کنید.
✔️ یادتون باشه حل همین سوالات بیشترین تأثیر رو در تثبیت و درک عمیق مفاهیم داره.

👏 خسته نباشید به همه شما و همین‌طور پرقدرت ادامه بدید 🚀