Python财务比率计算程序:如何根据用户输入调用对应营收变量
解决动态匹配用户输入的营收变量问题
别用单独变量分别存每家公司的营收,这种写法没法动态对应用户输入,改用字典来组织数据才是最简洁安全的方案,扩展性也更强,以后加新公司、新年份的数据都方便。
重构后的代码示例
validStockTickers = ['FSLR', 'JKS'] RMB_USD_conversion_factor = 6406572060 / 40826521106 # 用嵌套字典存储:外层键是股票代码,内层键是年份 revenues = { 'FSLR': { 2019: 3063117 * 1000 }, 'JKS': { 2019: 29746287759 * RMB_USD_conversion_factor } } companyStockInput = input("Which company do you want to learn more about? (Enter stock ticker)") if companyStockInput in validStockTickers: print(f"Stock Ticker: {companyStockInput}\n\nRevenues:\n2019 Total Revenue: {revenues[companyStockInput][2019]}")
为啥不推荐用globals()/locals()?
如果非要基于你原来的变量名动态取值,可以用globals()[f'revenue_2019_{companyStockInput}'],但这种写法有安全风险——万一用户输入的内容被恶意构造,可能会访问到不该碰的全局变量,而且代码可读性差,维护起来麻烦,所以优先用字典方案。
内容的提问来源于stack exchange,提问作者user19891327
相关产品推荐
相关产品推荐

