خانه دوره‌ها مدرس‌ها تیم ما ارتباط با ما
محبوب‌ترین زبان برنامه‌نویسی

🚀 دوره جامع برنامه‌نویسی پایتون 💫

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

۵۰+ ساعت آموزش
۲۰۰+ تمرین عملی
۳۰ پروژه واقعی
۴.۹ رضایت دانشجویان

🎓 آموزش تعاملی گام به گام

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

۱

مقدمه و متغیرها در پایتون

آشنایی با محیط، انواع داده و عملیات پایه

۱۵ دقیقه

پایتون - زبان برنامه‌نویسی دوست‌داشتنی

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

مفهوم کلیدی

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

اولین برنامه در پایتون
hello.py
تمرین:

برنامه‌ای بنویسید که سن کاربر را بگیرد و محاسبه کند چند سال دیگر به 100 سالگی می‌رسد.

برای دریافت ورودی از کاربر از تابع input() استفاده کنید. به یاد داشته باشید که input() همیشه یک رشته برمی‌گرداند.

برای تبدیل رشته به عدد از int() استفاده کنید: age = int(input("سن شما: "))

نکات طلایی:
  • پایتون نیازی به تعیین نوع متغیر ندارد (Dynamic Typing)
  • تورفتگی (Indentation) در پایتون اجباری است
  • از # برای کامنت تک خطی و ''' ''' برای کامنت چند خطی استفاده می‌شود
  • f-string بهترین روش برای فرمت‌بندی رشته‌ها است
  • پایتون به حروف کوچک و بزرگ حساس است (Case Sensitive)

آزمون پایان جلسه - مقدمه پایتون

سوال ۱: در پایتون برای تعریف بلوک کد از چه چیزی استفاده می‌شود؟
الف
{} (آکولاد)
ب
تورفتگی (Indentation)
ج
; (سمی‌کالن)
سوال ۲: کدام روش بهترین برای فرمت‌بندی رشته‌ها در پایتون ۳.۶+ است؟
الف
% formatting
ب
str.format()
ج
f-string
سوال ۳: تابع input() چه نوع داده‌ای برمی‌گرداند؟
الف
عدد صحیح (int)
ب
رشته (str)
ج
بستگی به ورودی دارد
نتایج آزمون

۲

ساختارهای کنترل و حلقه‌ها

دستورات شرطی و تکرار در پایتون

۲۰ دقیقه

کنترل جریان در پایتون

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

کنترل جریان در پایتون
control_flow.py
مقایسه انواع حلقه‌ها
نوع حلقه کاربرد اصلی نحوه استفاده مثال
for تکرار روی دنباله‌ها وقتی تعداد تکرار مشخص است for i in range(10):
while تکرار با شرط وقتی شرط نامشخص است while x > 0:
نکات طلایی کنترل جریان:
  • در پایتون نیازی به پرانتز دور شرط نیست (اما می‌توان استفاده کرد)
  • از elif به جای else if استفاده می‌شود
  • حلقه for در پایتون روی اشیاء قابل پیمایش (Iterable) کار می‌کند
  • تابع range(start, stop, step) برای تولید دنباله اعداد استفاده می‌شود
  • می‌توان به حلقه for یک else اضافه کرد که بعد از اتمام حلقه اجرا می‌شود

آزمون پایان جلسه - کنترل جریان

سوال ۱: خروجی range(5) چیست؟
الف
[0, 1, 2, 3, 4]
ب
[1, 2, 3, 4, 5]
ج
[0, 1, 2, 3, 4, 5]
سوال ۲: کدام دستور برای خروج زودهنگام از حلقه استفاده می‌شود؟
الف
continue
ب
break
ج
pass
سوال ۳: شرط if not x: چه زمانی True می‌شود؟
الف
وقتی x برابر True باشد
ب
وقتی x برابر False باشد
ج
وقتی x بزرگتر از 0 باشد
نتایج آزمون

۳

ساختارهای داده

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

۲۵ دقیقه

ساختارهای داده در پایتون

پایتون چهار ساختار داده اصلی دارد که هر کدام کاربرد خاص خود را دارند. انتخاب ساختار داده مناسب می‌تواند عملکرد برنامه را به شدت بهبود بخشد.

ساختارهای داده در پایتون
data_structures.py
نکات طلایی ساختارهای داده:
  • لیست‌ها: ترتیب مهم، قابل تغییر، عناصر تکراری مجاز
  • تاپل‌ها: ترتیب مهم، غیرقابل تغییر، عناصر تکراری مجاز
  • دیکشنری‌ها: کلید-مقدار، بدون ترتیب (از پایتون 3.7 ترتیب حفظ می‌شود)، کلیدها یکتا
  • مجموعه‌ها: بدون ترتیب، عناصر یکتا، قابل تغییر
  • درک لیست (List Comprehension) روشی مختصر و خوانا برای ایجاد لیست‌هاست
  • از in برای بررسی وجود عنصر در ساختار داده استفاده می‌شود
مقایسه ساختارهای داده
ساختار قابل تغییر ترتیب عناصر تکراری ایندکس
لیست ✅ بله ✅ حفظ می‌شود ✅ مجاز ✅ عددی
تاپل ❌ خیر ✅ حفظ می‌شود ✅ مجاز ✅ عددی
دیکشنری ✅ بله ✅ از 3.7 ❌ فقط کلیدها ✅ کلیدی
مجموعه ✅ بله ❌ خیر ❌ خیر ❌ ندارد

آزمون پایان جلسه - ساختارهای داده

سوال ۱: کدام ساختار داده غیرقابل تغییر (Immutable) است؟
الف
لیست
ب
تاپل
ج
دیکشنری
سوال ۲: برای ایجاد یک تاپل تک عنصری باید چه کرد؟
الف
(42)
ب
(42,)
ج
42
سوال ۳: کدام روش برای ایجاد لیست مربع اعداد 1 تا 5 صحیح است؟
الف
[x**2 for x in range(1, 6)]
ب
{x**2 for x in range(1, 6)}
ج
(x**2 for x in range(1, 6))
نتایج آزمون

۴

توابع و ماژول‌ها

تعریف توابع، توابع لامبدا و مدیریت ماژول‌ها

۲۵ دقیقه

برنامه‌نویسی ماژولار با توابع

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

توابع و ماژول‌ها در پایتون
functions_modules.py
نکات طلایی توابع:
  • از docstring برای مستندسازی توابع استفاده کنید ("""مستندات""")
  • پارامترهای پیش‌فرض باید بعد از پارامترهای اجباری بیایند
  • *args برای پارامترهای متغیر نام‌نشده استفاده می‌شود
  • **kwargs برای پارامترهای متغیر نام‌دار استفاده می‌شود
  • توابع لامبدا برای توابع یک خطی و ساده مناسب‌اند
  • از import برای استفاده از ماژول‌ها استفاده می‌شود
  • دکوراتورها برای تغییر رفتار توابع بدون تغییر کد اصلی استفاده می‌شوند

آزمون پایان جلسه - توابع و ماژول‌ها

سوال ۱: کدام گزینه تعریف صحیح تابع لامبدا برای محاسبه مربع است؟
الف
lambda x: x * x
ب
def square(x): return x*x
ج
square = lambda x: x**2
سوال ۲: پارامتر *args چه کاری انجام می‌دهد؟
الف
پارامترهای نام‌دار متغیر را دریافت می‌کند
ب
پارامترهای نام‌نشده متغیر را دریافت می‌کند
ج
فقط یک پارامتر دریافت می‌کند
سوال ۳: کدام روش برای وارد کردن فقط تابع sqrt از ماژول math صحیح است؟
الف
import math
ب
from math import sqrt
ج
import sqrt from math
نتایج آزمون

۵

شیء‌گرایی در پایتون

کلاس‌ها، اشیاء، وراثت و چندریختی

۳۰ دقیقه

برنامه‌نویسی شیء‌گرا (OOP) در پایتون

برنامه‌نویسی شیء‌گرا یک پارادایم برنامه‌نویسی است که بر اساس "اشیاء" بنا شده است. پایتون به طور کامل از OOP پشتیبانی می‌کند.

شیء‌گرایی در پایتون
oop.py
نکات طلایی شیء‌گرایی:
  • کلاس: الگو یا قالب برای ایجاد اشیاء
  • شیء: نمونه‌ای از یک کلاس
  • وراثت: امکان استفاده مجدد از کد کلاس والد
  • کپسوله‌سازی: مخفی کردن جزئیات پیاده‌سازی
  • چندریختی: توانایی یک متد برای رفتار متفاوت بر اساس شیء
  • متد __init__ constructor کلاس است
  • ویژگی‌های خصوصی با دو زیرخط شروع می‌شوند (__private)
  • از super() برای دسترسی به کلاس والد استفاده می‌شود
  • دکوراتورهای @classmethod, @staticmethod, @property مفید هستند
چهار رکن برنامه‌نویسی شیء‌گرا
مفهوم توضیح مثال در پایتون
کپسوله‌سازی مخفی کردن جزئیات پیاده‌سازی self.__balance
وراثت استفاده مجدد از کد کلاس والد class Student(Person):
چندریختی رفتار متفاوت متدها بر اساس شیء def introduce() در کلاس‌های مختلف
انتزاع نمایش ویژگی‌های ضروری و مخفی کردن جزئیات کلاس‌های انتزاعی با ABC

آزمون پایان جلسه - شیء‌گرایی

سوال ۱: کدام متد constructor کلاس در پایتون است؟
الف
__init__
ب
__new__
ج
__construct__
سوال ۲: چگونه ویژگی خصوصی در پایتون تعریف می‌شود؟
الف
با single underscore: _private
ب
با double underscore: __private
ج
با کلمه کلیدی private
سوال ۳: از کدام تابع برای دسترسی به constructor کلاس والد استفاده می‌شود؟
الف
parent()
ب
super()
ج
self.parent()
نتایج آزمون

🚀 دروس پیشرفته در راه است!

ما به شدت در حال تولید دروس جدید و پیشرفته‌تری هستیم. این دروس به زودی اضافه خواهند شد:

🕸️

وب‌اسکرپینگ

استخراج داده از وب با BeautifulSoup و Scrapy

🤖

یادگیری ماشین

ایجاد مدل‌های هوش مصنوعی با Scikit-learn

🌐

توسعه وب با Django

ساخت اپلیکیشن‌های وب کامل

📊

تحلیل داده با Pandas

کار با داده‌های بزرگ و تجزیه و تحلیل

دروس جدید هر هفته منتشر می‌شوند!