دوره جامع برنامهنویسی پایتون
یادگیری آسان، قدرتمندی بینظیر. تبدیل شوید به یک توسعهدهنده همهکاره با این دوره کامل که از پایه تا پیشرفته، وباسکرپینگ، دادهکاوی و یادگیری ماشین را پوشش میدهد.
🎓 آموزش تعاملی گام به گام
روی هر درس کلیک کنید تا باز شود و محتوای آموزشی را مشاهده کنید. تمام درسها شامل مثالهای تعاملی هستند.
مقدمه و متغیرها در پایتون
آشنایی با محیط، انواع داده و عملیات پایه
پایتون - زبان برنامهنویسی دوستداشتنی
پایتون یک زبان برنامهنویسی سطح بالا، تفسیری و چندمنظوره است که در سال 1991 توسط گیدو فان روسوم ایجاد شد. سادگی و خوانایی بالا باعث شده پایتون انتخاب اول برای مبتدیان و حرفهایها باشد.
مفهوم کلیدی
پایتون یک زبان تفسیری است، یعنی نیازی به کامپایل ندارد و کد خط به خط اجرا میشود. همچنین از تورفتگی (Indentation) برای تعریف بلوکهای کد استفاده میکند.
اولین برنامه در پایتون
تمرین:
برنامهای بنویسید که سن کاربر را بگیرد و محاسبه کند چند سال دیگر به 100 سالگی میرسد.
برای دریافت ورودی از کاربر از تابع input() استفاده کنید. به یاد داشته باشید که input() همیشه یک رشته برمیگرداند.
برای تبدیل رشته به عدد از int() استفاده کنید: age = int(input("سن شما: "))
نکات طلایی:
- پایتون نیازی به تعیین نوع متغیر ندارد (Dynamic Typing)
- تورفتگی (Indentation) در پایتون اجباری است
- از # برای کامنت تک خطی و ''' ''' برای کامنت چند خطی استفاده میشود
- f-string بهترین روش برای فرمتبندی رشتهها است
- پایتون به حروف کوچک و بزرگ حساس است (Case Sensitive)
آزمون پایان جلسه - مقدمه پایتون
سوال ۱: در پایتون برای تعریف بلوک کد از چه چیزی استفاده میشود؟
سوال ۲: کدام روش بهترین برای فرمتبندی رشتهها در پایتون ۳.۶+ است؟
سوال ۳: تابع input() چه نوع دادهای برمیگرداند؟
نتایج آزمون
ساختارهای کنترل و حلقهها
دستورات شرطی و تکرار در پایتون
کنترل جریان در پایتون
دستورات شرطی و حلقهها به برنامه اجازه میدهند تا بر اساس شرایط مختلف تصمیمگیری کند یا کارها را به صورت تکراری انجام دهد.
کنترل جریان در پایتون
مقایسه انواع حلقهها
| نوع حلقه | کاربرد اصلی | نحوه استفاده | مثال |
|---|---|---|---|
for |
تکرار روی دنبالهها | وقتی تعداد تکرار مشخص است | for i in range(10): |
while |
تکرار با شرط | وقتی شرط نامشخص است | while x > 0: |
نکات طلایی کنترل جریان:
- در پایتون نیازی به پرانتز دور شرط نیست (اما میتوان استفاده کرد)
- از
elifبه جایelse ifاستفاده میشود - حلقه
forدر پایتون روی اشیاء قابل پیمایش (Iterable) کار میکند - تابع
range(start, stop, step)برای تولید دنباله اعداد استفاده میشود - میتوان به حلقه
forیکelseاضافه کرد که بعد از اتمام حلقه اجرا میشود
آزمون پایان جلسه - کنترل جریان
سوال ۱: خروجی range(5) چیست؟
سوال ۲: کدام دستور برای خروج زودهنگام از حلقه استفاده میشود؟
سوال ۳: شرط if not x: چه زمانی True میشود؟
نتایج آزمون
ساختارهای داده
لیست، تاپل، دیکشنری و مجموعهها
ساختارهای داده در پایتون
پایتون چهار ساختار داده اصلی دارد که هر کدام کاربرد خاص خود را دارند. انتخاب ساختار داده مناسب میتواند عملکرد برنامه را به شدت بهبود بخشد.
ساختارهای داده در پایتون
نکات طلایی ساختارهای داده:
- لیستها: ترتیب مهم، قابل تغییر، عناصر تکراری مجاز
- تاپلها: ترتیب مهم، غیرقابل تغییر، عناصر تکراری مجاز
- دیکشنریها: کلید-مقدار، بدون ترتیب (از پایتون 3.7 ترتیب حفظ میشود)، کلیدها یکتا
- مجموعهها: بدون ترتیب، عناصر یکتا، قابل تغییر
- درک لیست (List Comprehension) روشی مختصر و خوانا برای ایجاد لیستهاست
- از
inبرای بررسی وجود عنصر در ساختار داده استفاده میشود
مقایسه ساختارهای داده
| ساختار | قابل تغییر | ترتیب | عناصر تکراری | ایندکس |
|---|---|---|---|---|
| لیست | ✅ بله | ✅ حفظ میشود | ✅ مجاز | ✅ عددی |
| تاپل | ❌ خیر | ✅ حفظ میشود | ✅ مجاز | ✅ عددی |
| دیکشنری | ✅ بله | ✅ از 3.7 | ❌ فقط کلیدها | ✅ کلیدی |
| مجموعه | ✅ بله | ❌ خیر | ❌ خیر | ❌ ندارد |
آزمون پایان جلسه - ساختارهای داده
سوال ۱: کدام ساختار داده غیرقابل تغییر (Immutable) است؟
سوال ۲: برای ایجاد یک تاپل تک عنصری باید چه کرد؟
سوال ۳: کدام روش برای ایجاد لیست مربع اعداد 1 تا 5 صحیح است؟
نتایج آزمون
توابع و ماژولها
تعریف توابع، توابع لامبدا و مدیریت ماژولها
برنامهنویسی ماژولار با توابع
توابع به ما امکان تقسیم برنامه به بخشهای کوچکتر و قابل استفاده مجدد میدهند. ماژولها نیز به سازماندهی کد در فایلهای مختلف کمک میکنند.
توابع و ماژولها در پایتون
نکات طلایی توابع:
- از docstring برای مستندسازی توابع استفاده کنید (
"""مستندات""") - پارامترهای پیشفرض باید بعد از پارامترهای اجباری بیایند
*argsبرای پارامترهای متغیر نامنشده استفاده میشود**kwargsبرای پارامترهای متغیر نامدار استفاده میشود- توابع لامبدا برای توابع یک خطی و ساده مناسباند
- از
importبرای استفاده از ماژولها استفاده میشود - دکوراتورها برای تغییر رفتار توابع بدون تغییر کد اصلی استفاده میشوند
آزمون پایان جلسه - توابع و ماژولها
سوال ۱: کدام گزینه تعریف صحیح تابع لامبدا برای محاسبه مربع است؟
سوال ۲: پارامتر *args چه کاری انجام میدهد؟
سوال ۳: کدام روش برای وارد کردن فقط تابع sqrt از ماژول math صحیح است؟
نتایج آزمون
شیءگرایی در پایتون
کلاسها، اشیاء، وراثت و چندریختی
برنامهنویسی شیءگرا (OOP) در پایتون
برنامهنویسی شیءگرا یک پارادایم برنامهنویسی است که بر اساس "اشیاء" بنا شده است. پایتون به طور کامل از OOP پشتیبانی میکند.
شیءگرایی در پایتون
نکات طلایی شیءگرایی:
- کلاس: الگو یا قالب برای ایجاد اشیاء
- شیء: نمونهای از یک کلاس
- وراثت: امکان استفاده مجدد از کد کلاس والد
- کپسولهسازی: مخفی کردن جزئیات پیادهسازی
- چندریختی: توانایی یک متد برای رفتار متفاوت بر اساس شیء
- متد
__init__constructor کلاس است - ویژگیهای خصوصی با دو زیرخط شروع میشوند (
__private) - از
super()برای دسترسی به کلاس والد استفاده میشود - دکوراتورهای
@classmethod,@staticmethod,@propertyمفید هستند
چهار رکن برنامهنویسی شیءگرا
| مفهوم | توضیح | مثال در پایتون |
|---|---|---|
| کپسولهسازی | مخفی کردن جزئیات پیادهسازی | self.__balance |
| وراثت | استفاده مجدد از کد کلاس والد | class Student(Person): |
| چندریختی | رفتار متفاوت متدها بر اساس شیء | def introduce() در کلاسهای مختلف |
| انتزاع | نمایش ویژگیهای ضروری و مخفی کردن جزئیات | کلاسهای انتزاعی با ABC |
آزمون پایان جلسه - شیءگرایی
سوال ۱: کدام متد constructor کلاس در پایتون است؟
سوال ۲: چگونه ویژگی خصوصی در پایتون تعریف میشود؟
سوال ۳: از کدام تابع برای دسترسی به constructor کلاس والد استفاده میشود؟
نتایج آزمون
🚀 دروس پیشرفته در راه است!
ما به شدت در حال تولید دروس جدید و پیشرفتهتری هستیم. این دروس به زودی اضافه خواهند شد:
وباسکرپینگ
استخراج داده از وب با BeautifulSoup و Scrapy
یادگیری ماشین
ایجاد مدلهای هوش مصنوعی با Scikit-learn
توسعه وب با Django
ساخت اپلیکیشنهای وب کامل
تحلیل داده با Pandas
کار با دادههای بزرگ و تجزیه و تحلیل
دروس جدید هر هفته منتشر میشوند!