I need help please to write this program. Numerologists claim to be able to determine a person's character traits based on the "numeric value" of a name. The value of a name is determined by summing up the vaules of the letters of the name where 'a' is 1, 'b' is 2, 'c' 3 etc., up to 'z' being 26. For example, the name "Zelle" would have the value 26+5+12+12+5=60. Write a program that calculates the numeric value of a single name provided as input. I am using my name Tamika.

Then, I have to expand my solution to the previous problem to allow the calculation of a complete name such as "Tamika Phai Mills." The total value is just the sum of the numeric values of all the names.

10 Years
Discussion Span
Last Post by alc6379

We won't do your homework for you. We have our own work and schoolwork to do. What we WILL do is help you along. Let's break down this program and define an algorithm:

step 1 - prompt user for name
step 2 - save name into a string variable
step 3 - separate string into characters
step 4 - traverse the string and look at each character individually
step 5 - convert each character to its numerical "equivalent"
step 6 - use an accumulator variable and increment it each time we evaluate a character
step 7 - output the accumulator variable as the final sum

Does that make sense to you? See if you can come up with some code converting that algorithm into python. We'll then be more than happy to help you further, but you have to show us effort on your part.


this what i got

def main():

    name = raw_input("Enter your name in lower case letter")
    letters = "a b c d e f g h i j k l m n o p q r s t u v w x y z"
    value = 0
    for i in name:
        print i 
        value = string.find(letters, i ) + value
    print "The numeric value of your name is", value

Edit: Added [code] tags vegaseat

Edited by Dani: Formatting fixed


Very nice thinking here, just needs a little touch up to work ...

# using indexing

def main():

    #name = raw_input("Enter your name in lower case letter")
    # another option to get a lower case name
    name = raw_input("Enter your name: ").lower()

    # notice the space in front of 'a' this will give an index of a=1, b=2 and so on
    # also gives a space an index of zero, so it won't count
    letters = " abcdefghijklmnopqrstuvwxyz"

    value = 0
    for c in name:
        print c, letters.find(c)  # test
        value = letters.find(c) + value
    print "The numeric value of your name is", value

My original thought was to use the ASCII value of the lower case letters in the name. The function ord('a') would give 97 so you have to subtract 96 to get 'a'=1. Look at this code sample ...

# using ASCII values

name = "Tamika Phai Mills".lower() # testing
sum = 0
for c in name:
    # you want to count just letters, ord(c) give the ASCII value of the letter
    if c.isalpha():
        sum = sum + ord(c) - 96
        print c, ord(c), ord(c) - 96, sum  # test

print "result for '%s' = %d" % (name, sum)

result for 'tamika phai mills' = 154

I think you're a little overanxious, butterflyTee. There is no need to keep bumping your thread with multiple posts. Additionally, I had to delete one of your threads because you posted in duplicate.


Hi butterflyTee,

Out of curiosity, which university or school do you attend where the homework assignments need to be written in Python? I have never seen a Python CS curriculum before, and I am interested to see what it looks like.


I always looked at florida community college at jacksonville as just an ordinary java trenched school. How did Python get in there?


i dont know you i just realized that all of the problems for COP-1000 were being posted. So how are you doing in the class.


Let's not let this get off-topic. I'm going to close this thread before it gets too out of hand.

Some advice: Please keep ALL discussion on a single topic in one thread, and please don't spam the forum with all of your homework assignments.

This question has already been answered. Start a new discussion instead.
Be sure to adhere to our posting rules.