python编程 凯撒密码 为什么大写Z输出是_,小写z输出e是正确的?求解!!!... 为什么大写Z输出是_,小写z输出e是正确的?求解!!! 展开 我来答 2个回答 #热议# 不吃早饭真的会得胆结石吗? 夸嚓___你谁啊 2019-03-08 · 超过31用户采纳过TA的回答 知道答主 回答量:136 采纳率:66% 帮助的人:26.5万 我也去答题访问个人页 关注 展开全部 我觉得是因为你那句if, 'Z'的ascii码(十进制)为90, 而 'z'对应的为122。语句判断如果输入的字符串的值+前面写的值大于'Z'(90)并且大于'z'(122),也就是说得到的值必须大于122才进行之后的-26的操作,由于90+5<122 所以没有执行-26 得到的就是95 即'_'这个字符。希望可以帮助到你,望采纳。 更多追问追答 追问 那应该怎么改才会对呢? 那应该怎么改才会对呢? 追答 那得根据你代码的业务逻辑修改判断条件啊,我不太了解你为什么想要这个判断语句。不过如果你想让'Z'正常输出,就需要将and后面对'z'的判断给去掉。 追问 因为我需要输入的字符串不仅要大写,还需要小写,如果只保留Z,z就无法输出了 追答 你这个判断在逻辑上有点问题,比如我给一个变量,然后赋值为95。你这边一条判断,如果变量大于90并且大于122,才去执行-26的操作,最终判断条件还是判断95是否大于122。因为大写的Z的值+5小于122 所以就没有执行-26的操作,直接保留了95并转为字符给输出了。如果你想要判断输入的是否为一个A~Z和a~z的字符,可以在输入字符串的时候判断是否>'A'并且小于'z' 不过Python已经给你了isalpha判断 所以不需要自行判断是否为一个字母。如果你是想确保输出的是一个字母,则把and后面去掉就行了。 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 匿名用户 2019-03-08 展开全部 a='5 Z'n,s=a.split(' ',maxsplit=1)n=int(n)i=str()for b in s: if b.isalpha(): b=chr(ord(b)+n) #这里用or if b>'Z' or b>'z': b=chr(ord(b)-26) i+=bprint(i) 追问 这个我也试过,但是如果多个小写字母就不对了 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询 其他类似问题 2018-10-20 如何用python编写凯撒密码 ? 1 2014-12-04 python凯撒密码,编程,急用 8 2012-04-05 谁有PYTHON编写的凯撒密码的加密和解密代码? 11 2017-05-23 python凯撒密码实现 8 2016-01-06 用Python2.7.10编写凯撒密码加密和解密程序 2 2019-05-02 python语言凯撒密码加密为什么要%26? 2 2015-12-07 求python中的恺撒密码的加密,解密,以及破解的程序 2015-12-22 如何使用python中的字典来编写一个对凯撒密码的加密和解密... 更多类似问题 > 为你推荐: