我们必须编写一个带字符串并返回数字的函数。
首先应将字符串的每个字符转换为其ascii代码的十六进制值。结果应该是十六进制字符串中数字的总和(忽略字母)。
我们正在努力将ascii转换为hex ..
这是我们到目前为止所拥有的
def hex_hash(code):
# ascii to hex
# remove all the letters
# return the sum of the numbers
#code.encode('hex')
#code.hex()
#code = hex(code)
code = code.fromascii(code).encode('hex')
sum = 0
for i in code:
if i.isdigit():
sum = sum + i
return sum
答案 0 :(得分:1)
def hex_hash(s):
h = ''.join(str(hex(ord(x))) for x in s)
return sum(int(x) for x in h if x.isdigit())
样本用法:
>>> def hex_hash(s):
... h = ''.join(str(hex(ord(x))) for x in s)
... return sum(int(x) for x in h if x.isdigit())
...
>>>
>>> hex_hash('Yo')
20
>>> hex_hash("Hello, World!")
91
答案 1 :(得分:0)
\n
示例输入:
def func(s):
sm = 0
for i in s:
a = hex(ord(i))
for j in a:
if j.isdigit():
sm += int(j)
return sm
编辑: >>> func("Hello, World!")
91
部分
hex(ord(i))
给出该字符的ASCII值,例如:
ord(x)
>>> ord('A')
65
>>> ord('0')
48
返回整数的十六进制字符串表示形式:
hex(x)