آموزش گام‌به‌گام پایتون برای مبتدیان

قسمت ۱: پایتون چیست و چرا باید یادش بگیریم؟

پایتون چیست؟
پایتون یک زبان برنامه‌نویسی ساده و قدرتمند است که یادگیری آن برای تازه‌کارها بسیار آسان است.

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

چرا باید یادش بگیریم؟

  • آسانی: پایتون یکی از راحت‌ترین زبان‌های برنامه‌نویسی دنیاست. اگر تازه‌کار هستید، بهترین انتخاب است.
  • محبوبیت: شرکت‌های بزرگی مثل گوگل و فیسبوک از پایتون استفاده می‌کنند.
  • کاربرد گسترده: پایتون تقریباً در هر زمینه‌ای از فناوری و کارهای روزمره خود را جا کرده‌است.

تمرین فکری:
با خود فکر کنید چرا یادگیری برنامه‌نویسی می‌تواند مسیر زندگی شما را تغییر دهد؟

قسمت ۲: نصب و راه‌اندازی پایتون

مرحله ۱: دانلود پایتون

  1. به وب‌سایت رسمی پایتون بروید: Python.org
  2. نسخه‌ای که با سیستم‌عامل شما هماهنگ است (Windows، Mac یا Linux) را پیدا کنید (معمولاً گزینه "Download Python" را ببینید).
  3. روی دکمه‌ی دانلود کلیک کنید.

مرحله ۲: نصب پایتون

  1. فایل دانلود‌شده را باز کنید.
  2. در پنجره‌ی نصب، مطمئن شوید گزینه‌ی "Add Python to PATH" فعال شده است (این گزینه بسیار مهم است).
  3. روی Install کلیک کنید.

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

مرحله ۳: اولین تست اجرای پایتون
پس از نصب، برای اینکه مطمئن شوید همه چیز درست انجام شده، مراحل زیر را انجام دهید:

  1. IDLE (نرم‌افزار پایتون) را باز کنید.
  2. در آن، این خط کد را تایپ کنید و دکمه Enter را بزنید:
print("Hello, Python!")
  1. اگر همه چیز درست باشد، شما باید کلمه‌ی Hello, Python! را روی صفحه ببینید.

توضیحات خط‌به‌خط:

  • print: این دستور به کامپیوتر می‌گوید چیزی را روی صفحه نمایش نشان بده.
  • "Hello, Python!": متن داخل گیومه چیزی است که نمایش داده می‌شود.

تمرین ساده:

  1. متنی مثل "من تازه شروع کردم!" را با دستور print روی صفحه نمایش بدهید.
  2. عدد یا جمع دو عدد مثل 5 + 3 را چاپ کنید.

قسمت ۳: متغیرها و انواع داده‌ها (Variables and Data Types)

متغیر چیست؟

در دنیای برنامه‌نویسی، متغیرها مثل جعبه‌هایی هستند که اطلاعات (مثل اعداد یا متن‌ها) را ذخیره می‌کنند.

  • برای مثال، اگر می‌خواهید نام یک فرد را ذخیره کنید، می‌توانید از یک متغیر به نام name استفاده کنید.
ایجاد یک متغیر

می‌توانید متغیرها را به روش زیر ایجاد کنید:

name = "Ali"
age = 25

توضیحات خط‌به‌خط:

  • name و age: نام‌هایی که برای متغیر انتخاب می‌کنید (می‌توانید هر نامی انتخاب کنید، فقط نباید با قوانین زبان پایتون تناقض داشته باشد).
  • "Ali": این متن (داخل گیومه) به متغیر name اختصاص داده می‌شود.
  • 25: این عدد به متغیر age اختصاص داده می‌شود.

چگونه از متغیر استفاده کنیم؟

بعد از اینکه متغیر را ساختید، می‌توانید از آن در کدهای خودتان استفاده کنید:

print("نام من:", name)
print("سن من:", age)

انواع داده‌ها چیست؟

هر متغیر می‌تواند نوع خاصی از داده‌ها را ذخیره کند. چند نوع داده‌ی رایج در پایتون:

  1. اعداد (Integer/Float): برای ذخیره اعداد کامل (مثلاً 10) یا اعداد اعشاری (مثلاً 10.5).
  2. متن‌ها (String): برای ذخیره متن‌ها (مثل "سلام").
  3. منطق‌ها (Boolean): برای ذخیره جواب‌های منطقی (True یا False).

مثال برای هر نوع داده

number = 10        # عدد کامل
pi = 3.14          # عدد اعشاری
greeting = "سلام"  # متن
is_active = True   # مقدار منطقی (درست یا نادرست)

تمرین ساده:

  1. متغیری به نام city ایجاد کرده و اسم شهری را در آن ذخیره کنید.
  2. متغیری به نام grade ایجاد کرده و یک عدد اعشاری وارد کنید (مثلاً 85.4).
  3. عبارت "من در [city] زندگی می‌کنم و معدل من [grade] است." را چاپ کنید.

قسمت ۴: دستور ورودی و خروجی (Input and Output)

دستور ورودی چیست؟

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

مثال ساده
name = input("لطفاً نام خود را وارد کنید: ")
print("سلام،", name, "خوش آمدید!")

توضیحات خط‌به‌خط:

  • input: این دستور از کاربر می‌خواهد مقداری وارد کند.
  • "لطفاً نام خود را وارد کنید: ": این متن جلوی کاربر نمایش داده می‌شود تا او را راهنمایی کند.
  • print: اطلاعات وارد‌شده توسط کاربر را روی صفحه نمایش می‌دهد.

تمرین ساده:

  1. برنامه‌ای بنویسید که از کاربر سوال کند "عدد موردنظر خود را وارد کنید:". عدد وارد‌شده را چاپ کنید.
  2. بخشی اضافه کنید که دو عدد از کاربر بگیرد و جمع آنها را نمایش دهد.

قسمت ۵: دستورات شرطی (if/else)

دستورات شرطی چیست؟

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

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

این دستور به شکل زیر است:

if شرط:
    کاری که باید انجام شود

مثال ساده

age = 18

if age >= 18:
    print("شما مجاز به رانندگی هستید.")

توضیحات خط‌به‌خط:

  • if: به معنی "اگر" است. یعنی اگر شرطی که بعد از آن نوشته شده درست باشد، کاری را انجام بده.
  • شرط (age >= 18): بررسی می‌کند آیا سن بیشتر یا مساوی ۱۸ است.
  • کاری که باید انجام شود: اگر شرط درست باشد، متن "شما مجاز به رانندگی هستید." چاپ می‌شود.

حالت "در غیر این صورت" (else)

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

age = 16

if age >= 18:
    print("شما مجاز به رانندگی هستید.")
else:
    print("از حداقل سن مجاز برای رانندگی کمتر هستید.")

تابع‌های شرطی پیشرفته‌تر (elif)

اگر بیش از یک شرط داشته باشید، می‌توانید از elif (مخفف else if) استفاده کنید:

grade = 85

if grade >= 90:
    print("عالی")
elif grade >= 75:
    print("خوب")
else:
    print("نیاز به بهبود داری")

تمرین ساده:

  1. برنامه‌ای بنویسید که سن کاربر را بپرسد و پیامی مناسب درباره مجوز رانندگی چاپ کند (مثل مثال‌های بالا).
  2. برنامه‌ای که معدل کاربر را بگیرد و یکی از پیام‌های "قبول شدی!" یا "نیاز به تلاش بیشتر داری" را چاپ کند.

قسمت ۶: حلقه‌ها (Loops)

چرا حلقه‌ها مفید هستند؟

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

حلقه for

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

مثال ساده
fruits = ["سیب", "موز", "پرتقال"]

for fruit in fruits:
    print(fruit)

توضیحات خط‌به‌خط:

  • fruits: یک لیست که شامل چند میوه است.
  • for fruit in fruits: این دستور می‌گوید که هر بار یک میوه از لیست بردار.
  • print(fruit): اسم میوه‌های یکی‌یکی چاپ می‌شود.

تمرین ساده:

  1. یک لیست از ۳ عدد موردعلاقه‌تان بسازید و سپس با استفاده از حلقه for آنها را چاپ کنید.

حلقه while

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

مثال ساده
count = 0

while count < 5:
    print(count)
    count += 1  # عدد ۱ به متغیر اضافه می‌شود

توضیحات خط‌به‌خط:

  • count = 0: متغیری که شمارش را نگه‌ می‌دارد.
  • while count < 5: شرط می‌گوید تا زمانی که count کمتر از ۵ است حلقه ادامه یابد.
  • count += 1: در هر بار اجرای حلقه، ۱ به شمارش اضافه می‌شود.

قسمت ۷: معرفی توابع (Functions)

چرا از توابع استفاده کنیم؟

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

ساختار ساده یک تابع
def greet(name):
    print(f"سلام، {name}!")

توضیحات خط‌به‌خط:

  • def: کلمه کلیدی برای تعریف یک تابع است.
  • greet: نام تابعی است که تعریف می‌کنیم.
  • (name): این قسمت متغیری است که به تابع فرستاده می‌شود.
  • print: کاری که تابع انجام می‌دهد؛ در اینجا چاپ یک پیام است.
مثال استفاده از تابع
greet("علی")
greet("نگار")

تمرین ساده:

  1. تابعی بنویسید که نام کاربر را گرفته و پیامی خوش‌آمدگویی چاپ کند.
  2. تابعی بنویسید که دو عدد گرفته و جمع آنها را چاپ کند.

شی‌گرایی چیست؟

تعریف ساده:

شی‌گرایی یک روش خاص برای برنامه‌نویسی است که در آن کد را به صورت "شیءها" سازمان‌دهی می‌کنیم. شیءها چیزهایی هستند که ویژگی‌ها (Attributes) و رفتارها (Methods) دارند.

مثال روزمره:
فکر کنید به یک خودروی واقعی نگاه می‌کنید:

  • ویژگی‌ها: رنگ خودرو، برند، مدل، سال ساخت.
  • رفتارها (کارهایی که انجام می‌دهد): سرعت گرفتن، ترمز کردن، روشن و خاموش شدن.

در شی‌گرایی، ما این ویژگی‌ها و رفتارها را در قالب کلاس‌ها و اشیاء تعریف می‌کنیم.

مرحله ۱: کلاس‌ها چیستند؟

تعریف کلاس:

کلاس یک "طرح کلی" یا قالب است که ویژگی‌ها و رفتارهای یک شیء را تعریف می‌کند.

چطور کلاس بسازیم؟

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

مثال ساختن کلاس ساده
class Car:
    pass  # اینجا فعلاً چیزی تعریف نمی‌کنیم

توضیح خط‌به‌خط:

  • class: کلمه کلیدی برای تعریف یک کلاس است.
  • Car: اسم کلاس (در اینجا ماشین است، می‌توانید هر اسم مناسبی انتخاب کنید).
  • pass: این کلمه یعنی فعلاً هیچ کاری داخل کلاس انجام نشده.

مرحله ۲: اشیاء چیستند؟

تعریف شیء:

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

مثال ایجاد شیء از کلاس
my_car = Car()
print(my_car)

توضیح خط‌به‌خط:

  • my_car: یک شیء جدید از کلاس Car.
  • Car(): این دستور یک نمونه از کلاس Car می‌سازد.

مرحله ۳: اضافه کردن ویژگی‌ها به کلاس

ویژگی‌ها چیستند؟

ویژگی‌ها داده‌هایی هستند که به هر شیء مربوط می‌شوند. مثلاً در مثال ماشین، رنگ و مدل ویژگی‌هایی هستند.

مثال اضافه کردن ویژگی‌ها
class Car:
    def __init__(self, color, model):
        self.color = color
        self.model = model

توضیح خط‌به‌خط:

  • __init__: یک متد خاص است که به طور خودکار هنگام ایجاد یک شیء اجرا می‌شود.
  • self: به شیء فعلی اشاره می‌کند.
  • color و model: پارامترهایی هستند که هنگام ساخت شیء باید مشخص شوند.
ایجاد شیء با ویژگی‌ها
car1 = Car("قرمز", "پژو")
print(car1.color)  # خروجی: قرمز
print(car1.model)  # خروجی: پژو

مرحله ۴: رفتارها (متدها) چیستند؟

تعریف متد:

متدها کارهایی هستند که یک شیء می‌تواند انجام دهد. مثلاً ماشین می‌تواند روشن شود یا حرکت کند.

اضافه کردن متد به کلاس
class Car:
    def __init__(self, color, model):
        self.color = color
        self.model = model

    def drive(self):
        print(f"ماشین {self.model} در حال حرکت است.")
ایجاد و استفاده از شیء با متد
car2 = Car("آبی", "سمند")
car2.drive()  # خروجی: ماشین سمند در حال حرکت است.

توضیح خط‌به‌خط:

  • def drive: تعریف یک متد جدید به نام drive.
  • self.model: از self استفاده می‌کنیم تا به ویژگی‌های شیء دسترسی پیدا کنیم.

مرحله ۵: کلاس‌های پیشرفته‌تر با ارث‌بری (Inheritance)

ارث‌بری چیست؟

وقتی یک کلاس ویژگی‌ها و رفتارهای کلاس دیگری را به ارث می‌برد.

مثال ارث‌بری
class Vehicle:
    def __init__(self, type):
        self.type = type

    def info(self):
        print(f"این وسیله نقلیه از نوع {self.type} است.")

class Car(Vehicle):
    def __init__(self, color, model):
        super().__init__("ماشین")  # استفاده از ویژگی‌های کلاس والد
        self.color = color
        self.model = model

ایجاد شیء با کلاس وراثتی

car3 = Car("مشکی", "BMW")
car3.info()  # خروجی: این وسیله نقلیه از نوع ماشین است.

تمرین‌ها برای شی‌گرایی

  1. کلاسی به نام Person بسازید که ویژگی‌های name و age را داشته باشد. متدی اضافه کنید که سلام و نام شخص را چاپ کند.
  2. کلاسی به نام MobilePhone بسازید که ویژگی‌هایی مثل model و brand داشته باشد، و متدی برای چاپ اطلاعات گوشی اضافه کنید.

چند برنامه ساده.

برنامه ۱: ساخت یک کلاس ساده برای "شخص" (Person)

توضیح برنامه

این برنامه یک کلاس به نام Person ایجاد می‌کند که شامل ویژگی‌هایی مثل name و age است. سپس با استفاده از این کلاس، چند شیء ساخته و اطلاعات آنها نمایش داده می‌شود.

کد برنامه

class Person:
    def __init__(self, name, age):
        self.name = name  # ذخیره نام
        self.age = age  # ذخیره سن

    def introduce(self):
        print(f"سلام! من {self.name} هستم و {self.age} سال دارم.")

# ساخت اشیاء از کلاس
person1 = Person("علی", 25)
person2 = Person("نگار", 18)

# استفاده از متد
person1.introduce()
person2.introduce()

خروجی برنامه

سلام! من علی هستم و 25 سال دارم.
سلام! من نگار هستم و 18 سال دارم.

توضیحات:

  • کلاس Person تعریف شده است که name و age را ذخیره می‌کند.
  • هر شیء که ایجاد می‌شود یک فرد را نشان می‌دهد.
  • متد introduce اطلاعات نام و سن فرد را چاپ می‌کند.

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

توضیح برنامه

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

کد برنامه

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

    def subtract(self, a, b):
        return a - b

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

    def divide(self, a, b):
        if b != 0:
            return a / b
        else:
            return "تقسیم بر صفر ممکن نیست!"

# ساخت اشیاء و استفاده از کلاس
calc = Calculator()

print("جمع:", calc.add(10, 5))
print("تفریق:", calc.subtract(10, 5))
print("ضرب:", calc.multiply(10, 5))
print("تقسیم:", calc.divide(10, 5))
print("تقسیم نامعتبر:", calc.divide(10, 0))

خروجی برنامه

جمع: 15
تفریق: 5
ضرب: 50
تقسیم: 2.0
تقسیم نامعتبر: تقسیم بر صفر ممکن نیست!

توضیحات:

  • کلاس Calculator شامل متدهایی برای عملیات ریاضی است.
  • هر متد یک عملیات خاص را انجام می‌دهد (مثلاً add برای جمع).

برنامه ۳: مدیریت کتابخانه کوچک

توضیح برنامه

یک کلاس به نام Book تعریف می‌کنیم که شامل ویژگی‌هایی مثل عنوان (title) و نویسنده (author) است. سپس چند کتاب به لیست اضافه کرده و تمام کتاب‌ها را نمایش می‌دهیم.

کد برنامه

class Book:
    def __init__(self, title, author):
        self.title = title
        self.author = author

    def display_info(self):
        print(f"عنوان: {self.title}, نویسنده: {self.author}")

# لیست کتاب‌ها
library = []

# اضافه کردن کتاب‌ها
book1 = Book("قهرمان کوچک", "علی احمدی")
book2 = Book("راز موفقیت", "نگار جوادی")

library.append(book1)
library.append(book2)

# نمایش تمام کتاب‌ها
for book in library:
    book.display_info()

خروجی برنامه

عنوان: قهرمان کوچک, نویسنده: علی احمدی
عنوان: راز موفقیت, نویسنده: نگار جوادی

توضیحات:

  • کلاس Book شامل ویژگی‌های title و author است.
  • لیست library برای ذخیره کتاب‌ها استفاده شده است.
  • با استفاده از یک حلقه for تمام کتاب‌ها نمایش داده می‌شوند.