如何解决努力使程序具有在Python上按下按钮时会更改的变量
您以10,000块钱开始。购买费用为100,销售费用为70。
这是我到目前为止所拥有的:
import tkinter as tk
def Buy():
print("Stock bought")
global money
money = 10000
def Sell():
print("sold")
global money
money = money
root = tk.Tk()
frame = tk.Frame(root)
frame.pack()
Buy = tk.Button(frame,text="Buy(Cost 100)",fg="red",command=Buy :money-100 )
Buy.pack(side=tk.LEFT)
Sell = tk.Button(frame,text="Sell",command=Sell :money+70 )
Sell.pack(side=tk.LEFT)
root.mainloop()
我似乎无法更改可变货币,我运行了代码,它就完成了
点击购买股票
买了
9900
点击出售
已出售
10070
它不会更改为9970,而是更改为10070,有人可以告诉我我的代码有什么问题以及如何解决它。
解决方法
问题是单击功能money
时,您将Buy
重置为10,000。因此,单击“卖出”后,您得出的总和为70到10,000。这就是问题。要解决此问题,请在开头初始化变量money
,然后从money=10000
函数中删除Buy
:
import tkinter as tk
money = 10000
def Buy():
print("Stock bought")
global money
正如@TankorSmash所提到的,由于:money-100
(我正在运行Python v3.5.2),我无法使其工作。无论如何,以下代码可以使其正常工作:
import tkinter as tk
money = 10000
def Buy():
print("Stock bought")
global money
money -= 100
print(money)
def Sell():
print("sold")
global money
money += 70
print(money)
root = tk.Tk()
frame = tk.Frame(root)
frame.pack()
Buy = tk.Button(frame,text="Buy(Cost 100)",fg="red",command=Buy)
Buy.pack(side=tk.LEFT)
Sell = tk.Button(frame,text="Sell",command=Sell)
Sell.pack(side=tk.LEFT)
root.mainloop()
打印:
Stock bought
9900
sold
9970
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。