Python实现函数循环批量计算多组数值并支持结果可视化
修改方案:支持多次输入与结果可视化
先把原代码的计算逻辑封装成独立函数,再添加多输入处理逻辑,最后用matplotlib绘制结果图表。完整代码如下:
def calculate_value(n): # 保留原代码的斐波那契递推计算逻辑 f1, f2 = 1, 1 for _ in range(n - 1): f2, f1 = f2 + f1, f2 return f2 ** 2 - f1 ** 2 def get_multiple_inputs(): # 循环接收用户输入,输入q停止 inputs = [] while True: user_input = input("请输入一个正整数n(输入q结束输入):") if user_input.lower() == 'q': break try: n = int(user_input) if n >= 1: inputs.append(n) else: print("请输入大于等于1的正整数!") except ValueError: print("输入无效,请输入正整数或q!") return inputs # 获取用户输入的多个n值 n_list = get_multiple_inputs() if not n_list: print("没有有效输入,程序退出。") else: # 批量计算每个n对应的结果 result_list = [calculate_value(n) for n in n_list] # 打印计算结果 print("\n计算结果:") for n, res in zip(n_list, result_list): print(f"n={n} 时,结果为 {res}") # 绘制结果图表 try: import matplotlib.pyplot as plt plt.figure(figsize=(8, 5)) plt.plot(n_list, result_list, marker='o', linestyle='-', color='b') plt.xlabel('输入参数n') plt.ylabel('计算结果') plt.title('n与对应计算结果的关系') plt.grid(True) plt.show() except ImportError: print("\n无法绘制图表,请先安装matplotlib:`pip install matplotlib`")
代码说明:
- 计算逻辑封装:
calculate_value(n)抽离原代码核心计算逻辑,传入n直接返回结果,方便重复调用。 - 多输入处理:
get_multiple_inputs()循环接收输入,直到用户输入q;同时做了输入校验,确保输入的是有效正整数。 - 结果展示:用列表推导式批量计算结果,逐个打印后,通过
matplotlib绘制折线图展示n与结果的关联趋势。
使用示例:
运行代码后按提示输入多个n值,比如:
请输入一个正整数n(输入q结束输入):1 请输入一个正整数n(输入q结束输入):2 请输入一个正整数n(输入q结束输入):3 请输入一个正整数n(输入q结束输入):4 请输入一个正整数n(输入q结束输入):q
程序会输出每个n的结果,随后弹出图表窗口展示数据趋势。
内容的提问来源于stack exchange,提问作者Alexey Byrnov
相关产品推荐
相关产品推荐

