Keep getting this in PyDev "TypeError: quiz() takes exactly 1 argument (0 given)"

Chuck galois271 at gmail.com
Fri Aug 10 14:52:54 EDT 2012


Hi all, I cannot figure why I keep getting this error.  It is my understanding that all methods need a self argument when designing a class.  Here is my code:

import random

class ElementsQuiz:

    elements = {'H' : 'Hydrogen',
                'He' : 'Helium',
                'Li' : 'Lithium',
                'Be' : 'Beryllium',
                'B' : 'Boron',
                'C' : 'Carbon',
                'N' : 'Nitrogen',
                'O' : 'Oxygen',
                'F' : 'Fluorine',
                'Ne' : 'Neon',
                'Na' : 'Sodium',
                'Mg' : 'Magnesium',
                'Al' : 'Aluminium',
                'Si' : 'Silicon',
                'P' : 'Phosphorus',
                'S' : 'Sulfur',
                'Cl' : 'Chlorine',
                'Ar' : 'Argon',
                'K' : 'Potassium',
                'Ca' : 'Calcium',
                'Sc' : 'Scandium',
                'Ti' : 'Titanium',
                'V' : 'Vanadium',
                'Cr' : 'Chromium',
                'Mn' : 'Manganese',
                'Fe' : 'Iron',
                'Co' : 'Cobalt',
                'Ni' : 'Nickel',
                'Cu' : 'Copper',
                'Zn' : 'Zinc',
                'Ga' : 'Gallium',
                'Ge' : 'Germanium',
                'As' : 'Arsenic',
                'Se' : 'Selenium',
                'Br' : 'Bromine',
                'Kr' : 'Krypton',
                'Rb' : 'Rubidium',
                'Sr' : 'Strontium',
                'Y' : 'Yttrium',
                'Zr' : 'Zirconium',
                'Nb' : 'Niobium',
                'Mo' : 'Molybdenum',
                'Tc' : 'Technetium',
                'Ru' : 'Ruthenium',
                'Rh' : 'Rhodium',
                'Pd' : 'Palladium',
                'Ag' : 'Silver',
                'Cd' : 'Cadmium',
                'In' : 'Indium',
                'Sn' : 'Tin',
                'Sb' : 'Antimony',
                'Te' : 'Tellurium',
                'I' : 'Iodine',
                'Xe' : 'Xenon',
                'Cs' : 'Caesium',
                'Ba' : 'Barium',
                'La' : 'Lanthanum',
                'Ce' : 'Cerium',
                'Pr' : 'Praseodymium',
                'Nd' : 'Neodymium',
                'Pm' : 'Promethium',
                'Sm' : 'Samarium',
                'Eu' : 'Europium',
                'Gd' : 'Gadolinium',
                'Tb' : 'Terbium',
                'Dy' : 'Dysprosium',
                'Ho' : 'Holmium',
                'Er' : 'Erbium',
                'Tm' : 'Thulium',
                'Yb' : 'Ytterbium',
                'Lu' : 'Lutetium',
                'Hf' : 'Hafnium',
                'Ta' : 'Tantalum',
                'W' : 'Tungsten',
                'Re' : 'Rhenium',
                'Os' : 'Osmium',
                'Ir' : 'Iridium',
                'Pt' : 'Platinum',
                'Au' : 'Gold',
                'Hg' : 'Mercury',
                'Tl' : 'Thallium',
                'Pb' : 'Lead',
                'Bi' : 'Bismuth',
                'Po' : 'Polonium',
                'At' : 'Astatine',
                'Rn' : 'Radon',
                'Fr' : 'Francium',
                'Ra' : 'Radium',
                'Ac' : 'Actinium',
                'Th' : 'Thorium',
                'Pa' : 'Protactinium',
                'U' : 'Uranium',
                'Np' : 'Neptunium',
                'Pu' : 'Plutonium',
                'Am' : 'Americium',
                'Cm' : 'Curium',
                'Bk' : 'Berkelium',
                'Cf' : 'Californium',
                'Es' : 'Einsteinium',
                'Fm' : 'Fermium',
                'Md' : 'Mendelevium',
                'No' : 'Nobelium',
                'Lr' : 'Lawrencium',
                'Rf' : 'Rutherfordium',
                'Db' : 'Dubnium',
                'Sg' : 'Seaborgium',
                'Bh' : 'Bohrium',
                'Hs' : 'Hassium',
                'Mt' : 'Meitnerium',
                'Ds' : 'Darmstadtium',
                'Rg' : 'Roentgenium',
                'Cn' : 'Copernicium',
                'Uut' : 'Ununtrium',
                'Fl' : 'Flerovium',
                'Uup' : 'Ununpentium',
                'Lv' : 'Livermorium',
                'Uus' : 'Ununseptium',
                'Uuo' : 'Ununoctium'
                }
               
    def __init__(self):
        self.quiz()

    def quiz(self):
        self.reply = ('Moron', 'Dummy', 'Idiot', 'Embecile', 'Half-wit')
        self.numCorrect = 0
        self.question = random.choice(self.elements.keys())
        print self.question
        self.ans = raw_input('Answer: ')
                
        if self.ans == self.elements(self.question):
            self.numCorrect += 1
        else:
            self.insult = random.choice(self.reply)
            print 'Incorrect %s' % self.insult
    
                
                
    if __name__ == '__main__':

        quiz()
        
    

Thanks for any help!  



More information about the Python-list mailing list