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

السؤال

نشر

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

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...