python - 根据用户调用的行从 .txt 文件中的行打印结果
问题描述
我正在开发一个程序,该程序打开一个 .txt 文件,然后提示用户查看单个学生。文件看起来像这样
Bronson 90 85 75 76
Conor 90 90 90 90
Austyn 50 55 32 75
Mark 96 95 85 85
Anthony 85 85 85 85
程序首先打印出每个学生的姓名(每列的第一个单词)
with open(argv[1]) as f:
names=[]
for line in f:
names.append(line.split()[0])
print('\nNames of students:')
print(*sorted(names),sep=' ')
然后询问您要查看哪个学生:
name = input('Enter name of student whos marks you want to view: '
我正在尝试编写一段代码,它将打印出用户键入的任何名称的内容。例如,如果用户键入“Conor”,程序会打印出 90 90 90 90。
我尝试使用 if 语句,但我似乎无法让它工作。有人能指出我正确的方向吗?这是我目前拥有的:
for line in f:
if names.append(line.split()[0]) == name:
print(line)
谢谢!
解决方案
你的 if 语句可以工作,但你不应该在循环时修改列表(不要追加)
实际上,您会使用按名称键入的字典
names=dict()
with open(argv[1]) as f:
for line in f:
parts = line.split()
names[parts[0]] = parts[1:]
name = input("enter a name")
print(names[name])
如果您不需要存储每一行,那么看起来像
name = input("enter a name")
with open(argv[1]) as f:
for line in f:
parts = line.split()
if parts[0] == name:
print(parts[1:])
推荐阅读
- vuejs2 - 如何使用 VueJS 从父级向子级发送数据?
- c# - 将 Memorystream 附加到现有的 Memorystream
- layout - 在 ListView / GridView 内连续创建类别产品
- algorithm - 为人类活动识别选择正确的机器学习算法
- javascript - 添加具有特定 ID 的文档而不覆盖现有的文档
- python - 将整数和字符串列表转换为纯字符串
- firebase - Firebase:实时数据库行的颜色行是什么意思
- sanity - 在 Sanity 中订购文件
- python - 列名和绘图中的分组字符串
- cookies - 设置会话 cookie