Python命理程序返回错误结果(使用列表)
我应该写一个程序,接受一个人的全名并返回名字的数值。数值由名称中a=1、b=2…z=26的字母值确定 这就是我到目前为止所做的:Python命理程序返回错误结果(使用列表),python,python-3.x,list,character,Python,Python 3.x,List,Character,我应该写一个程序,接受一个人的全名并返回名字的数值。数值由名称中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
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。总值只是所有名称的数值之和。您应该向循环中添加一个打印总值,您将学会忽略非字母字符。好吧,我注意到的一点是,您的程序没有考虑名称中的空格。96部分很重要,代码将字母转换为Unicode,然后从96中减去。这个空格也有一个Unicode值,但是当你从中减去96时,这个值会变成负数,这反过来会扭曲总数。因此,你需要找出如何超越程序中的空白。如果有人必须阅读整个家庭作业问题,你的问题不够清楚{downvote},如果问题清楚,那么后面的部分就没有必要了。。你试过调试你的程序吗?你是否理解你的代码,尤其是ordch+total-96部分,或者你只是复制粘贴你教授的代码?请了解更多有关ASCII的信息。