首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError: int()参数必须是字符串、类似字节的对象或数字,而不是'NoneType‘错误。

TypeError: int()参数必须是字符串、类似字节的对象或数字,而不是'NoneType‘错误。
EN

Stack Overflow用户
提问于 2019-04-27 00:12:52
回答 2查看 2.4K关注 0票数 1

我刚开始使用Tkinter,它说要转换为字符串,但是我的输入是一个整数,当我运行它时,它会给出以下错误:

TypeError: int()参数必须是字符串、类似字节的对象或数字,而不是'NoneType‘。

代码语言:javascript
复制
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“中使用的公式。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-27 00:19:14

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

代码语言:javascript
复制
m = callback()
p = int(m)
a = callback2()
n = int(a)

ma都被分配给None,所以您要调用int(None)。你可能是想做这样的事:

代码语言:javascript
复制
def callback():
    value=(msrp.get())
    return value

代码语言:javascript
复制
def callback2():
    age=(old.get())
    return age
票数 3
EN

Stack Overflow用户

发布于 2019-04-27 00:22:27

你根本不需要“回调”。

直接获取值

代码语言:javascript
复制
def msrpv():
    p = int(msrp.get()) 
    n = int(old.get())
    a=p*(1-0.15)**n
    amgpage=tk.Label(window9,text="$"+a)
    amgpage.pack()

请注意,valueage只在本地作用域以它们自己的函数为作用域,因此将它们放入按钮回调中不会做任何事情

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55876187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档