بزرگانه
سلیب و سمیرا در حال انجام یک بازی هستند. در این بازی، آنها هر کدام لیستی از نامها را تهیه کرده و به شخص دیگر میدهند تا از روی آن بخواند. هرکس که در مدت زمان مشخصی، تعداد نام بیشتری بخواند برنده است و بهعنوان جایزه، یک ناهار، مهمان علی میشود.
از آنجایی که سلیب آدم دغلکاری است، تصمیم دارد که در این بازی تقلب کند تا خودش برندهی بازی شود و علی را تیغ بزند. تقلب اون بدین صورت است که نامها را بهصورت ترکیبی از حروف کوچک و بزرگ درآوردهاست تا خواندن آنها برای سمیرا سختتر شود. اما سمیرا که فرد باهوشی است، از شما کمک خواسته تا این نامها را برای او مرتب کنید.
تابع capitalize
شما باید تابعی به نام capitalize بنویسید که لیستی از نامها را دریافت کرده و آنها را طبق یک قاعدهی مشخص استانداردسازی کند. برای هر نام در لیست ورودی، باید:
- نام را به بخشهای تشکیلدهندهی آن تقسیم کنید (بخشها با فاصله از هم جدا شدهاند).
- برای هر کلمه، حرف اول آن را به حرف بزرگ و باقی حروف آن کلمه را به حروف کوچک تبدیل کنید.
- بخشهای استانداردشده را دوباره با یک فاصله بینشان به هم متصل کنید تا نام استانداردشدهی نهایی به دست آید.
aMIr hosEin ➜ Amir Hosein
بنابراین تابع شما یک لیست از رشتهها (نامها) را بهعنوان ورودی دریافت کند و لیستی حاوی نامهای استانداردشده را به همان ترتیب، بهعنوان خروجی بازگرداند.
🎯 نمونه
نمونهی ۱
>>> 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']
💡 راهنمایی
برای حل این تمرین، مراحل زیر را دنبال کنید:
- یک لیست خالی برای ذخیرهی نامهای استانداردشده ایجاد کنید.
- با استفاده از یک حلقه، هر نام را از لیست ورودی بردارید.
- نام را با
split()به بخشهای جداگانه تقسیم کنید. - برای هر بخش، حرف اول را با
capitalize()یا ترکیبupper()وlower()بزرگ کنید. - بخشها را با
join()و یک فاصله به هم بچسبانید. - نام استانداردشده را به لیست خروجی اضافه کنید.
- در نهایت، لیست خروجی را برگردانید.
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()استفاده کنید.
"aMIr".capitalize() # "Amir"
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']
برای نوشتن پاسخ و دریافت امتیاز، ابتدا وارد حساب شوید.
ورود