اذهب إلى المحتوى

السؤال

نشر

لدي سؤال بسيط بخصوص التعامل مع القواميس python

قمت بإنشاء مشروع بسيط يمثل دليل هاتف بإستعمال القواميس، بحيث يقوم بإستقبال رقم الهاتف و يعيد لي اسم صاحب الهاتف متبوعا بالرقم كما هو موضح ادناه .

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

Screen Shot 2022-06-22 at 10.39.37 AM.png

Recommended Posts

  • 1
نشر

يرجى تعديل السؤال وإرفاق الشيفرة ضمن الصورة بشكل نصي،

لا داعي لاستخدام while مع break للتحقق من مساواة الاسم المدخل مع قيمة العنصر الحالي، يمكن استخدام if مباشرةً بدلًا منها، وبعد العثور على القيمة وعرضها يمكن الخروج من البرنامج باستخدام quit كالتالي:

for key, value in phone_book.items():
  if xx == value:
    print(...)
    print('thank you')
    quit() // نخرج من البرنامج عند العثور على القيمة

بعد تنفيذ الشيفرة السابقة يمكن طباعة رسالة تعبر عن عدم العثور على اسم صاحب الهاتف:

for key, value in phone_book.items():
  // ..

print('Phone not found')

ويمكن التحقق من صحة الرقم المُدخل قبل بدء عملية البحث والخروج من البرنامج حتى لا يتم تنفيذ الشيفرات اللاحقة:

if len(xx) != 10:
  print('Invalid phone number, please enter a 10 digit number')
  quit()


for key, value in phone_book.items():
  // ..

يمكنك الاستفادة من قراءة المقالات التالية:

 

 

  • 0
نشر

فعلاً سؤال بسيط وحله أبسط

الحل هي جملة شرطية صحيح كلامك  ولكن الفكرة التي سنقوم بها هي

سنُعرف متغير قيمته None او فارغ  وعند العثور على اسم المستخدم ورقمه سنضع قيمة الkey الذي بحالتنا هو الاسم سنضعها داخل المتغير الذي عرفناه ومن ثم قبل نهاية البرنامج نضع جملة شرطية نفحص هل المتغير الذي عرفناه قيمته مازالت None او فارغة

اذن نقوم بطباعة الرقم المدخل غير صحيح

اذا لم تكن قيمته فارغة فسيتجاهل البرنامج الشرط وسيكون طبع الرقم والاسم

انظر الى الكود لتتضح الفكرة :

phone_number = {'Amal': 111, 'Mohammed': 222, 'Heroo': 333, 'Haroun': 444}

xx = int(input('Enter the number : '))

phone_belong_to = None

for k, v in phone_number.items():
    if v == xx:
        print('this phone number', v, 'belong to ', k)
        phone_belong_to = k
        break

if phone_belong_to is None:
    print('The input phone number is not found !')

print('Thank You !')

ارجو ان تكون وضحت الفكرة تحياتي.

  • 0
نشر
بتاريخ On 22‏/6‏/2022 at 11:45 قال Hassan Hedr:

يرجى تعديل السؤال وإرفاق الشيفرة ضمن الصورة بشكل نصي،

لا داعي لاستخدام while مع break للتحقق من مساواة الاسم المدخل مع قيمة العنصر الحالي، يمكن استخدام if مباشرةً بدلًا منها، وبعد العثور على القيمة وعرضها يمكن الخروج من البرنامج باستخدام quit كالتالي:

for key, value in phone_book.items():
  if xx == value:
    print(...)
    print('thank you')
    quit() // نخرج من البرنامج عند العثور على القيمة

بعد تنفيذ الشيفرة السابقة يمكن طباعة رسالة تعبر عن عدم العثور على اسم صاحب الهاتف:

for key, value in phone_book.items():
  // ..

print('Phone not found')

ويمكن التحقق من صحة الرقم المُدخل قبل بدء عملية البحث والخروج من البرنامج حتى لا يتم تنفيذ الشيفرات اللاحقة:

if len(xx) != 10:
  print('Invalid phone number, please enter a 10 digit number')
  quit()


for key, value in phone_book.items():
  // ..

يمكنك الاستفادة من قراءة المقالات التالية:

 

 

شكراً جزيل لك ساعدتني كثير, بس عندي سؤال كيف اضيف مستخدم جديد للقاموس ؟

  • 0
نشر
بتاريخ On 18‏/2‏/2023 at 23:18 قال فهد العتيبي7:

شكراً جزيل لك ساعدتني كثير, بس عندي سؤال كيف اضيف مستخدم جديد للقاموس ؟

 يمكن إضافة مستخدم جديد إلى القاموس عن طريق إضافة مفتاح جديد مع القيمة المرادة. على سبيل المثال، يمكن إضافة المستخدم "Ali" برقم هاتف "4444444444" بالطريقة التالية:

phone_books["Ali"] = 4444444444

القاموس (Dictionary) في لغة البرمجة بايثون هو نوع من البيانات المتاحة، ويسمح بتخزين القيم باستخدام مفاتيح. يتم تخزين المفاتيح والقيم كزوج من القيم في القاموس. وهذا يمكن أن يكون مفيدًا في العديد من السيناريوهات مثل تخزين قيم نظام إدخال المستخدم، أو متابعة ترتيب بناء جدول البيانات.

على سبيل المثال، يمكن إنشاء قاموس بسيط لتخزين بيانات الشخص الأول كالتالي:

person = {"name": "John", "age": 28, "city": "New York"}

وبما أن القاموس يستخدم المفاتيح لتخزين القيم، فإنه يمكن الوصول إلى القيم باستخدام اسم المفتاح.

على سبيل المثال، يمكن الوصول إلى اسم الشخص في القاموس السابق كالتالي:

print(person["name"])

سيتم طباعة "John" في الشاشة.

يمكن أيضًا إضافة عناصر إلى القاموس بسهولة. على سبيل المثال، يمكن إضافة عنصر "email" لشخصنا السابق كالتالي:

person["email"] = "john@example.com"

يمكن حذف عنصر من القاموس باستخدام الأمر del كالتالي:

del person["city"]

يمكن الوصول إلى قائمة بجميع المفاتيح في القاموس باستخدام الأمر keys() كالتالي:

print(person.keys())

ويمكن الوصول إلى قائمة بجميع القيم في القاموس باستخدام الأمر values() كالتالي:

print(person.values())

يمكن الوصول إلى قائمة بجميع العناصر في القاموس باستخدام الأمر items() كالتالي:

print(person.items())

يمكن استخدام القاموس في العديد من السيناريوهات المختلفة، بما في ذلك تخزين معلومات المستخدمين، وتخزين بيانات النظام، وإدارة قوائم الاختيار والخيارات، والتعامل مع البيانات المسترجعة من قواعد البيانات، والعديد من التطبيقات الأخرى.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...