IndexError: string index out of range ? - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: IndexError: string index out of range ? (/thread-19567.html) |
IndexError: string index out of range ? - Q_Y - Jul-04-2019 Hello all, I just start to learn python, working on the chapter of THE BAGELS DEDUCTION GAME. No matter how hard I am, the order just failed. Always showing: This is the order of Line 20 and line 56Line 20: clues = [] for i in range(len(guess)): if guess[i] == secretNum[i]: clues.append('Fermi') elif guess[i] in secretNum: clues.append('Pico')Line56 while True: secretNum = getSecretNum() print('I have thought up a number. You have %s guesses to get it.' % (MAX_GUESS)) guessesTaken = 1 while guessesTaken <= MAX_GUESS: guess = '' while len(guess) != NUM_DIGITS or not isOnlyDigits(guess): print('Guess #%s: ' % (guessesTaken)) guess = input() print(getClues(guess, secretNum)) guessesTaken += 1Anyone could tell me what was happed? Thanks a lot.. Best RE: IndexError: string index out of range ? - Yoriz - Jul-04-2019 That error happens when a string index used is not a valid index of the string. In the next example the last index of 'string' is 5, using 6 gives the error.>>> 'string'[6] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: string index out of range RE: IndexError: string index out of range ? - metulburr - Jul-04-2019 Based on your error secretNum[i] is going out of index. Although you shoukdnt be using range(len(sequence)) ever in python. https://python-forum.io/Thread-Basic-Never-use-for-i-in-range-len-sequence RE: IndexError: string index out of range ? - Q_Y - Jul-05-2019 (Jul-04-2019, 06:42 PM)Yoriz Wrote: That error happens when a string index used is not a valid index of the string. Hello Yoriz, Thank you for your help about the post and reply. How should I modify this order to make it done? Best (Jul-04-2019, 06:44 PM)metulburr Wrote: Based on your error secretNum[i] is going out of index. Although you shoukdnt be using range(len(sequence)) ever in python. Thank you very much for your help. I just wrote the order from the book, and not totally understood what was this order meaning? Based on the orders I provided, how to modify it to make it done? Best RE: IndexError: string index out of range ? - metulburr - Jul-05-2019 It explains in that link i provided. Instead of looping through indexes you loop directly the sequence. RE: IndexError: string index out of range ? - noisefloor - Jul-05-2019 Hi, Quote:I just wrote the order from the book,If this code is really shown in a book -> throw away the book, it teaches bad Python. Iterating over an iterable with range(len(...)) as an antipattern. Also the style your variable names are written is not the pythonic way to do it.Regards, noisefloor |