2017-08-04 76 views
-2

我想英里轉換成公里,但我得到一個錯誤,同時運行的代碼(Python2.7.13):轉換爲公里

import sys 
from Tkinter import * 

def value(): 
    q = float(num1.get()) 
    d = float(q+1.6) 
    label = Label(root, text='the value entered in kms is'%d).pack(side=BOTTOM) 
    return 

root = Tk() 
root.title("kms converetr") 
root.geometry('400x450+400+150') 
frame = Frame(root) 
frame.pack() 

num1 = StringVar() 
radbtn = StringVar() 
radbtn.set(None) 

frame1 = Frame(root) 
frame1.pack(side=TOP) 

label1 = Label(frame1, text='enter miles for conversion', fg='black',relief=RAISED) 
label1.pack(side=TOP) 

txtDisplay=Entry(frame1,textvariable=num1,bd=30,justify='center') 
txtDisplay.pack(side=TOP) 

radio1 = Radiobutton(frame1, text='kms', variable=radbtn, value='kms', command=value).pack(side=BOTTOM) 
button=Button(frame1, text='miles int0kmsis', command=value).pack(side=BOTTOM) 


root.mainloop() 
+1

請格式化您的代碼,並在您的問題中包含異常追溯。 –

+1

一眼就可以看出問題是「以千碼爲單位輸入的值是'%d'。您無法將值格式化爲沒有佔位符的字符串。你應該閱讀格式字符串。 –

+1

如果您要提出有關錯誤的問題,那麼您需要*在問題本身中包含錯誤消息*。 –

回答

0

value()功能,您應該txtDisplay.get()並獲得價值打印浮動追加正確使用+ str(d)

字符串正確的代碼是:

import sys 
from Tkinter import * 

def value(): 
    q = float(txtDisplay.get()) 
    d = float(q+1.6) 
    label = Label(root, text='the value entered in kms is' + str(d)).pack(side=BOTTOM) 
    return 

root = Tk() 
root.title("kms converetr") 
root.geometry('400x450+400+150') 
frame = Frame(root) 
frame.pack() 

num1 = StringVar() 
radbtn = StringVar() 
radbtn.set(None) 

frame1 = Frame(root) 
frame1.pack(side=TOP) 

label1 = Label(frame1, text='enter miles for conversion', fg='black',relief=RAISED) 
label1.pack(side=TOP) 

txtDisplay=Entry(frame1,bd=30,justify='center') 
txtDisplay.pack(side=TOP) 

radio1 = Radiobutton(frame1, text='kms', variable=radbtn, value='kms', command=value).pack(side=BOTTOM) 
button=Button(frame1, text='miles int0kmsis', command=value).pack(side=BOTTOM) 


root.mainloop() 

順便說一句,我想你英里至公里轉換是錯誤的,但這是另一個問題。

+0

d = float(q * 1.6)這將得到正確的答案 – Shivaprasad