I have a simple election program. The following are the requirements:
class Politician
Taking number of p
You can store your instances in a list:
politicians = []
for name in 'ABC':
politicians.append(Politician(name))
Now you can access individual instances:
>>> politicians[0].name
'A'
I used a modified version of your class that gives each politician a default age if no is provided:
class Politician:
def __init__(self, name, age=45):
self.name = str(name)
self.age = age
self.votes = 0
def change(self):
self.votes = self.votes + 1
def __str__(self):
return self.name + ": " + str(self.votes)
Now you can work with your list of politicians:
print('The Number of politicians: {}'.format(len(politicians)))
prints:
The Number of politicians: 3
this:
for politician in politicians:
print(politician)
prints:
A: 0
B: 0
C: 0
Assign random votes:
import random
for x in range(100):
pol = random.choice(politicians)
pol.votes += 1
Now:
for politician in politicians:
print(politician)
prints:
A: 35
B: 37
C: 28
The whole program:
# Assuming Python 3.
class Politician:
def __init__(self, name, age=45):
self.name = str(name)
self.age = age
self.votes = 0
def change(self):
self.votes = self.votes + 1
def __str__(self):
return '{}: {} votes'.format(self.name, self.votes)
num_politicians = int(input("The number of politicians: "))
politicians = []
for n in range(num_politicians):
if n == 0:
new_name = input("Please enter a name: ")
else:
new_name = input("Please enter another name: ")
politicians.append(Politician(new_name))
print('The Number of politicians: {}'.format(len(politicians)))
for politician in politicians:
print(politician)
print('Processing ...')
for x in range(100):
pol = random.choice(politicians)
pol.votes += 1
for politician in politicians:
print(politician)
And the usage:
The number of politicians: 3
Please enter a name: John
Please enter another name: Joseph
Please enter another name: Mary
The Number of politicians: 3
John: 0 votes
Joseph: 0 votes
Mary: 0 votes
Processing ...
John: 25 votes
Joseph: 39 votes
Mary: 36 votes
As @martineau suggests, for real-live problems a dictionary would be more useful.
Create dictionary instead of a list:
politicians = {}
and in the loop us the name as key when you add your instance:
politicians[new_name] = Politician(new_name)