求助:使用Python开发符合指定输出规范的星系分析工具
Python 星系分析器(Galaxy Analyzer)实现
以下代码严格匹配指定的交互流程、运算规则与输出格式,无需额外第三方依赖,可直接在Python 3.6+环境运行:
def run_galaxy_analyzer(): print("=== 欢迎使用星系分析器(Galaxy Analyzer) ===") while True: # 数据采集阶段 galaxy_count = int(input("请输入待分析的星系数目:")) total_planet = 0 total_revenue = 0 # 区间计数对应规则:<20000美元、20000(含)-40000美元、40000(含)-60000美元、60000(含)-80000美元、80000美元及以上 range_count = [0, 0, 0, 0, 0] for g_idx in range(galaxy_count): planet_num = int(input(f"请输入第{g_idx+1}个星系包含的行星数目:")) galaxy_revenue = 0 for p_idx in range(planet_num): rev = float(input(f"请输入第{g_idx+1}个星系的第{p_idx+1}颗行星上一年度收入(美元):")) galaxy_revenue += rev total_revenue += rev total_planet += planet_num # 按单星系平均收入划分区间 galaxy_avg_rev = galaxy_revenue / planet_num if galaxy_avg_rev < 20000: range_count[0] += 1 elif 20000 <= galaxy_avg_rev < 40000: range_count[1] += 1 elif 40000 <= galaxy_avg_rev < 60000: range_count[2] += 1 elif 60000 <= galaxy_avg_rev < 80000: range_count[3] += 1 else: range_count[4] += 1 # 统计指标计算 avg_planet_per_galaxy = total_planet / galaxy_count avg_rev_per_planet = total_revenue / total_planet avg_rev_per_galaxy = total_revenue / galaxy_count # 结果输出 print("\n=== 本次星系分析统计结果 ===") print(f"行星总数量:{total_planet}") print(f"单星系平均行星数:{avg_planet_per_galaxy:.2f}") print(f"行星平均收入:{avg_rev_per_planet:.2f}美元") print(f"星系平均收入:{avg_rev_per_galaxy:.2f}美元") print("星系收入区间分布:") print(f"- 收入低于20000美元:{range_count[0]}个") print(f"- 20000美元(含)至40000美元:{range_count[1]}个") print(f"- 40000美元(含)至60000美元:{range_count[2]}个") print(f"- 60000美元(含)至80000美元:{range_count[3]}个") print(f"- 80000美元及以上:{range_count[4]}个") # 循环控制 next_turn = input("\n是否分析其他象限?(输入no结束程序,其他任意输入继续):").strip().lower() if next_turn == "no": print("感谢使用星系分析器,程序已退出。") break if __name__ == "__main__": run_galaxy_analyzer()
规则匹配说明
- 程序启动后优先展示欢迎语,严格按顺序引导用户录入待分析星系数目、各星系行星数量、每颗行星年度收入,无额外冗余交互
- 所有统计逻辑完全对齐要求:
- 行星总数量为所有录入星系的行星数累加值
- 单星系平均行星数=行星总数量/待分析星系数目
- 行星平均收入=全量行星收入总和/行星总数量
- 星系平均收入=全量行星收入总和/待分析星系数目
- 星系收入区间分布以单星系平均收入为统计依据,区间边界完全匹配给定规则
- 单轮统计完成后自动触发循环询问,仅当用户输入
no时输出致谢语终止程序,其余输入将开启新一轮象限分析。
内容的提问来源于stack exchange,提问作者pythoncoder
相关产品推荐
相关产品推荐

