我对实际编写Python代码相当陌生
我正在为自己编写一个股票计划,作为我的第一个Python挑战
经过3000多行代码和9秒的延迟来打印我的分析,我已经完成了分析一只股票的基本代码
我现在在Jupyter笔记本中工作,我所有的代码都在同一个工作簿中,所以不导入模块或工作簿
现在,我能够为一家已经在索引上有一段时间的公司编写整个代码,但是,我遇到了一些问题,新公司没有返回值,索引不在列表中
到目前为止,我已经能够解决所有的问题,但是可能是时候寻求一些输入了,因为我相当确定我的代码已经过多了,必须有比我目前拥有的更好的方法来编写它
例如,我有这样的代码
stock_eps = get_earnings_history('STOCK')
stock_latest_eps4 = stock_eps[4]
stock_latest_eps4_rate = stock_latest_eps4["epsactual"]
stock_latest_eps4_date = stock_latest_eps4["startdatetime"]
stock_eps
是一个列表
我用它来:
if
语句和计算中使用它李>我需要结束变量是一个整数或浮点,这就是为什么它看起来像这样
虽然这对一家拥有足够年资的公司来说非常有效,但对于那些没有年资的公司来说,它会返回超出范围的列表索引
我需要它成为每个公司的基础模板,不管它返回什么,但它的解决方案不会返回错误,这样我就不必根据公司修复每个文件
所以我需要每个变量中都有一个不中断的实际数字
关于KeyError
问题,我做了以下工作:
例如,我正在导入一些数据,例如:
stock.info
它会返回一本字典,甜心
那我就这样做了
mapping = stock.info
stock_sec = mapping['sector'] #Company Sector
因此,我遇到了一个新公司没有一个键值整数的问题,比如说跟踪市盈率
我这样做就解决了这个问题
if isinstance(stock_tep, type(None)):
stock_tep = "-1"
else:
pass
这是可行的,但我随后创建了一个值为0或-1的变量,该值不准确,因此可能会扭曲分析,因为许多变量稍后会用于if语句,其中如果0,则等于某个可能不准确的数字。当我想使用这个变量时,我可以通过添加更多的代码来解决这个问题,但是必须有更好的方法来处理这个问题吗
检查可能有或可能没有某个键的词典时,可以使用
get
方法避免KeyError:vs
vs
如果字典
stock_latest_eps4
包含键startdatetime
,则这三个键的效果完全相同如果
stock_latest_eps4
不包含startdatetime
键,那么第一个将引发异常,第二个将给您None
,最后一个将给您default_value
变量的值相关问题 更多 >
编程相关推荐