۴

کنترل جریان: شرط و حلقه 🔄

یاد می‌گیریم چطور برنامه‌مون رو هوشمند کنیم!

دستورات شرطی (if, elif, else)

با دستورات شرطی می‌تونیم تصمیم‌گیری رو به برنامه‌مون اضافه کنیم:

شرط ساده if
age = 18

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

print("این خط همیشه اجرا می‌شود")
if-else
score = 75

if score >= 50:
    print("آفرین! قبول شدی 🎉")
else:
    print("متاسفانه قبول نشدی 😢")
    print("باید بیشتر تلاش کنی")
if-elif-else
grade = 85

if grade >= 90:
    print("نمره: A")
elif grade >= 80:
    print("نمره: B")
elif grade >= 70:
    print("نمره: C")
elif grade >= 60:
    print("نمره: D")
else:
    print("نمره: F - مردودی")

حلقه for

حلقه for برای تکرار روی sequenceها (مثل لیست، رشته، range) استفاده می‌شه:

حلقه for ساده
# تکرار روی لیست
fruits = ["سیب", "موز", "پرتقال"]
for fruit in fruits:
    print(f"میوه: {fruit}")

# تکرار روی رشته
name = "پایتون"
for char in name:
    print(char)

# تکرار با range
for i in range(5):  # از 0 تا 4
    print(i)

for i in range(1, 6):  # از 1 تا 5
    print(i)

for i in range(0, 10, 2):  # از 0 تا 9 با گام 2
    print(i)

حلقه while

حلقه while تا زمانی که شرط True باشه اجرا می‌شه:

حلقه while
# شمارش معکوس
count = 5
while count > 0:
    print(count)
    count -= 1  # count = count - 1
print("پرتاب!")

# حلقه بی‌نهایت (با break می‌شکند)
while True:
    user_input = input("یک عدد وارد کن (exit برای خروج): ")
    if user_input == "exit":
        break
    print(f"شما وارد کردید: {user_input}")

break و continue

برای کنترل بیشتر روی حلقه‌ها از break و continue استفاده می‌کنیم:

break و continue
# break - خروج از حلقه
for number in range(10):
    if number == 5:
        break  # وقتی number به 5 برسد از حلقه خارج می‌شود
    print(number)

print("---")

# continue - رفتن به iteration بعدی
for number in range(10):
    if number % 2 == 0:  # اگر عدد زوج باشد
        continue  # به iteration بعدی برو
    print(number)  # فقط اعداد فرد چاپ می‌شوند

💡 نکته: از break برای خروج کامل از حلقه و از continue برای رد کردن iteration جاری استفاده می‌شه.

تمرین! 🧠

برنامه‌ای بنویس که اعداد اول بین 1 تا 100 رو پیدا کنه و چاپ کنه. (عدد اول عددی است که فقط بر 1 و خودش بخش‌پذیر باشد)

جواب تمرین

print("اعداد اول بین 1 تا 100:")
for num in range(2, 101):  # از 2 تا 100
    is_prime = True
    for i in range(2, int(num**0.5) + 1):  # بررسی مقسوم‌علیه‌ها
        if num % i == 0:
            is_prime = False
            break
    if is_prime:
        print(num, end=" ")