对于此代码,我试图将与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
答案 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
是不必要的。因为您已经可以遍历字符串类型本身。