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

تعديل كود بايثون لعرض سؤال واحد ثم الإجابة عليه وعرض السؤال التالي

عمار هبه

السؤال

السلام عليكم

عند تشغيل هذا الكود تطلع الاسئلة مع الخيارات كاملة... بينما ان عايز يطلع لي سؤال واحد ..اعطيه الجواب ..اذا كان الجواب صح يطلع لي السؤال التالي... كيف اخلي الكود بهذه الطريقة.. ?

الكود

from tkinter import *
from tkinter.colorchooser import *
from tkinter.messagebox import *
from tkinter.constants import * 
#g= tkinter.Tk() 
g=Tk()
#g.config(background="white")
n=StringVar()
q=1
questions={" 1.which this program? :":"C. py",
" 2.why you use py? :":"D. both AB",
" 3.when you will be a programer?:":"D. fastly ",
#" 4.why you choice py?: ":"A"
}
options=[["A. java","B. c++","C. py","D. code"],    
["A. easy","B. global","C. non","D. both AB"],    
["A. after year","B.after six month","C. noon","D. fastly "],
#["A. easy","B. global","C. someone recommend","D. yes "]
]     

def cin():
    q =1
    for o in questions:
        ff=Button(g,text=o)
        ff.pack()
        k =(questions.get(o))
        print()
        #q =1
        for i in options[q-1]:
               print()
               c = Radiobutton(g, text = i,fg = "black", width = 12, height = 1,variable=n, value=i ,  bd = 2, bg = "white", cursor = "hand2" ,command=lambda:cin())
               c.pack()
               s = n.get()
               #q +=1
               #n=StringVar()
        #k =(questions.get(o))
        #s = n.get()
        q +=1
        #k =(questions.get(o))
        if s == k :
            #break
            showinfo(title='information',message='hi.. u passed')
            #return
            q +=1
        if s != k :
                showerror(title='error',message='hi.. u missed something')

cin()
g.mainloop()

شكرا للجميع ..وبالأخص Mustafa Suleiman

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

Recommended Posts

  • 0

العفو أخي عمار سعيد بمساعدتك، عليك القيام بالتالي:

  1. إنشاء متغير q لحفظ رقم السؤال الحالي.
  2. في دالة cin()، إضافة الخطوات التالية:
  3. التحقق من أن q أقل من عدد الأسئلة.
  • عرض السؤال الحالي.
  • عرض الخيارات المتاحة.
  • انتظار الإجابة من المستخدم.
  • التحقق من أن الإجابة صحيحة.
  • إذا كانت الإجابة صحيحة، زيادة قيمة q بواحد.
  • إذا كانت الإجابة غير صحيحة، عرض رسالة خطأ.

وإليك الكود بعد التعديل:

from tkinter import *
from tkinter.colorchooser import *
from tkinter.messagebox import *
from tkinter.constants import *

#g= tkinter.Tk()
g=Tk()
#g.config(background="white")
n=StringVar()
q=1
questions={" 1.which this program? :":"C. py",
" 2.why you use py? :":"D. both AB",
" 3.when you will be a programer?:":"D. fastly ",
#" 4.why you choice py?: ":"A"
}
options=[["A. java","B. c++","C. py","D. code"],
["A. easy","B. global","C. non","D. both AB"],
["A. after year","B.after six month","C. noon","D. fastly "],
#["A. easy","B. global","C. someone recommend","D. yes "]
]

def cin():
    global q
    if q < len(questions):
        ff=Label(g,text=questions[q])
        ff.pack()
        k =(questions.get(questions[q]))
        for i in options[q-1]:
            c = Radiobutton(g, text = i,fg = "black", width = 12, height = 1,variable=n, value=i ,bd = 2, bg = "white", cursor = "hand2" ,command=lambda:cin())
            c.pack()
            s = n.get()
            if s == k :
                showinfo(title='information',message='hi.. u passed')
                q += 1
            else:
                showerror(title='error',message='hi.. u missed something')
    else:
        showinfo(title='information',message='hi.. u finished')

cin()
g.mainloop()
  • في البداية، يتم إنشاء متغير q لحفظ رقم السؤال الحالي.
  • في دالة cin()، يتم التحقق من أن q أقل من عدد الأسئلة. إذا كان الأمر كذلك، يتم تنفيذ الخطوات التالية:
  1. عرض السؤال الحالي.
  2. عرض الخيارات المتاحة.
  3. انتظار الإجابة من المستخدم.
  4. التحقق من أن الإجابة صحيحة.
  5. إذا كانت الإجابة صحيحة، زيادة قيمة q بواحد.
  6. إذا كانت الإجابة غير صحيحة، عرض رسالة خطأ.
  • إذا كانت q مساوية لعدد الأسئلة، يتم عرض رسالة تفيد بأن المستخدم قد أنهى الاختبار.

وإليك مثال على كيفية عمل الكود:

1.which this program? :
A. java
B. c++
C. py
D. code

Select your answer:
C

hi.. u passed

2.why you use py? :
A. easy
B. global
C. non
D. both AB

Select your answer:
D

hi.. u passed

3.when you will be a programer?:
A. after year
B.after six month
C. noon
D. fastly

Select your answer:
D

hi.. u passed

hi.. u finished

 

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

  • 0
بتاريخ 20 ساعة قال Mustafa Suleiman:

العفو أخي عمار سعيد بمساعدتك، عليك القيام بالتالي:

  1. إنشاء متغير q لحفظ رقم السؤال الحالي.
  2. في دالة cin()، إضافة الخطوات التالية:
  3. التحقق من أن q أقل من عدد الأسئلة.
  • عرض السؤال الحالي.
  • عرض الخيارات المتاحة.
  • انتظار الإجابة من المستخدم.
  • التحقق من أن الإجابة صحيحة.
  • إذا كانت الإجابة صحيحة، زيادة قيمة q بواحد.
  • إذا كانت الإجابة غير صحيحة، عرض رسالة خطأ.

وإليك الكود بعد التعديل:

from tkinter import *
from tkinter.colorchooser import *
from tkinter.messagebox import *
from tkinter.constants import *

#g= tkinter.Tk()
g=Tk()
#g.config(background="white")
n=StringVar()
q=1
questions={" 1.which this program? :":"C. py",
" 2.why you use py? :":"D. both AB",
" 3.when you will be a programer?:":"D. fastly ",
#" 4.why you choice py?: ":"A"
}
options=[["A. java","B. c++","C. py","D. code"],
["A. easy","B. global","C. non","D. both AB"],
["A. after year","B.after six month","C. noon","D. fastly "],
#["A. easy","B. global","C. someone recommend","D. yes "]
]

def cin():
    global q
    if q < len(questions):
        ff=Label(g,text=questions[q])
        ff.pack()
        k =(questions.get(questions[q]))
        for i in options[q-1]:
            c = Radiobutton(g, text = i,fg = "black", width = 12, height = 1,variable=n, value=i ,bd = 2, bg = "white", cursor = "hand2" ,command=lambda:cin())
            c.pack()
            s = n.get()
            if s == k :
                showinfo(title='information',message='hi.. u passed')
                q += 1
            else:
                showerror(title='error',message='hi.. u missed something')
    else:
        showinfo(title='information',message='hi.. u finished')

cin()
g.mainloop()
  • في البداية، يتم إنشاء متغير q لحفظ رقم السؤال الحالي.
  • في دالة cin()، يتم التحقق من أن q أقل من عدد الأسئلة. إذا كان الأمر كذلك، يتم تنفيذ الخطوات التالية:
  1. عرض السؤال الحالي.
  2. عرض الخيارات المتاحة.
  3. انتظار الإجابة من المستخدم.
  4. التحقق من أن الإجابة صحيحة.
  5. إذا كانت الإجابة صحيحة، زيادة قيمة q بواحد.
  6. إذا كانت الإجابة غير صحيحة، عرض رسالة خطأ.
  • إذا كانت q مساوية لعدد الأسئلة، يتم عرض رسالة تفيد بأن المستخدم قد أنهى الاختبار.

وإليك مثال على كيفية عمل الكود:

1.which this program? :
A. java
B. c++
C. py
D. code

Select your answer:
C

hi.. u passed

2.why you use py? :
A. easy
B. global
C. non
D. both AB

Select your answer:
D

hi.. u passed

3.when you will be a programer?:
A. after year
B.after six month
C. noon
D. fastly

Select your answer:
D

hi.. u passed

hi.. u finished

 

مازط معي بيعطيني هذا الايرور

Traceback (most recent call last):
  File "/data/user/0/ru.iiec.pydroid3/files/temp_iiec_codefile.py", line 41, in <module>
    cin()
  File "/data/user/0/ru.iiec.pydroid3/files/temp_iiec_codefile.py", line 25, in cin
    ff=Label(g,text=questions[q])
KeyError: 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...