C
Chuck
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!
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!