第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Python:如何從文本中返回特定行

Python:如何從文本中返回特定行

小怪獸愛吃肉 2023-12-20 16:19:01
我是新來的,也是編程新手。我正在閱讀 Jamie Chan 的《一日學(xué)習(xí) Python》,目前處于實(shí)踐項(xiàng)目部分。我試圖讓 python 從 txt 文件中讀取一行。txt 文件包含一個(gè)名稱和一個(gè)數(shù)字,以逗號分隔,這是文本文件Benny, 102Ann, 100Carol, 214Darren, 129我成功地讓它讀取第一行,但嘗試通過調(diào)用那里的名稱來打印第二行,但始終返回零。當(dāng)我切換行時(shí),會(huì)發(fā)生同樣的事情,它讀取第一行中的名稱,但在第二個(gè)文件中的名稱上返回空。這是我嘗試用來閱讀文本的函數(shù):def getUserPoint(userName):    f = open('userScores.txt', 'r')    for line in f:        result = line.splitlines()        if userName in line:            return result        else:            return "nill"    f.close()s = getUserPoint(input('Ann'))print(s)這是結(jié)果:nill說明是這樣的:每一行記錄一個(gè)用戶的信息。第一個(gè)值是用戶的用戶名,第二個(gè)值是用戶的分?jǐn)?shù)。接下來,該函數(shù)使用 for 循環(huán)逐行讀取文件。然后使用 split() 函數(shù)分割每一行 讓我們將 split() 函數(shù)的結(jié)果存儲(chǔ)在列表內(nèi)容中。接下來,該函數(shù)檢查是否有任何行與作為參數(shù)傳入的值具有相同的用戶名。如果存在,該函數(shù)將關(guān)閉該文件并在該用戶名旁邊返回分?jǐn)?shù)。如果不存在,該函數(shù)將關(guān)閉文件并返回字符串“-1”對于這篇冗長的帖子我感到非常抱歉。
查看完整描述

4 回答

?
慕村9548890

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以使用 :


def getUserPoint(userName):

  f = open('userScores.txt', 'r')

  for line in f.readlines():

    result = line.splitlines()

    if userName in line:

        f.close()

        return result

  

  f.close()

  return "nill"

  



s = getUserPoint(input('Ann'))

print(s)


查看完整回答
反對 回復(fù) 2023-12-20
?
繁花如伊

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊

一個(gè)問題是您有一個(gè)匹配的 else 語句,它將立即結(jié)束函數(shù)和循環(huán)


查看完所有行后,您需要返回默認(rèn)結(jié)果


def getUserPoint(userName):

    with open('userScores.txt') as f:

        for line in f:

            if userName == line.rstrip().split(',')[0]:

                return line

    return "nill"

然后,如圖所示,您要么想要拆分逗號并檢查第一列,要么userName in line。否則,您正在檢查


'Ann' in ["Ann, 100", ""]

因?yàn)閟plitlines()將在末尾的換行符處分割,返回 False


查看完整回答
反對 回復(fù) 2023-12-20
?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊

見下文


該代碼負(fù)責(zé)關(guān)閉文件。


如果沒有找到匹配則返回None,否則返回“用戶點(diǎn)”


def get_user_point(user_name):

    with open('userScores.txt', 'r') as f:

      lines = [l.strip() for l in f]

      for line in lines:

        parts = line.split(',')

        if user_name == parts[0]:

          return parts[1]


查看完整回答
反對 回復(fù) 2023-12-20
?
MYYA

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊

def getUserPoint(userName):

    with open('userScores.txt') as f:

        for line in f:

            if userName == line.split(',')[0]:

                return line

    return "nill"

由于我是 Python 和一般編程的新手,我可能會(huì)問更多問題。感謝大家的幫助。


查看完整回答
反對 回復(fù) 2023-12-20
  • 4 回答
  • 0 關(guān)注
  • 249 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號