簡體   English   中英

如何在字符串中找到字符的索引?

[英]How do you find the index of a character in a string?

我正在嘗試創建一個程序來查找字符串中字符的索引,(不使用除range,if循環或for循環之外的任何函數)但我無法弄清楚如何執行它。 非常感謝幫助。

def findIndex(char, test):
    while char!=testList:
        for i in range(len(test)):
            if i!=char:
                i+=1
    if char==test:
        print i


print findIndex("e", "alphabet")
def find_index(needle, haystack):
    for i in range(len(haystack)):
        if needle == haystack[i]:
            return i
    else:
        return -1    # didn't find it

你的代碼中缺少什么:

  1. NameError: testList變量,因此會出現NameError異常。
  2. range():作為范圍函數的整數返回列表。 在代碼中,您使用字符檢查整數值,即if i!=char:必須類似於if test[i]==char並且在此if循環中打印或返回。
  3. 無需 while循環。
  4. 最后if循環: 無需循環if循環。 你正在用整個字符串檢查字符,它永遠不會是真的。 僅當字符串只有一個搜索字符時才為True。

演示:

>>> range(3)
[0, 1, 2]

通過枚舉

  1. 通過raw_input()獲取用戶的字符值。 如果用戶輸入多個字符,則取第一個字符進行處理。
    1. 檢查字符存在於目標字符串中。 如果不存在則返回-1-1表示在字符串中找不到字符。
    2. 使用enumerate()迭代字符串。
    3. 檢查字符串中的每個項目是否等於搜索字符。
    4. 如果是,則返回索引值。

碼:

def findIndex(char, target_inoout):
    if char in target_inoout:
        for i, value in enumerate(target_inoout):
            if char==value:
                return i
    else:
        return -1



char = raw_input("Enter singal Character:").strip()[0]

rs = findIndex(char, "alphabet")
if rs==-1:
    print "Character %s is not found."%(char)
else:
    print "Character %s is found at: %d"%(char, rs)

輸出:

vivek@vivek:~/Desktop/stackoverflow$ python 31.py 
Enter singal Character:e
Character e is found at: 6
vivek@vivek:~/Desktop/stackoverflow$ python 31.py 
Enter singal Character:z
Character z is not found.
vivek@vivek:~/Desktop/stackoverflow$ 

對於字符串中的多個字符:

碼:

def findIndex(char, target_inoout):

    if char in target_inoout:
        result = []
        for i, value in enumerate(target_inoout):
            if char==value:
                result.append(i)
        return result
    else:
        return None



char = raw_input("Enter singal Character:").strip()[0]

rs = findIndex(char, "alphabet with some more values.")
if rs:
    print "Character %s is found at: %s"%(char, rs)
else:
    print "Character %s is not found."%(char)

輸出:

vivek@vivek:~/Desktop/stackoverflow$ python 31.py 
Enter singal Character:m
Character m is found at: [16, 19]
vivek@vivek:~/Desktop/stackoverflow$ python 31.py 
Enter singal Character:z
Character z is not found.
vivek@vivek:~/Desktop/stackoverflow$ 

暫無
暫無

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

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