شمارش حروف صدادار در پایتون
برای شمردن حروف صدادار یک متن انگلیسی در پایتون، روی حرفهای متن حلقه میزنید و هر بار که حرف یکی از a و e و i و o و u بود، یک شمارنده را زیاد میکنید. اگر متن را پیش از شمردن با lower() کوچک کنید، حروف بزرگ هم شمرده میشوند.
صورت سؤال
برنامهای بنویسید که یک خط متن انگلیسی را از ورودی بخواند و تعداد حروف صدادار آن را چاپ کند.
حروف صدادار را a و e و i و o و u در نظر بگیرید و حروف بزرگ و کوچک را یکسان بشمارید. فاصله، عدد و علامتها شمرده نمیشوند.
ورودی نمونه
Hello World Of Python
خروجی نمونه
5
خودتان امتحان کنید
کد را در ویرایشگر زیر کامل کنید و اجرا کنید. ورودی نمونه در کادر ورودی آماده است و بعد از هر اجرا، خروجی شما با خروجی نمونه مقایسه میشود.
کد را اجرا کنید تا خروجی آن اینجا نمایش داده شود.
راهنمایی
رشتهٔ "aeiou" را در یک متغیر نگه دارید و برای هر حرف متن بپرسید که آیا داخل این رشته هست یا نه. عملگر in همین کار را انجام میدهد.
جواب و توضیح
بهتر است جواب را بعد از امتحان کردن راه خودتان باز کنید.
نمایش جواب
text = input()
vowels = "aeiou"
count = 0
for ch in text.lower():
if ch in vowels:
count += 1
print(count)این جواب چطور کار میکند؟
text.lower() نسخهای از متن را با حروف کوچک میسازد. به این ترتیب O در کلمهٔ Of هم مثل o شمرده میشود و لازم نیست حروف بزرگ را جداگانه در vowels بنویسید.
عبارت ch in vowels بررسی میکند که حرف فعلی یکی از پنج حرف رشتهٔ vowels باشد. فاصله و حرفهای بیصدا در این رشته نیستند و شمارنده برای آنها زیاد نمیشود.
این برنامه فقط برای متن انگلیسی درست کار میکند. در فارسی، صداهای کوتاه معمولاً نوشته نمیشوند و «ا» و «و» و «ی» گاهی صدادارند و گاهی بیصدا؛ پس صداهای فارسی را نمیشود با یک فهرست ثابت از حروف شمرد.
راه دوم: یک خط با sum
text = input() print(sum(1 for ch in text.lower() if ch in "aeiou"))
این عبارت برای هر حرف صدادار عدد ۱ تولید میکند و sum آنها را جمع میزند. نتیجه همان است و فقط فشردهتر نوشته شده است؛ وقتی با حلقه راحت شدید، خواندنش ساده است.
اشتباههای رایج
- متن را کوچک نمیکنند و حروف بزرگی مثل A و O شمرده نمیشوند.
- شمارنده را داخل حلقه برابر صفر میگذارند و در هر دور از نو شروع میشود.
- بهجای ch in vowels مینویسند ch == vowels و هر حرف را با کل رشتهٔ aeiou مقایسه میکنند.
تمرین بعدی
پایتون را قدمبهقدم یاد بگیرید
این تمرین یکی از تمرینهای پایتون با جواب دینا کد است. در دورهٔ پایتون از صفر هر مفهوم یک درس کوتاه دارد و تمرین هر درس با چند آزمون پنهان نمره میگیرد؛ درسهای اول رایگان است. برای امتحان کد آزاد هم اجرای آنلاین پایتون در دسترس است.