0

データが入力されていない場合、プログラムが出力してエラーメッセージを表示するだけでなく、ユーザーにテストを完了するように求めるようにしたいと考えています。また、すべての質問にマークを付けて、結果ページに結果を印刷する傾向があります。8つの質問があるとしましょう。3 バンド <= 2 プリントはもっと頑張る必要があります。4 プリントは良いですが、まだ練習が必要で、8 は優れています。

from Tkinter import *
import tkMessageBox

app = Tk()
# Message Window

def messagePop():
    get_data()


# Background colour

app.configure(bg='gray')



# The position and size relative to the screen
app.geometry('500x500+450+140')

# The title of the program
app.title('Maths4Primary')

# The icon
app.wm_iconbitmap('MathIcon.ico')

# Object positioning in the program
# def GridPos:

# Q1 -- I might use the place() method for the screen layout.
Label(app, text="Q1",bg="white", fg="blue").place(x=15,y=10)

Label(app, text="Put these prices in order", bg="gray", fg="blue").place(x=100,y=10)

Label(app, text= u"\xA3" + "20.50", bg="gray", fg="blue").place(x=50,y=35)

Label(app, text=u"\xA3" + "2.50", bg="gray", fg="blue").place(x=200,y=35)

Label(app, text= u"\xA3" + "0.25", bg="gray", fg="blue").place(x=350,y=35)

# Entry







def get_data():
    global x_data,y_data,z_data,a_data
    a_data = float(a.get())
    x_data = float(x.get())
    y_data = float(y.get())
    z_data = float(z.get())

    print "x_data = {0} , y_data = {1} , z_data = {2}".format(x_data,y_data,z_data)

def messagePop():
    get_data()

    if (x_data==0.25) and (y_data==2.5) and (z_data==20.5) and (a_data==144):   
        print("Well done")
      #  tkMessageBox.showinfo('Results', '100% Very Good')


    elif (x_data!=0.25) and (y_data!=2.5) and (z_data!=20.5) and (a_data!=144):
        print("Please complete the test !")

    else:
        print("Something is incorrect")






# Defining the entry boxes

a = Entry(app)
x = Entry(app)
y = Entry(app)
z = Entry(app)

Label(app, text="Q2", bg="white", fg="blue").place(x=15,y=85)







Label(app, text="Calculate 336 - 192", bg="gray", fg="blue").place(x=100,y=85)



# Where the entry boxes are in the window
a.place(x=50,y=105)
x.place(x=50,y=60)
y.place(x=200,y=60)
z.place(x=350,y=60)

# Buttons
B1 = Button(app,text='Mark it',bg='gray99',fg='black', command = messagePop ).place(x=425,y=450)

app.mainloop()
4

1 に答える 1

0

次のコードが原因で、コードが失敗しています。

def get_data():
    global x_data,y_data,z_data,a_data
    a_data = float(a.get())
    x_data = float(x.get())
    y_data = float(y.get())
    z_data = float(z.get())

    print "x_data = {0} , y_data = {1} , z_data = {2}".format(x_data,y_data,z_data)

フィールドが空の場合、または数値が含まれていない場合、文字列を float に変換しようとすると、この関数は例外を発生させます。このようなエラーをキャッチできるように、そのコードまたはこの関数を呼び出すコードの周りに try/catch ブロックを配置する必要があります。

于 2013-10-17T13:46:42.033 に答える