We're a community of 1076K IT Pros here for help, advice, solutions, professional growth and fun. Join us!
1,075,633 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Start New Discussion Reply to this Discussion

list of objects

Hello!

I don´t understand how to use a condition " if i == predmet: " i is an objet type of subject

In my code I need to reach the condition:

def add_mark(self,predmet,mark):
        for i in self.predmety:
            if i == predmet:
                print True

but I don´t know how to make this condition true => "if i == predmet"
"i" is an object and it will never match this condition.
I need to get like:
if fyzika == fyzika:
print True

but i is always object and I don´t know how to chanhe it to non object. Can you help?

here is the rest of the code:

class Cstudent():
    def __init__(self, name):
        self.name = name
        self.predmety = []
        self.mark = []
        self.absence = 0

    def add_subject(self, predmet):
        self.predmety.append(predmet)

    def add_mark(self,predmet,mark):
        for i in self.predmety:
            if i == predmet:
                print True
                #predmet.add_znamka(mark)

    def __str__(self):
        return self.name
        #return 'som objekt studenta: ' + (self.name)
##        return 'som object studenta: %s'% \
##            (self.name)

    def print_zoznam_predmetov(self):
        lst = []
        for prd in self.predmety:
            lst.append(str(prd))
        return '\n'.join(lst)


class Cpredmet():
    def __init__(self, nazov):
        self.nazov = nazov
        self.znamky = []

    def add_znamka(self, znamka):
        self.znamky.append(znamka)

    def average_predmet(self, predmet):
        return sum(self.znamky) / len(self.znamky)

    def __str__(self):
        return self.nazov
##        return 'som object predmetu: %s a mam znamky: %s' % \
##            (self.nazov, str(self.znamky))

def main():

#-------------------------------
    janko = Cstudent('Janko Mrkvicka')
    janka = Cstudent ('Janka Vaskova')

#-------------------------------
    janko.add_subject(Cpredmet('fyzika'))
    janko.add_subject(Cpredmet('english'))

    janka.add_subject(Cpredmet('dejepis'))
    janka.add_subject(Cpredmet('fyzika'))

#-------------------------------
    janko.add_mark(predmet='fyzika',mark=4)
    janko.add_mark(predmet='fyzika',mark=1)
    janko.add_mark(predmet='english',mark=1)

    janka.add_mark(predmet='dejepis',mark=2)
    janka.add_mark(predmet='dejepis',mark=3)
    janka.add_mark(predmet='fyzika',mark=1)

# output:
#-------------------------------
    print janko
    print janko.print_zoznam_predmetov()
    print '-----------------------------------------------------'
    print janka
    print janka.print_zoznam_predmetov()
    
if __name__ == '__main__':
    main()
2
Contributors
2
Replies
17 Hours
Discussion Span
1 Year Ago
Last Updated
3
Views
Question
Answered
vlady
Junior Poster in Training
79 posts since Sep 2009
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0

I do not think I understand what is all this fuss but maybe something like:

def add_mark(self, predmet,mark):
        for p in self.predmety:
            #print p.nazov
            if p.nazov == predmet:
                p.add_znamka(mark)
                break
        else:
            raise ValueError("%s not taking course %s" % (self.name, predmet))
pyTony
pyMod
Moderator
6,300 posts since Apr 2010
Reputation Points: 879
Solved Threads: 986
Skill Endorsements: 26

I do not think I understand what is all this fuss but maybe something like:

def add_mark(self, predmet,mark):
        for p in self.predmety:
            #print p.nazov
            if p.nazov == predmet:
                p.add_znamka(mark)
                break
        else:
            raise ValueError("%s not taking course %s" % (self.name, predmet))

super! thank you!

vlady
Junior Poster in Training
79 posts since Sep 2009
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0
Question Answered as of 1 Year Ago by pyTony

This question has already been solved: Start a new discussion instead

Post: Markdown Syntax: Formatting Help
 
You
 
© 2013 DaniWeb® LLC
Page rendered in 0.3493 seconds using 2.68MB