从字符串中获取ord()函数并返回总和

时间:2018-10-30 05:02:45

标签: python-3.x ord

对于此代码,我试图将与ASCII中字符串字母相对应的数字代码相加,然后返回数字,但是错误是

ord() expected a character, but string of length 8 found

但是我以为我已经分割了字符串以避免这种情况

这是无效的代码:

def checksum(string):
    words = string.split()
    for i in words:
        num = ord(i)[0] + ord(i)[1:]
    return num

例如,如果字符串为“ hi”,则输出应为301

3 个答案:

答案 0 :(得分:0)

据我所知,对字符串中的字母求和的方式是错误的。尝试以下方法:

FPM/FastCGI

答案 1 :(得分:0)

您可以做一个内衬,这可能是一种很好的Python方式

 def sum_string(string):
     return sum(map(ord, string))

答案 2 :(得分:-1)

ord("h") # 105
ord("hi") # TypeError: ord() expected a character, but string of length 2 found

使用ord()内置函数时,仅允许单个字符作为参数。

def check_sum(s):
    sum = 0
    for letter in s:
        sum += ord(letter)
    return sum

print(check_sum("hi")) # 209

顺便说一下,此功能中的list是不必要的。因为您已经可以遍历字符串类型本身。