【发布时间】:2018-02-10 02:17:07
【问题描述】:
我应该编写一个程序,获取一个人的全名并返回该姓名的数值。数值由名称中字母的值找到(a=1, b=2...z=26)。
这是我目前所拥有的:
def main ():
name = input("What is the whole name? ").lower() #get name, make all lowercase
alph = [" abcdefghijklmnopqrstuvwxyz"] #list of characters
total = 0 #apply value for each character in name
for ch in name:
total = ord(ch) + total - 96
print("The numerical value of the name is \n", total) #print the result
main()
由于某种原因,我的程序可以使用我输入的某些名称(例如 dani = 28),但其他名称(尤其是较长的名称)没有返回正确答案。我做错了什么?
这是整个作业题供参考:
命理学家声称能够根据姓名的“数值”确定一个人的性格特征。名称的值是通过将名称中的字母的值相加来确定的,其中“a”为 1、“b”为 2、“c”为 3 等,直到“z”为 26。例如,名称“Zelle”的值为 26+5+12+12+5=60。编写一个程序,计算作为输入提供的单个名称的数值。
将您的解决方案扩展到上一个问题,以允许计算一个完整的名称,例如“Jackson Thomas Mills”。总值就是所有名字的数值之和。
【问题讨论】:
-
如果有人必须阅读“整个作业问题”,您的问题还不够清楚{downvote},如果问题很清楚,那么后一部分是不必要的。
-
How to debug small programs。你试过调试你的程序吗?
-
您了解您的代码(尤其是
ord(ch) + total - 96部分)还是只是复制并粘贴教授的代码?请详细了解 ASCII。
标签: python python-3.x list character