Skip to main content
 首页 » 编程设计

python之TypeError : int() argument must be a string, 类字节对象或数字,不是 'NoneType' 错误

2025年05月04日19freeliver54

我是 Tkinter 的新手,它说要转换为字符串,但我的输入是一个整数,当我运行时它给我这个错误:

TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'

import tkinter as tk 
 
window9 = tk.Tk() 
msrp = tk.IntVar() 
amgpage = tk.Label(window9, text="Mercedes Benz AMG Depreciation Calculator").pack(anchor='center') 
 
amgpage = tk.Label(window9, text="What is the MSPR of the car?: ") 
amgpage.pack() 
 
msrp = tk.Entry(window9) 
msrp.pack() 
 
msrp.focus_set() 
 
def callback(): 
    value=(msrp.get()) 
 
b = tk.Button(window9, text="Save your msrp value", command=callback,fg="red") 
b.pack() 
amgpage = tk.Label(window9, text="What is the age of the car?: ") 
amgpage.pack() 
 
old = tk.Entry(window9) 
old.pack() 
old.focus_set() 
def callback2(): 
    age=(old.get()) 
 
b = tk.Button(window9, text="Save the age of the car", command=callback2,fg="blue") 
b.pack()     
amgpage = tk.Label(window9, text="") 
amgpage.pack(anchor='w') 
def msrpv(): 
    m = callback() 
    p = int(m) 
    a = callback2() 
    n = int(a) 
    a=p*(1-0.15)**n 
    amgpage=tk.Label(window9,text="$"+a) 
    amgpage.pack() 
 
 
amgmsrp = tk.Button(window9, text="Get the current value of the car.", command=msrpv,fg="green") 
amgmsrp.pack() 
 
 
window9.geometry("400x400") 
 
window9.title("Mercedes Benz AMG Depreciation Calculator") 
 
window9.mainloop() 
 

我想使用用户给我的数字并将其代入我在程序“a=p*(1-0.15)**n”中使用的方程式。

请您参考如下方法:

您的回调没有返回语句,因此它们实际上返回的是 None。所以在这些行中:

m = callback() 
p = int(m) 
a = callback2() 
n = int(a) 

m 和 a 都被分配了 None,因此您正在调用 int(None)。你可能想做类似的事情:

def callback(): 
    value=(msrp.get()) 
    return value 

和

def callback2(): 
    age=(old.get()) 
    return age