خودآزمایی
۱۰-۶- جمع کردن: یکی از مشکلات رایج هنگام دریافت مقادیر عددی زمانی رخ میدهد که افراد به جای عدد متن وارد میکنند. وقتی تلاش میکنیم که این ورودی را با int به عدد تبدیل کنیم خطای ValueError دریافت میکنید. برنامهای بنویسید که از کاربر دو عدد بگیرد. آنها را جمع و نتیجه را چاپ کند. اگر هر کدام از ورودیها عدد نبودند خطای ValueError را بگیرید و پیامی دوستانه چاپ کنید. برنامهی خود را با وارد کردن دو عدد و سپس متنی به جای یکی از اعداد بیازمایید.
۱۰-۷- ماشین جمع کردن: کد تمرین ۱۰-۶ را در یک حلقهی while قرار دهید تا حتّی اگر کاربر یک بار به اشتباه به جای عدد متن وارد کرد، همچنان بتواند عددهای بعدی را وارد کند.
۱۰-۸- سگها و گربهها: دو فایل به نام cats.txt و dogs.txt بسازید. در اوّلی دستِ کم نام سه گربه و در دیگری نام سه سگ را ذخیره کنید. برنامهای بنویسید که سعی کند این فایلها را بخواند و محتویّات آنها را روی صفحه چاپ کند. کد خود را در یک بلوک try-except قرار دهید تا خطای FileNotFoundError را بگیرد و در صورت فقدان فایلی پیامی چاپ کند. یکی از فایلها را به مکان دیگری در سیستم خود منتقل کنید و مطمئن شوید که بلوک except به درستی اجرا میشود.
۱۰-۹- سگها و گربههای بیصدا: بلوک except را در تمرین ۱۰-۸ جوری تغییر دهید که در صورت یافت نشدنِ بدون سر و صدا آن را رد کند.
۱۰-۱۰- کلمات مشترک: پروژهی گوتنبرگ (https://gutenberg.org) را ببینید و چند متن پیدا کنید که دوست دارید آنها را تحلیل کنید. فایلهای متنی آنها را دانلود کنید یا متن خام را از مرورگر خود کپی و در یک فایل متنی در رایانهی خود ذخیره کنید.
میتوانید از متد count() استفاده کنید تا بفهمید یک کلمه یا عبارت چند بار در یک رشته تکرار شده است. برای مثال کد زیر تعداد دفعات پدیدار شدن 'row' را در یک رشته میشمارد:
توجّه کنید که تبدیل تمام رشته به حروف کوچک به کمک lower() تمام موارد وقوع یک کلمه را صرف نظر از شکل و بزرگ و کوچکی حروف آن پیدا میکند.
برنامهای بنویسید که فایلهایی را که در پروژهی گوتنبرگ پیدا کردهاید بخواند و تعیین کند که کلمهی 'the' چند بار در هر کدام تکرار شده است. این عدد تقریبی خواهند بود زیرا کلمههایی مانند 'then' و 'there' هم شمرده خواهند شد. حال شمردن 'the ' را امتحان کنید، با افزودنِ یک فاصله در انتهای رشته، و ببینید که تعداد نسبت به قبل چهقدر کمتر میشود.