[英]Data parsing and string index out of range error
我是編程新手,剛開始學習數據解析。
我編寫了一個程序來搜索和打印以輸入字母開頭的單詞,並從.txt
文件中解析數據,但該程序僅顯示帶有字母ag
正確結果,並且
IndexError:string index out of range
任何其他字母IndexError:string index out of range
。
以下來自python(3.5.1)和指向單詞列表的鏈接https://raw.githubusercontent.com/mohdomama/Scrabble-C/master/Dict.txt
def main():
#read file
file = open("dict.txt","r")
lines = file.readlines()
file.close()
word = input("Choose the alphabet")
for line in lines:
line = line.strip()
if line[0] == word:
print(line)
main()
你有點不對勁。 readlines()
讀取整個文件並按行分割,然后返回lines列表。 然后對其進行迭代,將返回字符串對象 。
因此,例如,讀取文件可以等於f:
f = ['first line', 'two line', 'third line']
for line in f:
print line # 'first line' (string)
因此比較line [0]與執行'first line'[0] ='f'相同
如果要比較單詞,則需要將行分成單詞。 您可以通過以下方式做到這一點:
for line in f:
words = line.split() # ['first', 'line']
words[0] == word:
print word
當您看到給定對象的IndexError
,請首先檢查該對象的存在/“真實性”。 空列表,空字符串等都不是真實的。
所以代替:
if line[0] == word:
嘗試:
if line and line[0] == word:
當第一次檢查失敗( if line
)時,它將不會繼續檢查索引( line[0]
),因為Python的and
語句要求BOTH條件均為True
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.