当前位置: 首页 > ai >正文

各国健康指标数据查询

目录

一、分步骤去逐步完善

步骤 1:准备文件

步骤 2:读取文件

逐行解释

步骤 3:处理一行数据

步骤 4:构建年份字典

逐行解析

1. 创建空字典

2. 初始化列索引

3. 遍历年份范围

4. 防止索引越界

5. 转换数据并处理异常

6. 存入字典并更新索引

7. 打印结果

步骤 5:构建全局字典

逐行解析

1. 创建外层字典

2. 遍历文件中的行

3. 分割每行数据

4. 提取国家名称

5. 创建年份字典

6. 存入外层字典

7. 输出结果

步骤 6:查询数据

逐行解析

1. 显示欢迎信息和可查询国家

2. 获取用户输入

3. 查询并输出结果

二、完整代码


一、分步骤去逐步完善

步骤 1:准备文件

  1. 将 CSV 文件 人口增长(年度百分比).csv 放在一个你能记住的位置(比如桌面)。

  2. 确认文件路径是否正确:

    • 例如,如果文件在桌面,路径可能是:
      r"C:\Users\你的用户名\Desktop\人口增长(年度百分比).csv"

    • 代码中需要用 r 前缀处理路径中的反斜杠。

步骤 2:读取文件

# 定义文件路径(替换为你的实际路径)
file_path = r"D:\Python\健康医学数据分析\第6章 文件与数据处理源代码\人口增长(年度百分比).csv"# 打开文件(使用 with 自动关闭文件)
with open(file_path, "r", encoding="utf-8") as f:# 读取所有行(每行是一个字符串)lines = f.readlines()print("文件内容示例(前5行):")for line in lines[:5]:print(line.strip())  # 去掉换行符

逐行解释

  1. file_path = r"..."

    • 作用:定义文件的完整路径。

    • 注意

      • r 表示“原始字符串”,防止路径中的反斜杠 \ 被错误转义(例如 \n 会被误认为是换行符)。

      • 你需要将路径替换为你的 CSV 文件实际位置。

  2. with open(...) as f:

    • 作用:安全打开文件。

    • 优点:使用 with 语句后,文件会在代码块结束后自动关闭,无需手动调用 f.close()

  3. lines = f.readlines()

    • 作用:一次性读取文件的所有行,存入列表 lines

    • 结果lines 是一个列表,每个元素是文件的一行内容(字符串形式)。

  4. print("文件内容示例(前5行):")

    • 作用:输出提示信息,告诉用户接下来要显示文件的前5行内容。

  5. for line in lines[:5]:

    • 作用:遍历 lines 列表的前5个元素(即文件的前5行)。

    • lines[:5] 的含义:列表切片,取从第0个元素到第4个元素(前5行)。

  6. print(line.strip())

    • line.strip():去掉字符串首尾的空白字符(如空格、换行符 \n、制表符 \t 等)。

    • 目的:让输出更整洁,避免每行末尾有多余的换行。

步骤 3:处理一行数据

# 取一行示例数据(假设是第6行)
sample_line = lines[5].strip()  # 去掉首尾空格和换行符
print("原始行数据:", sample_line)# 按逗号分割成列表
parts = sample_line.split(',')
print("分割后的列表:", parts)# 提取国家名称(假设在第一列)
country = parts[0]
print("国家名称:", country)# 提取1960年的数据(假设在第5列,索引为4)
value_1960 = parts[4]
print("1960年数据:", value_1960)
  1. 索引从0开始
    Python 中列表索引从 0 开始计数:

    • parts[0] → 第1列(国家名称)

    • parts[4] → 第5列(1960年数据)

  2. 假设数据位置固定

    • 这段代码假设国家名称在第1列,1960年数据在第5列。

    • 如果实际 CSV 列顺序不同,需要调整索引。

  3. 潜在错误

    • 如果行数不足6行(lines[5] 会报 IndexError)。

    • 如果分割后的 parts 列数不足5列(parts[4] 会报 IndexError)。

步骤 4:构建年份字典

# 创建一个字典存储年份数据
year_data = {}# 从第5列(索引4)开始,遍历1960~2021年
start_column = 4
for year in range(1960, 2022):if start_column >= len(parts):break  # 防止越界# 将字符串转为浮点数(无法转换则设为None)try:
http://www.xdnf.cn/news/4252.html

相关文章:

  • 未来设计新篇章!2025 年 UX/UI 设计趋势,技术与体验的全新结合!
  • MySQL - 事务
  • 基于Dify的工作流实现python编码规则的检查
  • 【神经网络、Transformer及模型微调】
  • 六足机器人结构优化可载重20kg,适应河床、冰面等复杂地形
  • 【C语言】--指针超详解(一)
  • 对接印度股票数据实战 - Python实现完整指南
  • 结构体内存对齐规则与优化
  • iPaaS核心解析与牧场场景应用方案
  • 前端正则学习记录
  • 2025Mapbox零基础入门教程(8)geojson加载点要素
  • MySQL数据库中篇
  • python简易实现勒索病毒
  • 最小方差自校正调节器设计
  • Python: pipx详细解释
  • 【Day 20】HarmonyOS多语言适配开发实战
  • 使用OpenCV 和 Dlib 实现年龄性别预测
  • Spring AI系列——大模型驱动的自然语言SQL引擎:Java技术实现详解
  • 用DEEPSEEK做开发辅助应该注意什么
  • Nyx-1 思路整理
  • 【Python】--装饰器
  • Coding Practice,48天强训(30)
  • 2. H264编码
  • 垂直领域知识图谱构建与大模型融合技术方案
  • 达梦DM数据库安装步骤
  • 普通IT的股票交易成长史--20250506午复盘
  • Leetcode - 周赛448
  • 分割回文串例题-区分组合回溯与最优动态规划
  • 主数据 × 知识图谱:打造企业认知智能的核心基础设施
  • C++GO语言微服务项目之 go语言基础语法