راه
۶ کیو· متوسطمتوسطPYTHON۴ ثانیه · ۲۵۶ مگابایت

بزرگانه

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

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


تابع capitalize

شما باید تابعی به نام capitalize بنویسید که لیستی از نام‌ها را دریافت کرده و آن‌ها را طبق یک قاعده‌ی مشخص استانداردسازی کند. برای هر نام در لیست ورودی، باید:

  1. نام را به بخش‌های تشکیل‌دهنده‌ی آن تقسیم کنید (بخش‌ها با فاصله از هم جدا شده‌اند).
  2. برای هر کلمه، حرف اول آن را به حرف بزرگ و باقی حروف آن کلمه را به حروف کوچک تبدیل کنید.
  3. بخش‌های استانداردشده را دوباره با یک فاصله بینشان به هم متصل کنید تا نام استانداردشده‌ی نهایی به دست آید.
text
aMIr hosEin ➜ Amir Hosein

بنابراین تابع شما یک لیست از رشته‌ها (نام‌ها) را به‌عنوان ورودی دریافت کند و لیستی حاوی نام‌های استانداردشده را به همان ترتیب، به‌عنوان خروجی بازگرداند.


🎯 نمونه

نمونه‌ی ۱

text
>>> capitalize(['ali', 'REYHANEH', 'aMIR', 'AMIR abbas', 'Fatemeh Zahra'])
['Ali', 'Reyhaneh', 'Amir', 'Amir Abbas', 'Fatemeh Zahra']

نمونه‌ی ۲

text
>>> capitalize(['nazaNIN ZAHRA', 'ALI GHOLI KHANE bozorg'])
['Nazanin Zahra', 'Ali Gholi Khane Bozorg']

💡 راهنمایی

برای حل این تمرین، مراحل زیر را دنبال کنید:

  1. یک لیست خالی برای ذخیره‌ی نام‌های استانداردشده ایجاد کنید.
  2. با استفاده از یک حلقه، هر نام را از لیست ورودی بردارید.
  3. نام را با split() به بخش‌های جداگانه تقسیم کنید.
  4. برای هر بخش، حرف اول را با capitalize() یا ترکیب upper() و lower() بزرگ کنید.
  5. بخش‌ها را با join() و یک فاصله به هم بچسبانید.
  6. نام استانداردشده را به لیست خروجی اضافه کنید.
  7. در نهایت، لیست خروجی را برگردانید.
python
def capitalize(names):
    result = []
    for name in names:
        words = name.split()
        capitalized_words = []
        for word in words:
            capitalized_word = word[0].upper() + word[1:].lower()
            capitalized_words.append(capitalized_word)
        standardized_name = ' '.join(capitalized_words)
        result.append(standardized_name)
    return result

در پایتون، متد capitalize() برای رشته‌ها وجود دارد که دقیقاً همین کار را انجام می‌دهد:

می‌توانید از این متد به‌جای ترکیب upper() و lower() استفاده کنید.

python
"aMIr".capitalize()  # "Amir"
python
def capitalize(names):
    result = []
    for name in names:
        words = name.split()
        capitalized_words = [word.capitalize() for word in words]
        standardized_name = ' '.join(capitalized_words)
        result.append(standardized_name)
    return result
  • در این تمرین، نیازی به دریافت ورودی از کاربر یا چاپ خروجی در کنسول ندارید.
  • شما فقط باید تابع capitalize را پیاده‌سازی کنید.
  • ورودی تابع از طریق آرگومان آن دریافت می‌شود و خروجی تابع باید از طریق دستور return برگردانده شود.
  • ترتیب نام‌ها در لیست خروجی باید همان ترتیب لیست ورودی باشد.
  • نیازی به فراخوانی تابع در کد ارسالی نیست. سیستم به‌طور خودکار تابع شما را با ورودی‌های مختلف تست خواهد کرد.

✅ این تمرین را در ویرایشگر خود پیاده‌سازی کنید. به یاد داشته باشید که تابع باید یک لیست از نام‌های استانداردشده برگرداند.

نمونه‌ها

ورودی نمونه ۱
capitalize(['ali', 'REYHANEH', 'aMIR', 'AMIR abbas', 'Fatemeh Zahra'])
خروجی نمونه ۱
['Ali', 'Reyhaneh', 'Amir', 'Amir Abbas', 'Fatemeh Zahra']
ورودی نمونه ۲
capitalize(['nazaNIN ZAHRA', 'ALI GHOLI KHANE bozorg'])
خروجی نمونه ۲
['Nazanin Zahra', 'Ali Gholi Khane Bozorg']

برای نوشتن پاسخ و دریافت امتیاز، ابتدا وارد حساب شوید.

ورود