加密程序错误

时间:2016-10-29 03:07:49

标签: python

我正在python中编写一个加密程序,我需要更改输入字符串ex:HELLO和输出:LIPPS。当我输入更多单词时,我遇到了问题。

def encr_ypt(s, n):
    word=ord(s)
    for i in range(len(s)):
        if word >= 90 and word <= 97:
            hsl = chr(63+n)
        if word >= 122:
            hsl = chr(95+n)
        else:
            hsl = chr(word+n)
    return hsl

st=raw_input('input string : ')
print encr_ypt(st, 4)

以下是错误消息

input string : HELLO
Traceback (most recent call last):
  File "encrypt.py", line 13, in <module>
    print encr_ypt(st, 4)
  File "encrypt.py", line 2, in encr_ypt
    word=ord(s)
TypeError: ord() expected a character, but string of length 5 found

1 个答案:

答案 0 :(得分:0)

ord(i)函数接受一个字符,然后返回结果字符的ASCII值。您的代码正在尝试获取字符串的ASCII值,这会返回错误。

此外,由于您使用hsl变量来存储加密的字符串,请务必使用+=运算符将结果字符添加到字符串中。

以下是更正的代码

def encr_ypt(s, n):
    hsl = ''
    for word in s:
        word = ord(word)
        if word >= 90 and word <= 97:
            hsl += chr(63+n)
        if word >= 122:
            hsl += chr(95+n)
        else:
            hsl += chr(word+n)
    return hsl

st=raw_input('input string : ')
print encr_ypt(st, 4)