Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python命理程序返回错误结果(使用列表)_Python_Python 3.x_List_Character - Fatal编程技术网

Python命理程序返回错误结果(使用列表)

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

我应该写一个程序,接受一个人的全名并返回名字的数值。数值由名称中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。总值只是所有名称的数值之和。

您应该向循环中添加一个打印总值,您将学会忽略非字母字符。

好吧,我注意到的一点是,您的程序没有考虑名称中的空格。96部分很重要,代码将字母转换为Unicode,然后从96中减去。这个空格也有一个Unicode值,但是当你从中减去96时,这个值会变成负数,这反过来会扭曲总数。因此,你需要找出如何超越程序中的空白。

如果有人必须阅读整个家庭作业问题,你的问题不够清楚{downvote},如果问题清楚,那么后面的部分就没有必要了。。你试过调试你的程序吗?你是否理解你的代码,尤其是ordch+total-96部分,或者你只是复制粘贴你教授的代码?请了解更多有关ASCII的信息。