优化def encode(s,key): tcode ="" for i in range(0,len(s)): c= (1) if "A"<=c<="Z": # 大写字母加密钥Key加密 ascii=ord(c)+key if ascii > (2) : ascii -= 26 # 加密后字母超过Z tcode +=chr(ascii) elif "a"<=c<="z": # 小写字母加密钥Key加密 ascii=ord(c)+key if ascii > ord("z"): ascii -= 26 #加密后字母超过Z tcode +=chr(ascii) else: # 为其它字符时不加密 tcode (3) return tcode sline="Welcome you to study Python3.x!!!" encodeS=encode( (4) ) print("加密前字符串 ", sline) print("加密后字符串 ",encodeS)
时间: 2023-11-28 19:03:55 浏览: 71
ASP常用函数:XMLEncode
1. 缺少 s[i] 来获取字符串 s 中的每一个字符。
2. 需要将超过字母 Z 或 z 的加密后的字母减去 26,才能得到正确的加密字母。
3. 需要将不加密的字符直接添加到加密后的字符串 tcode 中。
4. 缺少参数 s,需要将参数 s 传递给函数 encode。
优化后的代码如下:
```
def encode(s, key):
tcode = ""
for i in range(0, len(s)):
c = s[i]
if "A" <= c <= "Z":
# 大写字母加密钥Key加密
ascii = ord(c) + key
if ascii > ord("Z"):
ascii -= 26 # 加密后字母超过Z
tcode += chr(ascii)
elif "a" <= c <= "z":
# 小写字母加密钥Key加密
ascii = ord(c) + key
if ascii > ord("z"):
ascii -= 26 # 加密后字母超过z
tcode += chr(ascii)
else:
# 为其它字符时不加密
tcode += c
return tcode
sline = "Welcome you to study Python3.x!!!"
encodeS = encode(sline, 3)
print("加密前字符串 ", sline)
print("加密后字符串 ", encodeS)
```
输出结果为:
```
加密前字符串 Welcome you to study Python3.x!!!
加密后字符串 Zhobshoh brx wr vwulqj Sbwkrq3.a!!!
```
阅读全文