Names Score — Euler Project

I’ve continued my trek towards learning python and this week I branched out into python modules. Its a good thing I’m just learning about modules, because they are infinitely easier than the Ruby gem system. In short, a module imports a library of code beyond vanilla python. For my practice this week, I needed to access a dictionary and CSV parsing functionality. Here’s the problem that pushed me into modules:

To get a sense of what names.txt looks like, here’s a peek:

The first order of business is importing this file into a list that I can work with.

‘import csv’ gave me access to the open() function. This function parses through the file and I was able to store that data as a variable —names_array which I sorted straight away. Before moving forward, I created a function that could score an individual name given two arguments. The first argument is the name itself and the second argument is an index value. In this function letters earn a score based on a dictionary that I created using the string library. In this case string.ascii_uppercase returns an uppercase alphabet that I converted to a list. That list was translated again into a dictionary so that each letter key could be assigned a value — one through twenty-six. The name scoring function is ready to go.

From here, I simply iterated through each name on the list. Each name score is added to the total and, voila we reach our solution. One hiccup that makes me miss Ruby a little is the each_with_index function. There doesn’t seem to be an equivalent in Python, but the workaround of incrementing a variable, in this case ‘J’ isn’t the worst thing in the world.

--

--

Full Stack Web Developer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store