Thiago
Thiago

Reputation: 21

how can i print the right value in the code?

I'm new to python, and I'm having trouble resolving this code. I just have to print the position of the string when j equals r. But it prints nothing.

class List():

    def __init__(self, l_red, l_erd, r):

        self.l_red = "ABCEFGC"
        self.l_erd = "DBFEGAC"
        self.r = l_red[0]


    def posicao(self):

        j = self.l_red[0];
        while self.l_erd[j] != self.r:
            j = j + 1

        print(j)

Upvotes: 0

Views: 58

Answers (1)

Jesse Ross
Jesse Ross

Reputation: 71

This is a bit hard to understand but I will give it a go.

To begin with you really need to consider using a different name for the class; List is already in python. To instantiate and use this class you would need to use:

a_variable = List() # or whatever you are going to use
a_variable.posicao()

l_red is a string which can act like a character list, and l_erd is the same. Lists take an integer number (0, 1, 2, 3 ...) and return what was in that place. So what you need to do is something more like:

def posicao(self):
    letter_of_interest = "A"
    j = 0
    for j in range(0, len(self.l_erd):
        if letter_of_interest == self.r:
            print(j)
            break

Now what I have written is just for a single character, and you would use a loop to go through each character of interest, but I will leave that to you.

If you want it to find all the positions where that character exists just remove that break. There are better methods of doing this, look into just using "ABCDE".index('A') this works.

Upvotes: 2

Related Questions