因为负值%26的余数与正值%26的余数不同啊比如-3%26的余数为23,23+ord("z")那不超出了字母范围?
注释掉的是负数啊,你可以改成print(chr(ord("z")-(ord("z")+3-ord(p))%26),end="")