我正在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
答案 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)