Python运行代码报SyntaxError: invalid syntax语法错误是什么原因?
错误原因
- 核心语法错误来自Python版本不兼容:你使用的在线编译器默认运行Python 3,而你的代码使用Python 2语法。Python 3中
print是内置函数,调用时必须将输出内容放在括号中,原代码print decode("/cUY")没有括号,因此触发SyntaxError。 - 还有两处隐藏的兼容问题需要同步修复才能正常运行:
- Python 3中
b64encode仅接收bytes类型参数,直接传入字符串'110'会触发类型错误 b64decode返回结果为bytes类型,如需输出可读字符串需要额外调用.decode()方法
- Python 3中
修正后的可运行代码
from base64 import b64encode, b64decode k = '1de76ec9fc46fab7' def modchar(c, i): return chr((((((ord(c) - 32) + i) % 94) + 94) % 94) + 32) def decode(s): global k r = '' n = 0 for i in range(len(s)): r += modchar(s[i], -(int(i * 1.3) + i + len(s) - ord(k[n % len(k)]) + 109)) n += 1 return b64decode(r).decode() def encode(s): global k r = '' n = 0 s = b64encode(s.encode('utf-8')) s = s.decode('utf-8') for i in range(len(s)): r += modchar(s[i], (int(i * 1.3) + i + len(s) - ord(k[n % len(k)]) + 109)) n += 1 return r print(decode("/cUY")) print(encode('110'))
内容的提问来源于stack exchange,提问作者Bogdan Nicolescu
相关产品推荐
相关产品推荐

