erased swap files from repo, apparently
[BS_AY250.git] / week5 / e.py
blob3ee96327c8c930ead8b70a5a4b4e4ab56f9bd60c
1 '''
2 AY250 HW5 E
3 Show seats lost by democrats
4 Author: Bryan Steinbach
5 '''
7 import os
8 import sqlite3
9 import webbrowser
11 import numpy as np
13 tablefn = 'poll'
15 conn = sqlite3.connect(tablefn)
17 def retrieve_state(state):
18 c = conn.cursor()
19 c.execute('''select polls.gop,polls.dem,polls.ind,names.incpar
20 from polls,names where polls.state = '%s' and names.state = '%s' order by polls.date1 desc limit 1'''%(state,state))
22 gopfrac,demfrac,indfrac,incpar = c.next()
24 c.close()
26 fracs = np.array([gopfrac,demfrac,indfrac])
27 partys = ['Republican','Democrat','Independent']
29 favi = np.argmax(fracs)
30 favp = partys[favi]
32 return incpar,favp
34 def get_states():
35 c = conn.cursor()
36 c.execute(''' select distinct state from polls ''')
37 states = []
38 for s in c: states.append(s[0])
39 c.close()
41 return states
43 states = get_states()
45 incpars,newpars = [],[]
46 for state in states:
47 incpar, newpar = retrieve_state(state)
49 incpars.append(incpar)
50 newpars.append(newpar)
52 def countseats(parties):
53 gop = 0
54 dem = 0
55 ind = 0
57 for p in parties:
58 if p == 'Republican': gop += 1
59 elif p == 'Democrat': dem += 1
60 elif p == 'Independent': ind += 1
61 else:
62 print "Unknown party: ",p
64 return gop,dem,ind
66 gop0,dem0,ind0 = countseats(incpars)
67 gop1,dem1,ind1 = countseats(newpars)
69 lost_seats = dem0-dem1
71 print "Seats lost by democrats: ",lost_seats