سؤال

أحاول إنشاء وظيفة بحث للعمل مع مشاكل الجبر. أريد شيئًا مثل Wolfram Alpha ولكني أقوم ببناء إطار بيثون لذلك. يجب أن يكون قادرًا على اكتشاف متغيرات ومعادلات متعددة على جانبي العلامة المتساوية. لقد سألت مؤخرًا عن مدقق البرنامج ، لذا أحتاج إلى حلقة تمر عبر مجموعة من الأرقام وتكتشف ما يساوي كل من المتغيرات. مشكلتي هي العشرية. أقترح استخدام وظيفة البحث. هنا هو حلول المعادلة:

def s_equation(a):
   left, right = a.split('=')
   return eval(left) == eval(right)

أي مساعدة مفيدة!

هل كانت مفيدة؟

المحلول

ال eval()لن يعمل S ، لأن اليسار واليمين هما سلاسل ، وليس تعبيرات. علاوة على ذلك ، سيتعين عليك إجراء التحقق الكبير لجعل ما يمكن للمستخدم إدخاله تعبيرًا صالحًا للبيثون. فكر في بعض القيم التي قد تحصل عليها:

# The typical person's notation for x-squared isn't valid Python
x^2 + x - 3
# 3x means 3 * x to us, but to python it means nothing
3x + 4
# Some people use % to represent division, but that's a modulo operator to Python
3 % 4x
# Python doesn't understand the distributive property
3(4 - x)
# People might use some functions in a way Python doesn't understand
cos x
# Square brackets are used synonymously with parentheses
x[(x^2 - 5)(x^3 - 5x)]

لذلك ، باختصار ، ستحتاج إلى نوع من المحرك لتحويل معادلات النص العادي إلى تعبيرات Python صالحة. هذه ليست مهمة سهلة ، ولكن يمكن القيام بها بالتأكيد.

على الرغم من أن مشروعك طموح للغاية ، إلا أنني أعتقد أنه طريقة رائعة لاستخدام Python! إذا توصلت إلى طريقة ذكية لتحويل المعادلات كأصوات إلى بيثون صالحة ، فيجب عليك مشاركتها على الفور لأن عددًا قليلاً من الأشخاص في مجتمع الرياضيات يمكن أن يستخدموا ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top