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.

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.

Are you just counting letters, and they all have to be lower case?

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
``````

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

main()``````

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
"""``````

Thanks A Lot For Your Help

Thanks

Thank You

i didnt mean to

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.

by any chance do you go to FCCJ?

yes, i do...where do you know me from??

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.