Python如何生成随机百分比并扣除字典中各条目对应比例的数值
实现方案
实现逻辑
- 先修正现有代码的笔误:
random.ranint应为random.randint,用于生成25~50区间的整数跌幅百分比 - 给
MarketCrash方法添加@staticmethod装饰器,同时新增参数接收原始股票价格字典 - 遍历价格字典的每个条目,先计算对应数值的扣减额:扣减额 = 原价格 × (跌幅百分比/100),再用原数值减去扣减额得到新价格,结果保留2位小数更贴合实际股市价格的展示习惯
完整可运行代码
import random # 原始股票价格字典 prices = { 'SNAP': 84.55, 'AAPL': 145.76, 'TWTR': 62.25, 'TSLA': 759.05, 'NFLX': 587.55, 'FB': 363.05, 'MSFT': 299.50, 'DIS': 182.87, 'GPRO': 9.50, 'SUBX': 113.41, 'F': 13.49, 'BABA': 160.00, 'BAC': 40.40, 'GE': 100.30, 'GOOGL': 2811.00, } class major_events: @staticmethod def MarketCrash(original_prices): # 生成25-50之间的随机跌幅百分比 market_loss = random.randint(25, 50) print(f"本次股灾大盘整体跌幅:{market_loss}%") updated_prices = {} for ticker, price in original_prices.items(): # 计算单只股票扣减额 deduction = price * (market_loss / 100) # 计算新价格并保留两位小数 updated_prices[ticker] = round(price - deduction, 2) return updated_prices # 调用示例 if __name__ == "__main__": crashed_prices = major_events.MarketCrash(prices) print("股灾后股票价格:") for ticker, new_price in crashed_prices.items(): print(f"{ticker}: {new_price}")
内容的提问来源于stack exchange,提问作者dubber
相关产品推荐
相关产品推荐

