如何从txt文本文件中读取指定行第四列的数值并打印
问题原因
- 你仅将人员编号存入了
data_next列表,没有建立编号和对应第四列数值的映射关系,后续无法根据输入的编号匹配到正确数值 - 循环内的
value变量会在每次迭代时被新的行数据覆盖,循环结束后只保留了最后一行的数值,因此不管查询哪个编号,最终输出的都是最后一行的400.0
调整后的代码
# 用字典存储编号和对应数值的映射,匹配查询效率更高 person_value = {} for data in open("my_data.txt", encoding="utf-8"): # 分割字段同时去除各字段前后多余空格 liste = [item.strip() for item in data.split(",")] number = int(liste[0]) name = liste[1] sex = liste[2] value = liste[3] # 存入编号和对应数值的映射关系 person_value[number] = value print(f" [{number}] {name} {sex} {value}") which_person = int(input("WHICH PERSON?: ")) if which_person in person_value: print("Do you want to know the value? Press 1 for YES or 2 for NO") next_input = int(input("YOUR INPUT: ")) if next_input == 1: # 从映射字典中取出对应编号的数值 print(person_value[which_person]) elif next_input == 2: print("THX") else: # 额外补充编号不存在的提示,逻辑更完善 print("输入的人员编号不存在")
内容的提问来源于stack exchange,提问作者virat
相关产品推荐
相关产品推荐

