簡體   English   中英

字符串索引超出范圍:IndexError

[英]String index out of range: IndexError

不明白為什么我的索引超出范圍......嘗試通過以下方式找到錯誤: http : //pythontutor.com/visualize.html#mode=display

它“更新”了il ,但即使沒有完成這個詞,我也會收到錯誤消息。

我正在嘗試打印每個空格不超過其第 5 個字符的名稱,因此我的預期輸出是:

Rama as
Nemo as

代碼:

spaceNames = ['Rama as', 'Nemo as', 'Siegss as', 'Kama', 'Gray', 'BB', 'BB']

for name in spaceNames:
    i=0
    for l in name:
        
        if i <= 4 and l[i] == " ":
          print(name)
        print(i)
        i+=1

任何幫助表示贊賞!

對你的程序的一個微不足道的跟蹤,甚至是眼球檢查,都會顯示l是一個單一的字符。 您使用的索引最多為 3。單個字符只有l[0]作為合法引用。

我們無法“修復”您的程序,因為我們幾乎不知道您要做什么。

想出如何解決你們所做的兩個評論:

spaceNames = ['Rama as', 'Nemo as', 'Siegss as', 'Kama', 'Gray', 'BB', 'BB']

for name in spaceNames:
    i=0
    for l in name:
        if name.index(l) <=4 and name[i] == " ":
            print(name)
        i+=1

謝謝!

當您可以更有效地獲得大部分條件時,似乎有很多循環。

spaceNames = ['Rama as', 'Nemo as', 'Siegss as', 'Kama', 'Gray', 'BB', 'BB']

for name in spaceNames:
    idx = name.find(' ')  # This returns -1 if no space
    if idx < 0 or idx > 4:
        continue  # Skip
    print(name)

暫無
暫無

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

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