Compare commits
2 Commits
87636e526b
...
d48d576891
Author | SHA1 | Date | |
---|---|---|---|
d48d576891 | |||
ec970373aa |
40
uke2.py
40
uke2.py
@ -1,3 +1,5 @@
|
|||||||
|
import re
|
||||||
|
|
||||||
# Task 1
|
# Task 1
|
||||||
class Party:
|
class Party:
|
||||||
def __init__(self, fylke, code, name, voters, votes):
|
def __init__(self, fylke, code, name, voters, votes):
|
||||||
@ -25,9 +27,15 @@ def table_from_votes(file_path, num=None):
|
|||||||
# Combine all the local results into a list of national party results
|
# Combine all the local results into a list of national party results
|
||||||
p_codes = []
|
p_codes = []
|
||||||
parties = []
|
parties = []
|
||||||
|
total_votes = 0
|
||||||
|
# Not all parties are in all distrcts. Therofore i need to get the total amount of voters from a party that is everywhere
|
||||||
|
for p in local_parties:
|
||||||
|
if p.code == 'A':
|
||||||
|
total_votes += p.voters
|
||||||
|
# Put all the kommuneparties into fylker
|
||||||
for p in local_parties:
|
for p in local_parties:
|
||||||
if p.code not in p_codes:
|
if p.code not in p_codes:
|
||||||
party = Party('Alle', p.code, p.name, p.voters, p.votes)
|
party = Party('Alle', p.code, p.name, total_votes, p.votes)
|
||||||
parties.append(party)
|
parties.append(party)
|
||||||
p_codes.append(p.code)
|
p_codes.append(p.code)
|
||||||
else:
|
else:
|
||||||
@ -37,16 +45,42 @@ def table_from_votes(file_path, num=None):
|
|||||||
parties.sort(key=lambda x: x.percent(), reverse=True)
|
parties.sort(key=lambda x: x.percent(), reverse=True)
|
||||||
|
|
||||||
# Create the table
|
# Create the table
|
||||||
t = '{:^25}|{:^10}|{:^10}\n'.format('Parti', 'Prosent', 'Stemmer')
|
t = '{:^8}|{:^8}|{:^10}\n'.format('Parti', 'Prosent', 'Stemmer')
|
||||||
t += ("-"*len(t)+"\n")
|
t += ("-"*len(t)+"\n")
|
||||||
for n, p in enumerate(parties):
|
for n, p in enumerate(parties):
|
||||||
t += (f'{p.code:^25}|{p.percent():^10.2f}|{p.votes:^10}\n')
|
if p.percent() > 4.0:
|
||||||
|
t += (f'\033[1m{p.code:^8}|{p.percent():^8.2f}|{p.votes:^10}\033[0m\n')
|
||||||
|
else:
|
||||||
|
t += (f'{p.code:^8}|{p.percent():^8.2f}|{p.votes:^10}\n')
|
||||||
if n == num:
|
if n == num:
|
||||||
break;
|
break;
|
||||||
return(t)
|
return(t)
|
||||||
|
|
||||||
|
# Task 2
|
||||||
|
def get_friends(text):
|
||||||
|
friends = []
|
||||||
|
for s in text:
|
||||||
|
names = re.findall(r'[A-Z]\w*', s)
|
||||||
|
if len(names) != 2:
|
||||||
|
raise ValueError('String does not contain excactly two capitalized words')
|
||||||
|
friends.append(names)
|
||||||
|
|
||||||
|
t = '{:^20}\n'.format('Venner')
|
||||||
|
t += ("-"*len(t)+"\n")
|
||||||
|
for n in friends:
|
||||||
|
t += (f'{n[0]:^10}-{n[1]:^10}\n')
|
||||||
|
return(t)
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
print(table_from_votes('2021-09-14_party distribution_1_st_2021.csv'))
|
print(table_from_votes('2021-09-14_party distribution_1_st_2021.csv'))
|
||||||
|
print(table_from_votes('2021-09-14_party distribution_1_st_2021.csv', 3))
|
||||||
|
|
||||||
|
text = [
|
||||||
|
'Ali and Per and friends.',
|
||||||
|
'Kari and Joe know each other.',
|
||||||
|
'James has known Peter since school days.'
|
||||||
|
]
|
||||||
|
print(get_friends(text))
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
Loading…
Reference in New Issue
Block a user