I´m having some troubles on my code, that implements a function that verifies the lenght of a string and return that string with or without spaces.
If String b >= 15 return b
If strinf < 15 return “number os spaces until len(b)2 + string b
But I get a IndexError: list index out of range Error. I cannot figure out where or why.
Traceback:
============= RESTART: C:UserspboDesktopTrab_04.py =============
ascii_letters = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ Traceback (most recent call last):
File “C:UserspboDesktopTrab_04.py”, line 30, in o2.append(a(o1[e]))
IndexError: list index out of range
============= ============= ============= ============= =============
Thanks a lot for any possible help.
from random import seed from random import randint from random import choice from string import ascii_letters seed(930) def a(b): if(len(b)<15) : s = ""; l = len(b) while(len(s) + len(b) < 15) : s += " " s += b return s else: return b print("ascii_letters = " + ascii_letters) o1 = [] for e in range(9622): k = randint(1, 25) s = "" for l in range(k): s = s + choice(ascii_letters) o1.append(s) o2 = [] for e in range(9622): o2.append(a(o1[e])) print("000000000111111111122222222223333333333") print("123456789012345678901234567890123456789") for e in range(9): print(o1[e] + "|") print("000000000111111111122222222223333333333") print("123456789012345678901234567890123456789") for e in range(9): print(o2[e] + "|") x1 = "" x2 = "a" x3 = "abc" x4 = "abcdefghijklmnopqrstuvwxyz" print("000000000111111111122222222223333333333") print("123456789012345678901234567890123456789") print(x1 + "|") print(x2 + "|") print(x3 + "|") print(x4 + "|") print("000000000111111111122222222223333333333") print("123456789012345678901234567890123456789") print(a(x1) + "|") print(a(x2) + "|") print(a(x3) + "|") print(a(x4) + "|")
Advertisement
Answer
It looks like your indentation is incorrect (see also What is Python Whitespace and how does it work?).
If you change the following:
o1 = [] for e in range(9622): k = randint(1, 25) s = "" for l in range(k): s = s + choice(ascii_letters) o1.append(s)
to:
o1 = [] for e in range(9622): k = randint(1, 25) s = "" for l in range(k): s = s + choice(ascii_letters) o1.append(s)
Then, your code appears to work.