ویرگول
ورودثبت نام
امیرمحمد شب بویی
امیرمحمد شب بویی
امیرمحمد شب بویی
امیرمحمد شب بویی
خواندن ۵ دقیقه·۴ ماه پیش

📘 جلسه چهارم پایتون – حلقه‌های تکرار (Loops)

در برنامه‌نویسی همیشه نیاز داریم بعضی دستورات چندین بار تکرار شوند. به جای اینکه این دستورات را چند بار کپی-پیست کنیم، از ابزارهای حرفه‌ای به نام حلقه‌ها (Loops) استفاده می‌کنیم.

🎯 تعریف حلقه (Loop)

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


🔹 انواع حلقه‌ها در پایتون

پایتون دو نوع حلقه اصلی دارد:

  1. حلقه while

    • زمانی استفاده می‌شود که نمی‌دانیم چند بار باید تکرار کنیم.

    • اجرای حلقه تا وقتی ادامه دارد که شرط برقرار باشد.

    • مثال: گرفتن ورودی از کاربر تا وقتی که عدد صفر وارد کند.

  2. حلقه for

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

    • مثال: چاپ اعداد ۱ تا ۱۰ یا پیمایش یک لیست.


🔹 حلقه while

الگوی کلی:

while شرط: دستورات موردنظر

✅ رفتار:

  • اگر شرط True باشد → دستورات داخل حلقه اجرا می‌شوند.

  • اگر شرط False شود → اجرای حلقه متوقف شده و برنامه به دستور بعد از حلقه می‌رود.

📌 مثال ساده:

answer = "yes" while answer == "yes": print("Loop is running...") answer = input("Do you want to continue? (yes/no): ")

🔹 کنترل اجرای while با شرط

ما می‌توانیم با تغییر شرط، رفتار حلقه را کنترل کنیم.

مثال ۱ – گرفتن عدد از کاربر و جمع زدن

sum_numbers = 0 data = int(input("Enter a number (-1 to exit): ")) while data != -1: sum_numbers += data data = int(input("Enter a number (-1 to exit): ")) print("The total sum is:", sum_numbers)

🔹 روش بهینه با while True و break

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

total = 0 while True: num = int(input("Enter a number (-1 to stop): ")) if num == -1: break total += num print("Sum of numbers:", total)

🔹 تمرین (Exercise)

مسئله: از کاربر اعداد زوج دریافت کنید. برنامه تا زمانی ادامه پیدا کند که کاربر عدد 0 وارد کند. در پایان، جمع کل اعداد زوج چاپ شود.

💡 راهنمایی: باید بررسی کنید که عدد زوج است (num % 2 == 0).


📌 نکته مهم برای هوش مصنوعی و دیتا:
در پروژه‌های AI و Data Science حلقه‌ها زیاد استفاده می‌شوند، مخصوصاً برای پردازش داده‌ها (مثلاً خواندن داده‌ها خط‌به‌خط یا اجرای یک مدل بارها با داده‌های مختلف).

📘 مدیریت خطا و حلقه‌های تو در تو در پایتون

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

  • کاربر به جای عدد، متن وارد کند.

  • کاربر عدد فرد وارد کند در حالی که ما انتظار عدد زوج داریم.

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

  1. خطا باعث توقف کل برنامه نشود.

  2. کاربر فرصت اصلاح ورودی داشته باشد.

  3. برنامه همچنان بتواند توسط کاربران بعدی ادامه پیدا کند.


🔹 الگوی کلی

ما می‌توانیم از ترکیب حلقه بی‌نهایت (while True) و مدیریت خطا (try / except) استفاده کنیم.


🔹 کد نمونه – دریافت عدد زوج از کاربران

while True: # حلقه اصلی برای همه‌ی کاربران while True: # حلقه داخلی برای یک کاربر try: num = int(input("Enter an even number: ")) if num % 2 == 0: # بررسی زوج بودن print("Double of your number is:", num * 2) break # خروج از حلقه داخلی (کاربر موفق شد ورودی درست بدهد) else: print("❌ Invalid entry! Please enter an EVEN number.") except: print("❌ Use digits only (e.g. 2, 4, 10).") # پرسش از اپراتور برای ادامه یا توقف stop = input("Press 's' to stop the app, otherwise the next user can continue: ") if stop.lower() == 's': break print("✅ The program has ended.")

🔹 توضیحات

  1. while True اول → برای مدیریت کاربران مختلف است.

  2. while True دوم → به یک کاربر فرصت می‌دهد تا ورودی صحیح وارد کند.

  3. try / except → مانع کرش شدن برنامه در صورت ورود متن یا کاراکتر غیرعددی می‌شود.

  4. break → زمانی استفاده می‌شود که کاربر ورودی درست بدهد یا اپراتور بخواهد برنامه متوقف شود.


🔹 تمرین پیشنهادی

کد بالا را طوری تغییر دهید که:

  1. به جای چاپ عدد دو برابر شده، جمع کل اعداد زوج واردشده‌ی هر کاربر را نشان دهد.

  2. بعد از هر کاربر، جمع جداگانه‌ی او نمایش داده شود.

❓ سوال

برنامه‌ای بنویسید که از کاربران بخواهد به سه اپلیکیشن معروف (مثلاً Instagram ،Telegram ،WhatsApp) از 0 تا 5 امتیاز بدهند.
در پایان، مجموع امتیازها محاسبه شود و اپلیکیشنی که بیشترین امتیاز را دارد به عنوان محبوب‌ترین اپلیکیشن معرفی گردد.


✅ حل (کد پایتون ساده بدون لیست)

print("⭐️ Nazarsanji az 0 ta 5 baraye 3 app marouf ⭐️") # جمع امتیازهای هر اپلیکیشن score_instagram = 0 score_telegram = 0 score_whatsapp = 0 # تعداد کاربران n = int(input("Chand nafar mikhay emtiaz bedan? ")) for i in range(1, n+1): print(f"\nUser {i}:") emtiaz_instagram = int(input("Emtiaz be Instagram (0 ta 5): ")) emtiaz_telegram = int(input("Emtiaz be Telegram (0 ta 5): ")) emtiaz_whatsapp = int(input("Emtiaz be WhatsApp (0 ta 5): ")) # جمع کردن امتیازها score_instagram += emtiaz_instagram score_telegram += emtiaz_telegram score_whatsapp += emtiaz_whatsapp # اعلام نتایج print("\n--- Natije ---") print("Instagram:", score_instagram) print("Telegram:", score_telegram) print("WhatsApp:", score_whatsapp) # پیدا کردن محبوب‌ترین if score_instagram > score_telegram and score_instagram > score_whatsapp: print("📌 Popular-tarin app: Instagram") elif score_telegram > score_instagram and score_telegram > score_whatsapp: print("📌 Popular-tarin app: Telegram") elif score_whatsapp > score_instagram and score_whatsapp > score_telegram: print("📌 Popular-tarin app: WhatsApp") else: print("⚖️ Mosavi shodan emtiaz ha!")

🔍 نمونه اجرا

⭐️ Nazarsanji az 0 ta 5 baraye 3 app marouf ⭐️ Chand nafar mikhay emtiaz bedan? 3 User 1: Emtiaz be Instagram (0 ta 5): 5 Emtiaz be Telegram (0 ta 5): 4 Emtiaz be WhatsApp (0 ta 5): 3 User 2: Emtiaz be Instagram (0 ta 5): 4 Emtiaz be Telegram (0 ta 5): 5 Emtiaz be WhatsApp (0 ta 5): 2 User 3: Emtiaz be Instagram (0 ta 5): 3 Emtiaz be Telegram (0 ta 5): 5 Emtiaz be WhatsApp (0 ta 5): 1 --- Natije --- Instagram: 12 Telegram: 14 WhatsApp: 6 📌 Popular-tarin app: Telegram
کاربرpython
۰
۰
امیرمحمد شب بویی
امیرمحمد شب بویی
شاید از این پست‌ها خوشتان بیاید