我收到 else 陳述句的錯誤,但 if 陳述句沒有,它們應該是相同的。我無法指出為什么會出現錯誤。
這是錯誤:
line 27, in <module>
Y.append(int(i))
ValueError: invalid literal for int() with base 10: 'm:'
這是代碼,我還沒有完成,我還在檢查錯誤:
from tkinter import *
root = Tk()
root.title("Y=mX c Graph")
def startfunc():
string =''
for x in Y:
string = string str(x) '\n'
my_label.config(text=string)
X=[]
Y=[]
for x in range(2):
e = Entry(root)
e.grid(row=0, column=x, padx=5, pady=10)
if(x==1):
e.insert(0,"X:")
i = e.get()
i.lstrip(":")
X.append(int(i))
else:
e.insert(0,"m:")
i = e.get()
i.lstrip(":")
Y.append(int(i))
button = Button(root, text="Start", command=startfunc)
button.grid(row=0,column =3,padx=5,pady=10)
my_label = Label(root,text='')
root.mainloop()
uj5u.com熱心網友回復:
lstrip(':'):僅當它位于字串的開頭但您有:第二個字符時才洗掉。也許您需要split(":")創建兩個字串 - before:和 after :。或者也許您應該將其切片i = i[2:]以從開頭洗掉兩個字符。
但還有其他問題。Entry不像input()- 它不等待您的資料。它只通知tkinter它必須在視窗中顯示的內容。如果您get()在Entry之后直接使用,則會得到空字串或只有"m:". 你必須.get()在startfunc
最小的作業示例。
我把X:,m:如Labels上述Entry所以我沒有從價值這是我從拿到洗掉它Entry。
對于兩個Entries,在沒有for-loop 的情況下創建它們更簡單。并且代碼更具可讀性。
但是如果你有更多,Entries那么我會使用for-loop withlist或tuple代替range()
for number, text in enumerate(["X:", "m:"]):
完整代碼:
import tkinter as tk # PEP8: `import *` is not preferred
# -- functions ---
def startfunc():
new_x = entry_x.get()
new_m = entry_m.get()
X.append(int(new_x))
Y.append(int(new_m))
string = "\n".join([str(i) for i in X])
label_x.config(text=string)
string = "\n".join([str(i) for i in Y])
label_m.config(text=string)
# --- main ---
X = [] # PEP8: spaces around `=`
Y = []
root = tk.Tk()
root.title("Y=mX c Graph")
# ---
l = tk.Label(root, text="X:")
l.grid(row=0, column=0, padx=5, pady=10)
entry_x = tk.Entry(root)
entry_x.grid(row=1, column=0, padx=5, pady=10)
l = tk.Label(root, text="m:")
l.grid(row=0, column=1, padx=5, pady=10)
entry_m = tk.Entry(root)
entry_m.grid(row=1, column=1, padx=5, pady=10)
# ---
button = tk.Button(root, text="Start", command=startfunc)
button.grid(row=1, column=3, padx=5, pady=10)
# ---
label_x = tk.Label(root)
label_x.grid(row=2, column=0, padx=5, pady=10)
label_m = tk.Label(root)
label_m.grid(row=2, column=1, padx=5, pady=10)
# ---
root.mainloop()

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/375692.html
