یک تابع پایتون بنویسید که یک عبارت ریاضی به صورت رشته و یک لیست از مقادیر x بگیرد، با استفاده از exec تابعی به نام f(x) از روی آن رشته بسازد و مقدار f را برای هر x محاسبه و لیست نتایج را برگرداند.
7.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:45 0.0
راهنما: با استفاده از exec میتوانید از رشتهای مانند "def f(x): return 2*x+math.sin(x)" کدی تولید و در یک دیکشنری فضای نام (globals/locals) اجرا کنید، سپس تابع ساختهشده را از آن دیکشنری فراخوانی کنید. از ماژول math در فضای نام استفاده کنید تا توابع مثل sin و cos در دسترس باشند، و با try/except خطاهای نحوی یا زمان اجرا را هندل کنید. نکتهایمنی: اجرای کد دلخواه خطرناک است؛ برای کاربردهای واقعی از روشهای امنتر (مثل ast یا کتابخانههای ارزیابی ریاضی) استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
استفاده از exec برای تبدیل عبارت رشتهای به تابع خطرناک است و ممکن است کد دلخواه اجرا شود. برای کاهش خطرات، فضای نام را محدود کنید و فقط به عناصر لازم مانند math و تابع تعریفشده دسترسی بدهید. از try/except استفاده کنید تا خطاهای نحوی یا زمان اجرا را مدیریت کرده و نتیجه برای هر x جمعآوری شود. اگر امنیت بیشتری میخواهید، از روشهای امنتری مانند ast یا کتابخانههای ارزیابی ریاضی استفاده کنید یا حد و مرزهای ورودی را به شدت محدود کنید.
گزارش