微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

努力使程序具有在Python上按下按钮时会更改的变量

如何解决努力使程序具有在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 举报,一经查实,本站将立刻删除。