如何将函数获取的用户输入及运算结果存入pandas dataframe并展示
解决方案
修正后可直接运行的代码
import pandas as pd def generate_chaotic_numbers(): # 初始化空DataFrame存储所有迭代结果 result_df = pd.DataFrame(columns=["迭代次数", "第一个数值", "第二个数值"]) n = int(input("请输入需要生成的迭代次数:")) print("本程序用于演示混沌函数运算效果") x = float(input("请输入第一个0到1之间的初始数值:")) y = float(input("请输入第二个0到1之间的初始数值:")) for i in range(n): x = 3.9 * x * (1 - x) y = 3.9 * y * (1 - y) # 逐行追加当前轮的运算结果 result_df.loc[len(result_df)] = [i+1, round(x, 6), round(y, 6)] # 打印格式化的结果表 print(result_df.to_string(index=False)) # 导出结果到本地csv文件 result_df.to_csv("混沌函数运算结果.csv", index=False, encoding="utf-8-sig") return result_df # 调用函数即可完成全部逻辑,返回的df可直接用于后续运算 df = generate_chaotic_numbers() # ------------------------------ # 后续需要读取已保存的csv时直接执行以下代码即可 # import pandas as pd # df = pd.read_csv("混沌函数运算结果.csv")
核心调整说明
- 移除了原代码中存在安全风险的
eval()输入处理逻辑,改用int()、float()做输入类型转换 - 提前初始化空DataFrame,循环内逐行追加结果,解决原代码每次循环都会覆盖原有数据的问题
- 完全通过函数封装实现所有逻辑,调用后直接返回存储了所有结果的DataFrame变量,符合需求
- 内置csv导出能力,运行函数后会自动在当前工作目录生成csv文件,后续无需重新运行函数输入参数,直接读取csv即可复用历史结果
内容的提问来源于stack exchange,提问作者Falkor
相关产品推荐
相关产品推荐

