آموزش دستورات پایه پایتون | متغیرها، شرط‌ها، حلقه‌ها + مثال عملی

  • صفحه اول
  • آموزش دستورات پایه پایتون | متغیرها، شرط‌ها، حلقه‌ها + مثال عملی
image

آموزش دستورات پایه پایتون | متغیرها، شرط‌ها، حلقه‌ها + مثال عملی

هر برنامه‌نویسی که قصد یادگیری پایتون را دارد، بدون تسلط بر دستورات پایه این زبان نمی‌تواند به موفقیت برسد. فارغ از اینکه پایتون را برای چه هدفی یاد می‌گیرید - چه برای توسعه وب، هوش مصنوعی، تحلیل داده یا اتوماسیون - باید ابتدا مفاهیم بنیادی آن را به خوبی فرا بگیرید. مهمترین دستورات پایه پایتون که foundation تمام پروژه‌های برنامه‌نویسی هستند شامل تعریف متغیرها و آشنایی با انواع داده‌ها، کار با ساختارهای شرطی مانند if و else، استفاده از حلقه‌های for و while برای تکرار عملیات، مدیریت ورودی و خروجی با دستورات input و print، و همچنین کار با فایل‌های متنی برای خواندن و نوشتن داده‌ها می‌شود. این مفاهیم نه تنها سنگ بنای یادگیری پایتون محسوب می‌شوند، بلکه درک صحیح آن‌ها مسیر تبدیل شدن به یک برنامه‌نویس حرفه‌ای را هموار می‌سازد.

۱. تعریف متغیرها و انواع داده‌ها

مفاهیم پایه متغیرها

توضیح: در پایتون، متغیرها containers برای ذخیره داده‌ها هستند. برخلاف زبان‌هایی مانند C++ یا Java، در پایتون نیازی به تعیین نوع داده در هنگام تعریف متغیر نیست.

# تعریف متغیرهای پایه
name = "Ali"                    # رشته (String)
age = 25                       # عدد صحیح (Integer)
height = 175.5                 # عدد اعشاری (Float)
is_student = True              # مقدار بولین (Boolean)
salary = None                  # مقدار تهی (NoneType)

 انواع داده‌های پیچیده

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


 

# لیست (List) - قابل تغییر و ترتیبی
numbers = [1, 2, 3, 4, 5]
mixed_list = [1, "hello", 3.14, True]

# تاپل (Tuple) - غیرقابل تغییر و ترتیبی
coordinates = (10.5, 20.3)
person_info = ("Ali", 25, "Engineer")

# دیکشنری (Dictionary) - ذخیره کلید-مقدار
person = {
    "name": "Ali",
    "age": 25,
    "city": "Tehran",
    "skills": ["Python", "Java", "SQL"]
}

# مجموعه (Set) - مقادیر یکتا و غیرترتیبی
unique_numbers = {1, 2, 3, 3, 4, 4}  # نتیجه: {1, 2, 3, 4}
vowels = {'a', 'e', 'i', 'o', 'u'}

توابع مفید برای کار با انواع داده‌ها

توضیح: پایتون توابع built-in زیادی دارد که کار با انواع داده‌ها را ساده می‌کند.

 
# بررسی نوع داده
print(type(name))        # <class 'str'>
print(isinstance(age, int))  # True

# تبدیل انواع داده
str_age = str(age)              # "25"
int_height = int(height)        # 175
float_age = float(age)          # 25.0
bool_name = bool(name)          # True
list_name = list(name)          # ['A', 'l', 'i']

 ۲. عملگرها در پایتون

عملگرهای ریاضی

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

a = 10
b = 3

# عملگرهای پایه
print(a + b)    # جمع: 13
print(a - b)    # تفریق: 7
print(a * b)    # ضرب: 30
print(a / b)    # تقسیم: 3.333...
print(a // b)   # تقسیم صحیح: 3
print(a % b)    # باقیمانده: 1
print(a ** b)   # توان: 1000
 
 

عملگرهای مقایسه‌ای

توضیح: این عملگرها برای مقایسه دو مقدار استفاده شده و نتیجه Boolean برمی‌گردانند. 

x = 5
y = 10
z = 5

print(x == z)   # True - برابری
print(x != y)   # True - عدم برابری
print(x < y)    # True - کمتر از
print(x > y)    # False - بیشتر از
print(x <= z)   # True - کمتر یا مساوی
print(x >= y)   # False - بیشتر یا مساوی

عملگرهای انتساب

توضیح: برای اختصاص مقادیر به متغیرها استفاده می‌شوند. 

x = 10
x += 5      # معادل x = x + 5 → 15
x -= 3      # معادل x = x - 3 → 12
x *= 2      # معادل x = x * 2 → 24
x /= 4      # معادل x = x / 4 → 6.0

عملگرهای منطقی

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

a = True
b = False
c = True

print(a and b)  # False - و منطقی
print(a or b)   # True - یا منطقی
print(not a)    # False - نقیض منطقی

۳. ساختارهای کنترل شرطی

ساختار if-elif-else پایه

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

# مثال کامل شرطی
score = 85
attendance = 90

if score >= 90 and attendance >= 80:
    grade = "A"
    print("Excellent performance with perfect attendance!")
elif score >= 80 and attendance >= 75:
    grade = "B"
    print("Very good! Keep up the good work.")
elif score >= 70:
    grade = "C"
    print("Good, but there's room for improvement.")
else:
    grade = "F"
    print("Unfortunately, you failed. Please try again.")

شرط‌های تو در تو

توضیح: می‌توان شرط‌ها را درون یکدیگر قرار داد برای شرایط پیچیده. \

age = 22
has_license = True
has_experience = False

if age >= 18:
    if has_license:
        if has_experience:
            print("You can rent any car!")
        else:
            print("You can rent basic cars only.")
    else:
        print("You need a driving license first.")
else:
    print("You are too young to drive.")

۴. حلقه‌ها و کنترل جریان

حلقه for با کاربردهای مختلف

توضیح: برای تکرار روی sequenceها (لیست، رشته، تاپل و...) استفاده می‌شود.

python
# حلقه پایه با range
print("Numbers from 0 to 4:")
for i in range(5):
    print(i, end=' ')  # 0 1 2 3 4

# حلقه روی لیست
fruits = ["apple", "banana", "cherry", "date"]
print("Fruits list:")
for i, fruit in enumerate(fruits):
    print(f"{i+1}. {fruit}")

حلقه while با شرایط مختلف

توضیح: تا زمانی که شرط true باشد، کد را اجرا می‌کند.

python
# حلقه while پایه
count = 1
print("Counting to 5:")
while count <= 5:
    print(count)
    count += 1

کنترل حلقه با break و continue

توضیح:

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

  • continue: رد شدن از iteration جاری

python
# استفاده از break
print("Searching for number 5:")
for i in range(1, 11):
    if i == 5:
        print("Found it!")
        break
    print(f"Checking {i}...")

# استفاده از continue
print("\nOdd numbers from 1 to 10:")
for i in range(1, 11):
    if i % 2 == 0:
        continue  # از اعداد زوج رد شو
    print(i, end=' ')  # 1 3 5 7 9

۵. توابع و ماژولاریتی

تعریف و استفاده از توابع

توضیح: توابع بلوک‌های کد قابل استفاده مجدد هستند.

python
# تابع ساده
def greet(name):
    """این تابع یک نام می‌گیرد و سلام می‌کند"""
    return f"Hello, {name}!"

# تابع با پارامترهای پیش‌فرض
def introduce(name, age=25, city="Unknown"):
    """معرفی یک شخص با اطلاعات اختیاری"""
    return f"Name: {name}, Age: {age}, City: {city}"

# استفاده از توابع
print(greet("Ali"))
print(introduce("Maryam"))
print(introduce("Reza", 30, "Shiraz"))

پارامترهای پیشرفته

توضیح: پایتون از پارامترهای انعطاف‌پذیر پشتیبانی می‌کند.

python
# پارامترهای متغیر (*args)
def sum_numbers(*args):
    """جمع اعداد با تعداد پارامترهای متغیر"""
    return sum(args)

# پارامترهای keyword متغیر (**kwargs)
def print_info(**kwargs):
    """چاپ اطلاعات با پارامترهای keyword متغیر"""
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print(sum_numbers(1, 2, 3, 4, 5))  # 15
print_info(name="Ali", age=25, city="Tehran")

۶. کار با فایل‌ها و مدیریت خطا

مدیریت خطا با try-except

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

python
def safe_divide(a, b):
    """تابع تقسیم امن با مدیریت خطا"""
    try:
        result = a / b
    except ZeroDivisionError:
        return "Error: Cannot divide by zero!"
    except TypeError:
        return "Error: Both arguments must be numbers!"
    except Exception as e:
        return f"Unexpected error: {e}"
    else:
        return f"Result: {result}"
    finally:
        print("Division operation completed.")

# تست تابع
print(safe_divide(10, 2))    # Result: 5.0
print(safe_divide(10, 0))    # Error: Cannot divide by zero!

کار با فایل‌های متنی

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

python
def file_operations_demo():
    """نمایش عملیات مختلف روی فایل‌ها"""
    
    # نوشتن در فایل
    with open("demo.txt", "w", encoding="utf-8") as file:
        file.write("Line 1: Hello World\n")
        file.write("Line 2: Python Programming\n")
    
    # خواندن از فایل
    print("Reading entire file:")
    with open("demo.txt", "r", encoding="utf-8") as file:
        content = file.read()
        print(content)
    
    # خواندن خط به خط
    print("Reading line by line:")
    with open("demo.txt", "r", encoding="utf-8") as file:
        for line_num, line in enumerate(file, 1):
            print(f"Line {line_num}: {line.strip()}")

file_operations_demo()

۷. مفاهیم پیشرفته‌تر مقدماتی

Comprehension ها

توضیح: روشی مختصر برای ایجاد لیست، دیکشنری و مجموعه‌ها.

python
# List Comprehension
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
squares = [x**2 for x in numbers]
even_squares = [x**2 for x in numbers if x % 2 == 0]
print("Squares:", squares)
print("Even squares:", even_squares)

# Dictionary Comprehension
square_dict = {x: x**2 for x in range(1, 6)}
print("Square dictionary:", square_dict)

توابع Lambda

توضیح: توابع ناشناس و یک خطی.

python
# توابع lambda ساده
square = lambda x: x**2
add = lambda a, b: a + b
is_even = lambda x: x % 2 == 0

print(square(5))      # 25
print(add(3, 7))      # 10
print(is_even(4))     # True

# استفاده با map, filter
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# map - اعمال تابع روی تمام عناصر
squared = list(map(lambda x: x**2, numbers))
print("Squared:", squared)

# filter - فیلتر کردن عناصر
evens = list(filter(lambda x: x % 2 == 0, numbers))
print("Evens:", evens)

۸. کار با ماژول‌های استاندارد

توضیح: پایتون کتابخانه استاندارد غنی دارد.

python
import math
import random
import datetime
import os

# ماژول math
print("Math operations:")
print(f"π = {math.pi}")
print(f"sqrt(16) = {math.sqrt(16)}")

# ماژول random
print("\nRandom operations:")
print(f"Random number: {random.randint(1, 100)}")
print(f"Random choice: {random.choice(['apple', 'banana', 'cherry'])}")

# ماژول datetime
print("\nDateTime operations:")
now = datetime.datetime.now()
print(f"Current datetime: {now}")

نتیجه‌گیری

جمع‌بندی مفاهیم اصلی

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

مسیر یادگیری پیشنهادی

  1. مبتدی: تمرین مفاهیم پایه

  2. متوسط: کار روی پروژه‌های کوچک

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

 

نکات نهایی

پایتون زبانی قدرتمند و همه‌منظوره است که با تمرین مستمر و کار روی پروژه‌های واقعی می‌توانید به تسلط کامل برسید. مهم‌ترین عامل در یادگیری پایتون، تمرین عملی و حل مسائل واقعی است.