یک تابع پایتون بنویسید که یک عبارت ریاضی بهصورت رشته را دریافت کند، آن را با استفاده از تابع builtin compile به کد قابل اجرا تبدیل کند، مقدار آن را برای یک آرایه numpy از مقادیر x محاسبه کند و نتایج را در یک فایل CSV ذخیره نماید.
2.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:41 0.0
از تابع compile(expr, '', 'eval') برای ساختن یک code object استفاده کنید و سپس با eval(code, {'np': np}, {'x': x}) مقدار آن را روی یک آرایه numpy محاسبه کنید؛ قبل از اجرا علامتهای رایج مثل '^' را به '**' تبدیل کنید و با try/except خطاها را مدیریت کنید. برای ذخیره خروجی از numpy.savetxt یا pandas.to_csv استفاده کنید و برای امنیت ورودیها تنها نامهای مورد نیاز (مثلاً np) را به دیکشنری globals پاس دهید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
ایده خوب است که کاراکترهای رایج مانند ^ را به ** تبدیل کنید تا معنای توان به درستی اجرا شود. با این وجود اجرای ورودی کاربر با eval میتواند خطر امنیتی ایجاد کند؛ بهتر است فقط نامهای امن مانند np را در globals بدهید یا از کتابخانههای امنتری مانند numexpr یا asteval استفاده کنید. همچنین برای خروجی به CSV، استفاده از numpy.savetxt یا pandas.to_csv را با تنظیمات مناسب برای هدر و جداکننده انتخاب کنید تا فایل خروجی تمیز باشد. در نهایت با افزودن try/except خطاهای نحوی یا اجرای نامعتبر را مهار کنید و پیام خطا را به کاربر گزارش دهید.
گزارش