我的预期销售价值(esv)代码将只读取最近输入的股票,也就是说,如果我输入通用汽车作为第一只股票,通用电气作为第二只股票,它只读取通用电气,因为它覆盖了通用汽车的数据。我不确定如何使esv计算每个输入的股票,因为它目前只计算输入的第一只股票。我的想法是,它应该在输入每个股票之后发生,并存储在一个新的字典中,其中包含股票符号作为键,esv作为值。但是,任务说明这个过程应该在GetSale函数中发生……这就很困难了。这样编码对我来说没什么意义。不管怎样,这是我的GetSale代码。在
def getsale():
global names
global prices
global exposure
for key in names:
symbol = key
for key in exposure:
risk_number = exposure[key][0]
shares_held = exposure[key][1]
for key in prices:
purchase_price = prices[symbol][0]
current_price = prices[symbol][1]
esv = [-((current_price - purchase_price) - risk_number * current_price) * shares_held]
print("The estimated sale value of ", symbol, "is ", sorted(esv(),reverse = True))
编辑: 好吧,我从另一个渠道得到了答案。我需要创建一个新的空列表。此外,不需要有多个for循环,因为它们在一个循环中工作得很好。然后,我只需要将esv和stock符号附加到我的列表中,并对其进行排序/打印(我将其颠倒,以便打印出最高的数字)。我会把我自己的问题的答案贴出来,但我必须等上几个小时。因此,这里是修改后的代码。在
^{pr2}$但是,有谁能告诉我只打印列表中第一个的方法吗?我想这个代码可以工作:
print(sorted(sellGuide[0], reverse = True))
但我得到了以下错误:
File "D:\Python\Python Modules\stock_portfolio.py", line 43, in getsale
print(sorted(sellGuide[0], reverse = True))
TypeError: unorderable types: float() < str()
你的代码应该是
在您的示例中,您将获得sellGuide中的第一个元素并对其进行排序。所以你在int/float上运行sort,这行不通。在
相关问题 更多 >
编程相关推荐