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

خطأ في كود بايثون وتحسين كتابة برنامج للتحقق من الإجابات

عبدالله الذويب

السؤال

Qustion1 = 4+4
x = int(input("inter your answer : "))
Qustion2 = 2*3
y = int(input("inter your answer : "))
Qustion3 = 5**3
z = int(input("inter your answer : "))
result1 = 1 if x==Qustion1 else result1 = 0
result2 = 1 if y==Qustion2 else result2 = 0
result3 = 1 if z==Qustion3 else result3 = 0

sum = result1 + result2 + result3
print(sum)

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يوجد خطأ في السطر السادس من البرنامج.

حيث لا يمكن استخدام معاملات مثل "result1 = 0" في تعبير شرطي مثل "1 if x==Qustion1 else result1 = 0".

ويجب استخدام فقط التعبير الشرطي دون المعاملات، ولذلك يمكن إصلاحه عن طريق استخدام التعبير الشرطي في السطر السادس بدون المعاملات كما يلي:

result1 = 1 if x==Qustion1 else 0
result2 = 1 if y==Qustion2 else 0
result3 = 1 if z==Qustion3 else 0

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

1- استخدام دالة لتقوم بطباعة السؤال واستقبال الإجابة، وذلك لتجنب تكرار الأكواد المتشابهة. 

def ask_question(question, answer):
    user_input = int(input(question))
    return 1 if user_input == answer else 0

result1 = ask_question("What is 4 + 4? ", 8)
result2 = ask_question("What is 2 * 3? ", 6)
result3 = ask_question("What is 5 ** 3? ", 125)

sum = result1 + result2 + result3
print(sum)

2- استخدام حلقة تكرارية مثل for لتكرار الأسئلة وجمع النتائج.

questions = [("What is 4 + 4? ", 8), ("What is 2 * 3? ", 6), ("What is 5 ** 3? ", 125)]
sum = 0

for question, answer in questions:
    user_input = int(input(question))
    if user_input == answer:
        sum += 1

print(sum)

3- استخدام القوائم لتخزين الأسئلة والإجابات، وذلك لتسهيل تعديل وإضافة الأسئلة. 

questions = [
    {"question": "What is 4 + 4? ", "answer": 8},
    {"question": "What is 2 * 3? ", "answer": 6},
    {"question": "What is 5 ** 3? ", "answer": 125},
]

sum = 0

for q in questions:
    user_input = int(input(q["question"]))
    if user_input == q["answer"]:
        sum += 1

print(sum)

 

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

  • 0

هذا الكود الصحيح 

Qustion1 = 4 + 4
x = int(input("Enter your answer: "))
Qustion2 = 2 * 3
y = int(input("Enter your answer: "))
Qustion3 = 5 ** 3
z = int(input("Enter your answer: "))
result1 = 1 if x == Qustion1 else 0
result2 = 1 if y == Qustion2 else 0
result3 = 1 if z == Qustion3 else 0

sum = result1 + result2 + result3
print(sum)

كانت هناك مشكلة في الكود الأصلي:

حدث خطأ في التعبيرات الشرطية result1 و result2 و result3 . لا يمكننا تعيين قيمة لمتغير واستخدامه في نفس التعبير في بايثون. نحتاج إلى فصل التخصيص والمقارنة إلى تعبيرين منفصلين. في الكود المصحح ، نقوم أولاً بتعيين 1 أو 0 لكل متغير result  بناءً على ما إذا كانت إجابة المستخدم صحيحة أم لا ، ثم نلخص هذه القيم للحصول على النتيجة الإجمالية.

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...