-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproblem22.py
More file actions
28 lines (25 loc) · 769 Bytes
/
problem22.py
File metadata and controls
28 lines (25 loc) · 769 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
with open('p022_names.txt') as f:
names = f.readlines()[0]
names = names.split(',')
names = sorted(names)
def scoreletter(let):
# Score a letter
letdict = {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6, 'G': 7, 'H': 8,
'I': 9, 'J': 10, 'K': 11, 'L': 12, 'M': 13, 'N': 14, 'O': 15, 'P':16, 'Q': 17,
'R': 18, 'S': 19, 'T': 20, 'U': 21, 'V': 22, 'W': 23, 'X': 24, 'Y': 25, 'Z': 26}
try:
score = letdict[let]
except:
score = 0
return score
def score(name):
# Name is a string
name = name.upper()
l = list(name)
nums = [scoreletter(i) for i in l]
return sum(nums)
namescores = [score(i) for i in names]
total = 0
for i, j in enumerate(namescores):
total += (i+1)*j
print('Total: {}'.format(total))