首頁 >後端開發 >Python教學 >為什麼我的字串搜尋函數總是傳回 True?

為什麼我的字串搜尋函數總是傳回 True?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-14 12:09:12845瀏覽

Why Does My String Search Function Always Return True?

在文字檔案中搜尋字串

為了偵測文字檔案中是否存在特定字串,您偶然發現了一個無論字串是否存在,程式碼都會意外回傳True 的問題。讓我們研究一下程式碼並修正問題:

def check():
    datafile = file('example.txt')
    found = False
    for line in datafile:
        if blabla in line:
            found = True
            break

check()
if True:
    print "true"
else:
    print "false"

變數名稱 blabla 表示您正在嘗試尋找字串,但它未在程式碼中定義。這可能是程式碼始終傳回 True 的問題根源。確保在運行 check() 函數之前使用要搜尋的適當字串定義 blabla。

使用檔案讀取的替代方法:

with open('example.txt') as f:
    if 'blabla' in f.read():
        print("true")

This方法將整個檔案讀入內存,從而可以直接搜尋字串。但是,請記住,由於記憶體限制,此方法可能不適合大檔案。

mmap 方法:

import mmap

with open('example.txt') as f:
    s = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
    if s.find('blabla') != -1:
        print('true')

mmap 允許建立記憶體-檔案的對應表示,有效地建立一個「類似字串」的對象,該物件使用底層文件,而無需將整個文件讀入內存,從而減少內存使用。

以上是為什麼我的字串搜尋函數總是傳回 True?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn