簡體   English   中英

根據用戶調用的行打印 .txt 文件上的行的結果

[英]Printing results from line on .txt file depending on the row the user calls

我正在開發一個打開 .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:]) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM