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

كيفية استعمال القاموس لعرض نتيجه ما على حسب قيمة المستخدم في بايثون؟

Jafar Ali

السؤال

لدي برنامج يقوم بطباعة جملة للمستخدم على حسب القيمة التي يكتبها المستخدم , مثال:

user_value = input("Type : ")

if user_value == "1":
  print("I like to play football")
elif user_value == "2":
  print("The sky is blue")
elif user_value == "3":
  print("Python is a programming language")

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

هذا موضع مناسب جدا لاستعمال القاموس في بايثون ، نعلم ان القاموس يختلف من المصفوفة الاعتيادية من انه يحمل مفتاح (key) لكل قيمة (value) و هذا المفتاح دائما مميز و قيمته لا تتكرر لذلك يمكنك الاعتماد عليه في هذا الحال ، اليك المثال :


# يمكنك عمل قاموس حيث ان المفتايح هي القيمة التي يمكن ان يكتبها المستخدم 

# و قيمة كل مفتاح هو الرد الذي يستخدمه البرنامج
reply = {
    "1" : "I like to play football",
    "2" : "The sky is blue",
    "3" : "Python is a programming language"
    }


r = input('type : ') # متغير فيه قيمة المستخدم


print(reply.get(r)) #get عرض قيمة المفتاح باستخدام المعامل 

لاحظ شيء مهم ، في المثال قمنا باستخدام المعامل get بدلا من هذه الطريقة لعرض النتيجه :

print(reply[r])

وذلك لانها تقوم بعرض الخطا KeyError في حال عدم وجود مفتاح بقيمة المستخدم ، اما get يقوم بعرض None اذا لم نجد المفتاح.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكنك أيضا إستخدام مصفوفة وتضع فيها جميع من الأسئلة ويمكنك إضافة العديد منها في المستقبل كي يكون الكود الخاص بك قابل للتطوير:

مثال

#هنا مصفوفة تجمع فيها جميع الأسئلة
messages = ["I like to play football","The sky is blue","Python is a programming language"]

# تطلب من المستعمل إدخال رقم
user_value = input("Type : ")

# تقوم بطباعة الرسالة مباشرة
#  بعد التأكد أن الرقم صحيح ويبدأ بالرقم 1
if(user_value >= 1 && user_value <= len(messages)) : print(messages[user_value - 1])

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...