不久前我确实在空闲时间做了一个简单的calk,但是在想要改进之后,它在函数中叠加了一个只清除一个数字的函数。我确实玩了一下,大多数错误都来自:“TypeError:不支持的操作数类型 - :'str'和'int'”。我不久前开始学习编程,所以有时候有点邋..有人可以帮我理解出了什么问题吗?
这是我到目前为止所做的,代码的一部分:
numOf = ""
numberEt = StringVar()
CalkEntry = Entry(calk, textvariable = numberEN).grid(row = 0, column = 1, columnspan = 8)
def butPress(num):
global numOf
numOf = numOf + str(num)
numberEt.set(numOf)
def varPress():
global numOf
total = str(eval(numOf))
numberEt.set(total)
def Clear():
global numOf
numOf = ""
numberEt.set("")
def BClear():
global numOf
numOf = numOf - 1
numberEt.set(numOf)
答案 0 :(得分:0)
我不清楚为什么你使用数字作为字符串,但问题出在Bclear()
函数中:
def BClear():
global numOf
numOf = str(int(numOf) - 1)
numberEt.set(numOf)
虽然操作数符号+
对于字符串类型是可接受的,因为它连接字符串,但不能使用操作数-
。
小心使用字符串,str(4) + str(5)
表示45
,而非9