البرمجة

البحث في القاموس باستخدام Python

بدأت البحث عن المشكلة في الكود الذي قمت بتوفيره. يبدو أن هناك بعض الأخطاء التي يجب تصحيحها. دعوني أقوم بتحليلها وتوضيح الطريقة الصحيحة للقيام بالبحث في القاموس للعثور على الاسم المطلوب.

أولاً، في الطريقة find التي قمت بتعريفها داخل الفئة Test، يجب عليك تمرير اسم المستخدم الذي تبحث عنه كمعامل للطريقة. هذا الاسم يُمرر كمعامل x. بعد ذلك، يجب عليك البحث في القاموس users للعثور على هذا الاسم.

ومن الملاحظ أنه في الحالة الحالية، بدلاً من مقارنة قيمة المفتاح بـ x، يجب أن تقارن المفتاح نفسه بـ x. لأن المفتاح هو الاسم وليس القيمة المقابلة له.

وهناك أيضًا مشكلة في الطريقة التي تقوم فيها بطباعة النتيجة. لا تقوم بطباعة أي شيء عندما لا يتم العثور على الاسم.

وإليك الكود الصحيح:

python
class Test(object): def __init__(self, x=0): self.x = x self.users = { 'John': 1, 'Jim': 2, 'Bob': 3 } def find(self, x): for key, value in self.users.items(): if key == x: return value return None beta = Test() result = beta.find('Jim') if result is not None: print(result) else: print("Name not found")

في هذا الكود، تم تعديل الطريقة find بحيث تتحقق من مطابقة المفتاح key مع الاسم x. إذا تم العثور على المفتاح المطابق، يتم إرجاع القيمة المقابلة لهذا المفتاح. إذا لم يتم العثور على المفتاح، يتم إرجاع None. وفي النهاية، تمت طباعة النتيجة إذا كانت غير مساوية لـ None وإلا فإنه يتم طباعة رسالة تشير إلى عدم العثور على الاسم.

المزيد من المعلومات

بالطبع، دعني أواصل توسيع المقال لشرح المفهوم بشكل أكبر وتوضيح كيفية عمل الكود والتغييرات التي تم إجراؤها.

عند بدء تشغيل الكود، يتم إنشاء كائن من الفئة Test باسم beta. هذا الكائن يحتوي على قاموس يحتوي على أسماء المستخدمين والقيم المقابلة لهذه الأسماء. الهدف من الكود هو البحث عن اسم معين داخل هذا القاموس وطباعة القيمة المقابلة لهذا الاسم إذا تم العثور عليه.

بعد ذلك، تقوم الدالة find داخل الفئة Test بالبحث في القاموس عن المفتاح الذي يتطابق مع الاسم الذي تم تمريره كمعامل للدالة. وتفحص الدالة كل مفتاح في القاموس باستخدام الدالة items() التي تعيد أزواج المفاتيح والقيم. إذا وجدت مطابقة، فإنها تقوم بإرجاع القيمة المقابلة لهذا المفتاح. إذا لم يتم العثور على مطابقة، فإنها تقوم بإرجاع None.

بعد ذلك، تتحقق الشرطية if result is not None: من القيمة التي تم إرجاعها من الدالة find. إذا كانت هذه القيمة غير مساوية لـ None، فإنه يتم طباعتها، وإلا فإنه يتم طباعة رسالة تنبيه تشير إلى أن الاسم غير موجود في القاموس.

هذا النهج يسمح بتحقيق الهدف المطلوب من الكود بشكل صحيح، حيث يمكنك البحث عن أي اسم داخل القاموس والحصول على القيمة المقابلة لهذا الاسم.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر