如何使用for循环将python中字符代码的数值相加
How to add up the numeric values of character codes in python using a for loop
我将自己的名字保存为变量名下的字符串。
我想找到我名字中每个字符的字符代码,然后使用 for 循环将它们全部相加。刚开始是这样的,不知道看的对不对
name = "Ashley Marie"
for index in name:
ans = ord(index)
您可以使用map
对所有字符应用ord
函数,然后使用sum
函数计算总和:
>>> name = "Ashley Marie"
>>>
>>> sum(map(ord,name))
1140
您还可以使用列表推导式将 ord
应用到您的角色上,但是当您处理内置函数时 map
的性能稍好!所以我建议 map
.
同样,对于最长的字符串,您可以在 sum
中使用 generator expression,这不会创建列表并且可以节省大量内存:
sum(ord(i) for i in name)
Kasra 解决方案是正确的,但您要求的是 "for loop"...所以这里是:
name = "Ashley Marie"
sum = 0
for ch in map(ord, name):
sum += ch
print sum
或
name = "Ashley Marie"
sum = 0
for c in name:
sum += ord(c)
print sum
我将自己的名字保存为变量名下的字符串。 我想找到我名字中每个字符的字符代码,然后使用 for 循环将它们全部相加。刚开始是这样的,不知道看的对不对
name = "Ashley Marie"
for index in name:
ans = ord(index)
您可以使用map
对所有字符应用ord
函数,然后使用sum
函数计算总和:
>>> name = "Ashley Marie"
>>>
>>> sum(map(ord,name))
1140
您还可以使用列表推导式将 ord
应用到您的角色上,但是当您处理内置函数时 map
的性能稍好!所以我建议 map
.
同样,对于最长的字符串,您可以在 sum
中使用 generator expression,这不会创建列表并且可以节省大量内存:
sum(ord(i) for i in name)
Kasra 解决方案是正确的,但您要求的是 "for loop"...所以这里是:
name = "Ashley Marie"
sum = 0
for ch in map(ord, name):
sum += ch
print sum
或
name = "Ashley Marie"
sum = 0
for c in name:
sum += ord(c)
print sum