UltraLowTemp-Physics 2020. 12. 24. 12:08

Problem: py.checkio.org/en/mission/second-index/

My Solution

def second_index(text: str, symbol: str) -> [int, None]:
    """
        returns the second index of a symbol in a given text
    """
    # your code here
    m = 0
    for n in range(len(list(text))):
        if list(text)[n] == symbol:
            if m == 1: return n
            else: m = m + 1
            
    return None


if __name__ == '__main__':
    print('Example:')
    print(second_index("sims", "s"))

    # These "asserts" are used for self-checking and not for an auto-testing
    assert second_index("sims", "s") == 3, "First"
    assert second_index("find the river", "e") == 12, "Second"
    assert second_index("hi", " ") is None, "Third"
    assert second_index("hi mayor", " ") is None, "Fourth"
    assert second_index("hi mr Mayor", " ") == 5, "Fifth"
    print('You are awesome! All tests are done! Go Check it!')

 

A good solution that I see

def second_index(text: str, symbol: str):
    """
        returns the second index of symbol in a given text
    """
    try:
        return text.index(symbol, text.index(symbol) + 1)
    except ValueError:
        return None