آموزش پروژه دفترچه تلفن در پایتون | پیشرفته: مرتب سازی مخاطبان

انتخاب نوع مرتب سازی

در این بخش، قصد داریم به کاربر اجازه دهیم تا نوع مرتب‌سازی مخاطبان را انتخاب کند. این کار معمولاً با نمایش یک منوی ساده به کاربر انجام می‌شود. کاربر می‌تواند انتخاب کند که مخاطبان بر اساس نام یا شماره تماس مرتب شوند.

روش کار:

  1. ابتدا یک لیست از گزینه‌ها به کاربر نمایش داده می‌شود. مثلاً:

    • گزینه ۱: مرتب‌سازی بر اساس نام
    • گزینه ۲: مرتب‌سازی بر اساس شماره تماس
  2. کاربر عدد گزینه مورد نظر خود را تایپ می‌کند.

  3. برنامه باید ورودی کاربر را دریافت کند و آن را به یک عدد صحیح تبدیل کند. برای این کار از تابع int() استفاده کنید.

  4. با استفاده از یک ساختار شرطی (if/elif/else) بررسی می‌کنیم که کاربر کدام گزینه را انتخاب کرده است.

نکته مهم: اگر کاربر عددی خارج از محدوده گزینه‌ها (مثلاً ۳ در حالی که فقط دو گزینه داریم) یا یک کاراکتر غیرعددی (مثلاً حرف "a") وارد کند، برنامه باید با یک پیام خطا از او بخواهد دوباره انتخاب کند. می‌توانید این کار را با یک حلقه while انجام دهید تا زمانی که کاربر یک انتخاب معتبر انجام دهد.

نمونه کد ساده (فقط منطق انتخاب):

print("نوع مرتب‌سازی را انتخاب کنید:")
print("1. بر اساس نام")
print("2. بر اساس شماره تماس")

while True:
    try:
        choice = int(input("عدد گزینه مورد نظر را وارد کنید: "))
        if choice == 1:
            print("مرتب‌سازی بر اساس نام انتخاب شد.")
            # در اینجا تابع مرتب‌سازی بر اساس نام را فراخوانی می‌کنید
            break
        elif choice == 2:
            print("مرتب‌سازی بر اساس شماره تماس انتخاب شد.")
            # در اینجا تابع مرتب‌سازی بر اساس شماره تماس را فراخوانی می‌کنید
            break
        else:
            print("لطفاً فقط عدد ۱ یا ۲ را وارد کنید.")
    except ValueError:
        print("ورودی معتبر نیست. لطفاً یک عدد وارد کنید.")

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

  • try و except ValueError: اگر کاربر حرف یا کاراکتر غیرعددی وارد کند، برنامه خطای ValueError می‌گیرد و پیام مناسب نمایش می‌دهد.
  • while True: حلقه تا زمانی ادامه می‌یابد که کاربر انتخاب معتبر (۱ یا ۲) انجام دهد.
  • break: به محض انتخاب معتبر، از حلقه خارج می‌شویم.
پرسش و پاسخ این درس

برای ثبت پرسش ابتدا در سایت وارد شوید.

  • 1
  • 2
  • 3