0%
در حال بارگذاری...

جستجو در سایت

درس ۲ مقدماتی: ساختارهای کنترلی – شرط‌ها و حلقه‌ها در پایتون

پایتون | Python مقدماتی

می‌خوای برنامه‌ت بتونه تصمیم بگیره یا کارها رو خودش تکرار کنه؟ 🤖 بدون شرط‌ها و حلقه‌ها، برنامه‌ها مثل یه ماشین خاموشن! برای مثال، می‌تونی برنامه‌ای بسازی که بگه کاربر بزرگساله یا نه، یا جدول ضرب رو خودکار چاپ کنه. تو این درس، با شرط‌ها (if-elif-else) و حلقه‌ها (for و while) آشنا می‌شی تا ماشین حساب درس قبل رو به یه ابزار هوشمند تبدیل کنی. بنابراین، اگر درس ۱ رو خوب یاد گرفتی، حالا آماده‌ای که برنامه‌هات رو زنده کنی! 🚀 این درس با مثال‌های واقعی، جداول مقایسه، تمرین‌های متنوع و یه پروژه جذاب، تو رو برای درس‌های بعدی آماده می‌کنه. بریم شروع کنیم! 🎉

شرط‌ها: تصمیم‌گیری با if، elif، else 🤔

شرط‌ها به برنامه‌ت اجازه می‌دن تصمیم بگیره. برای مثال، می‌تونی چک کنی که کاربر چند سالشه و پیامی مناسب نشون بدی. دستور if یه شرط رو بررسی می‌کنه:

age = int(input("سنت چنده؟ "))
if age >= 18:
    print("تو بزرگسالی! 🚗")
else:
    print("تو هنوز کودکی! 🎮")

علاوه بر این، با elif می‌تونی شرط‌های بیشتری چک کنی:

if age >= 18:
    print("بزرگسال")
elif age >= 13:
    print("نوجوان")
else:
    print("کودک")

به علاوه، می‌تونی شرط‌ها رو ترکیب کنی:

name = input("اسمت چیه؟ ")
if age >= 18 and name.lower() == "علی":
    print("خوش اومدی، علی بزرگسال!")
else:
    print("سلام، کاربر!")

💡 نکته: lower() حروف بزرگ رو به کوچک تبدیل می‌کنه تا حساسیت به حروف رو دور بزنی. بنابراین، همیشه برای ورودی‌های متنی ازش استفاده کن.

حلقه for: تکرار ساده و سریع 🔢

حلقه for برای تکرار تعداد مشخصی مناسبه. برای مثال، می‌تونی اعداد ۱ تا ۵ رو چاپ کنی:

for i in range(5):  # از ۰ تا ۴
    print(i)

به همین دلیل، range خیلی کاربردیه. چند مدل استفاده:

for i in range(1, 6):  # از ۱ تا ۵
    print(i)
for i in range(1, 11, 2):  # 1, 3, 5, 7, 9
    print(i)

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

fruits = ["سیب", "موز", "پرتقال"]
for fruit in fruits:
    print(fruit)

💡 نکته: range(start, stop, step) انعطاف زیادی داره. برای مثال، range(10, 0, -1) برای شمارش معکوس.

حلقه while: تکرار با شرط 🌀

حلقه while تا وقتی شرط درست باشه ادامه می‌ده. برای مثال:

count = 1
while count <= 5:
    print(count)
    count += 1

به علاوه، می‌تونی حلقه بی‌نهایت بسازی و با break خارج شی:

while True:
    answer = input("ادامه بدم؟ (b برای خروج): ")
    if answer == "b":
        break
    print("ادامه می‌دیم...")

💡 هشدار: بدون count += 1، حلقه while بی‌نهایت می‌شه و برنامه هنگ می‌کنه!

کنترل حلقه‌ها: break، continue، pass 🛑

برای مثال، این دستورات حلقه‌ها رو کنترل می‌کنن:

دستور کارکرد مثال خروجی
break خروج کامل از حلقه for i in range(10): if i == 5: break ۰, ۱, ۲, ۳, ۴
continue رد شدن از دور فعلی for i in range(5): if i == 2: continue; print(i) ۰, ۱, ۳, ۴
pass هیچ کاری نکن if True: pass هیچ خروجی

به عنوان مثال:

for i in range(1, 6):
    if i == 3:
        continue
    if i == 5:
        break
    print(i)  # 1, 2, 4

💡 نکته: pass وقتی مفیده که هنوز نمی‌دونی توی بلاک چی بنویسی.

مثال‌های عملی: ترکیب با درس ۱ 💡

برای مثال، بیایم چند برنامه کاربردی بسازیم:

۱. BMI هوشمند:

weight = float(input("وزن (کیلوگرم): "))
height = float(input("قد (متر): "))
bmi = weight / (height ** 2)
print(f"BMI: {bmi:.1f}")
if bmi < 18.5:
    print("لاغر")
elif bmi < 25:
    print("نرمال")
elif bmi < 30:
    print("اضافه وزن")
else:
    print("چاق")

۲. جدول ضرب:

n = int(input("عدد برای جدول ضرب: "))
for i in range(1, 11):
    print(f"{n} x {i} = {n * i}")

۳. شمارش معکوس:

count = 10
while count > 0:
    print(count)
    count -= 1
print("بوم! 💥")

بنابراین، این مثال‌ها درس ۱ رو با شرط‌ها و حلقه‌ها ترکیب می‌کنن. کدها رو توی lesson2_examples.py ذخیره کن.

خطاهای رایج و راه‌حل‌ها ⚠️

به طور کلی، این خطاها تو حلقه‌ها و شرط‌ها شایعن:

خطا علت راه‌حل
Infinite loop شرط while همیشه درسته متغیر کنترلی (مثل count += 1) اضافه کن
IndentationError فاصله‌های نادرست ۴ فضای خالی منظم استفاده کن
SyntaxError فراموشی : یا پرانتز ساختار شرط یا حلقه رو چک کن

برای مثال:

while True:  # حلقه بی‌نهایت!
    print("اوه!")  # خطا: برنامه هنگ می‌کنه
# حل:
count = 0
while count < 3:
    print("اوکی!")
    count += 1

تمرین‌ها: مهارتت رو تست کن! 📝

برای تسلط، این ۱۲ تمرین رو حل کن:

  1. برنامه‌ای بنویس که چک کنه عدد مثبته، منفیه یا صفر.
  2. جدول ضرب ۱ تا ۱۰ برای یه عدد.
  3. برنامه حدس عدد (عدد تصادفی ۱ تا ۱۰، کاربر حدس بزنه).
  4. مجموع اعداد ۱ تا n (ورودی کاربر).
  5. فاکتوریل یه عدد با while.
  6. اعداد زوج ۱ تا ۲۰ رو چاپ کن.
  7. الگوی ستاره چاپ کن: *****.
  8. بزرگ‌ترین عدد از ۵ ورودی.
  9. بررسی عدد اول بودن.
  10. ماشین حساب با منوی عملیات (+، -، *، /).
  11. شمارش تعداد حروف در یه رشته.
  12. برنامه‌ای با if برای سناریو (مثل وضعیت آب‌وهوا).

💡 نکته: هر تمرین رو توی فایل جدا (ex1.py، ex2.py) ذخیره کن.

پروژه کوچک: ماشین حساب پیشرفته 🧮

برای مثال، ماشین حساب درس ۱ رو ارتقا می‌دیم تا عملیات رو کاربر انتخاب کنه و بتونه تکرار کنه:

  1. دو عدد و یه عملیات بگیر.
  2. با if عملیات رو انجام بده.
  3. با while اجازه تکرار بده.
while True:
    print("\n=== ماشین حساب پیشرفته ===")
    num1 = float(input("عدد اول: "))
    num2 = float(input("عدد دوم: "))
    op = input("عملیات (+, -, *, /): ")
    if op == "+":
        print(f"نتیجه: {num1 + num2}")
    elif op == "-":
        print(f"نتیجه: {num1 - num2}")
    elif op == "*":
        print(f"نتیجه: {num1 * num2}")
    elif op == "/":
        if num2 == 0:
            print("خطا: تقسیم بر صفر!")
        else:
            print(f"نتیجه: {num1 / num2:.2f}")
    else:
        print("عملیات نامعتبر!")
    again = input("دوباره؟ (y/n): ")
    if again.lower() != "y":
        break
print("خداحافظ!")

💡 تست کن: با ورودی‌های مختلف (مثل ۱۰، ۵، +) و گزینه تکرار اجرا کن.

سؤالات متداول (FAQ) ❓

به طور کلی، این سؤالات برای مبتدی‌ها رایجه:

  • for یا while؟ for برای تعداد مشخص، while برای شرط.
  • چطور حلقه بی‌نهایت رو درست کنم؟ یه متغیر کنترلی یا break اضافه کن.
  • چرا خطای فاصله می‌گیرم؟ ۴ فضای خالی منظم استفاده کن.
  • چطور دیباگ کنم؟ با print مقادیر رو چک کن.

جمع‌بندی و قدم بعدی ⏭️

تبریک! 🚀 تو این درس شرط‌ها و حلقه‌ها رو یاد گرفتی و با بیش از ۱۲ مثال و یه پروژه، حسابی قوی شدی. بنابراین، حالا می‌تونی برنامه‌های هوشمند بسازی. علاوه بر این، درس بعدی (داده‌ساختارها) بهت لیست‌ها و دیکشنری‌ها رو یاد می‌ده. در نهایت، تمرین‌ها رو توی PythonLessons ذخیره کن و اگه دوست داشتی، توی GitHub آپلود کن! 😎

ارسال نظر جدید

گزارش دیدگاه