我正在尝试创建一个基本的股票交易算法。该算法中包含的一件事是,在确定要购买多少股票后,从用户总数中减去正确的金额。该问题发生在“ int(money_data)-= int(round(float(stockamounts [i])* float(prices [i]))))”行上。语法错误指向“ int(money_data)。”我希望我以一种有意义的方式解释了该问题。谢谢您的帮助。
for i in stock_symbols:
stock_url = "https://www.nasdaq.com/symbol/" + str(i)
stock_data = requests.get(stock_url)
file = open("data.txt", "w")
file.write(str(stock_data.content))
file.close()
file = open("data.txt", "r")
stock_data = file.read()
file.close()
stock_data = re.findall(r'<div id="qwidget_lastsale" class="qwidget-dollar">(.*?)</div>', str(stock_data))
for i in stock_data:
print(str(i.strip('$')))
price = i.strip('$')
prices.append(price)
stock_amounts = []
print(str(stock_symbols[0]) + " | " + str(round(float(money_amount) / float(prices[0]))))
stock_amounts.append(round(float(money_amount) / float(prices[0])))
for x in range(len(prices)):
print(str(stock_symbols[x]) + " | " + str(round(float(money_amount) / float(prices[x]))))
stock_amounts.append(round(float(money_amount) / float(prices[x])))
print(len(stock_amounts))
for i in stock_amounts:
print(stock_amounts[i])
int(money_data) -= int(round(float(stock_amounts[i]) * float(prices[i])))
print(money_data)
答案 0 :(得分:0)
如错误所示,你
无法分配给[a]函数调用
假设您有一个函数f:
>>> def f(x);
... return 3*x+4
当你
>>> f(4) = 5
您实际上是什么意思?您无法从逻辑上解释在这种情况下应该发生的情况,因为从根本上(在本示例中),这就像说16 = 5
,我希望您同意,这是没有道理的。
是的,您在调用中使用了一个变量,并使用了-=
运算符。
尽管如此,a -= b
运算符还是a = a-b
的缩写(尽管您可以重载它们来做不同的事情),这显然是一个赋值(即使您重载,它仍然是分配)。
您有两种(一半)的可能性:
val = int(val-to_sub)
中的更长格式val -= to_sub; val = int(val)
(请实际添加额外的一行,不要使用;
)int()
。如果您仅注意对int
进行加,减,乘或除运算(或使用//
进行除法),则可以确保该值保持int