یک برنامه پایتون بنویسید که یک فایل متنی را میخواند که هر سطر شامل اعداد جداشده با کاما است و با استفاده از تابع any برای هر سطر بررسی کند آیا حداقل یک مقدار NaN یا ±inf وجود دارد و خروجی را بهصورت لیستی از مقادیر بولی چاپ کند.
16.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 01:18 0.0
برای حل، فایل را خطبهخط با دستور with open باز کنید، هر سطر را با split(',') جدا کرده و هر رشته را به float تبدیل کنید؛ سپس با math.isnan و math.isfinite یا تابع numpy.isfinite بررسی کنید که آیا عدد غیرمتناهی یا NaN هست. از any بهصورت any(math.isnan(x) or not math.isfinite(x) for x in numbers) استفاده کنید تا برای هر سطر یک مقدار بولی بهدست آورید. نکات: برای مدیریت خطاها از try/except استفاده کنید، برای کارایی از generator expression به جای ساختن لیست کامل استفاده کنید و در صورت تمایل میتوانید از ماژول csv برای خواندن امنتر فایل بهره ببرید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای خواندن امن و کارآمد فایل، بهتر است از with open همراه با csv.reader یا حداقل strip() برای حذف فضاهای اضافی و نادیده گرفتن خطوط خالی استفاده کنید. برای تشخیص NaN یا ±inf از math.isnan و not math.isfinite در یک generator expression داخل any استفاده کرده و تبدیل به float را داخل بلوک try/except بگیرید تا ValueError مدیریت شود. اگر فایل بزرگ است از generatorها یا پردازش دستهای با numpy برای کارآیی و مصرف حافظه کمتر بهره ببرید بهجای ساخت لیست کامل هر سطر. همچنین مراقب فیلدهای خالی، رشتههای "NaN"/"inf" با حروف بزرگ/کوچک و تنظیمات محلی که ممیز اعشاری را تغییر میدهد باشید.
گزارش