鱼C论坛

 找回密码
 立即注册
查看: 3731|回复: 22

[已解决]help!升级版凯撒密码怎么写

[复制链接]
发表于 2020-3-12 18:02:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 一个账号 于 2020-3-12 18:18 编辑
  1. plaincode = input("请输入明文: ")
  2. for p in plaincode:
  3.         if ord("a") <= ord(p) <= ord("z"):
  4.                 print(chr(ord("a") + (ord(p) - ord("a") + 3)%26),end='')
  5.         else:
  6.                 print(p, end='')
复制代码


就是像上面这样 只不过要把加密和解密一个程序!有没有大佬救救我呀!
最佳答案
2020-3-12 18:16:07
帅哥一起吃火锅 发表于 2020-3-12 18:07
emmmmm就是加密和解密写到一个程序里边
  1. strings="a1b2c3d4e5f6g7h8i9j0klmnopqrstuvwxyz"

  2. def x_encode(s):
  3.     result=""
  4.     for p in s:
  5.             if ord("a") <= ord(p) <= ord("z"):
  6.                    result+=chr(ord("a") + (ord(p) - ord("a") + 3)%26)
  7.             else:
  8.                    result+=p
  9.     return result

  10. s=x_encode(strings)

  11. def x_decode(s):
  12.     result=""
  13.     for p in s:
  14.             if ord("a") <= ord(p) <= ord("z"):
  15.                    result+=chr(ord("a") + (ord(p) - ord("a") - 3)%26)
  16.             else:
  17.                    result+=p
  18.     return result   
  19. print(x_decode(x_encode(strings)))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-12 18:05:50 | 显示全部楼层
只不过要把加密和解密一个程序
看不懂   说都不会话吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-12 18:07:14 | 显示全部楼层
wp231957 发表于 2020-3-12 18:05
只不过要把加密和解密一个程序
看不懂   说都不会话吗

emmmmm就是加密和解密写到一个程序里边
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 18:07:44 | 显示全部楼层
本帖最后由 qiuyouzhi 于 2020-3-12 18:17 编辑

闲得没事就改了改,把循环加上了:
  1. def encode():
  2.     plaincode = input("请输入明文: ")
  3.     for p in plaincode:
  4.         if ord("a") <= ord(p) <= ord("z"):
  5.             print(chr(ord("a") + (ord(p) - ord("a") + 3)%26),end='')
  6.         else:
  7.             print(p, end='')

  8. def decode():
  9.     plaincode = input("请输入密文:")
  10.     for p in plaincode:
  11.         if ord("a") <= ord(p) <= ord("z"):
  12.             print(chr(ord("a") + (ord(p) - ord("a") - 3)%26),end='')
  13.         else:
  14.             print(p, end='')

  15. def begin():
  16.     choice = ''
  17.     while True:
  18.         if choice == ('q!' or 'Q!' or 'QUIT' or 'quit'):
  19.             break
  20.         choice = input("\n加密还是解密: ")
  21.         if choice == "加密":
  22.             encode()
  23.         elif choice == "解密":
  24.             decode()
  25.         else:
  26.             print("输入错误!")
  27.     print("BYE~")

  28. begin()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 18:14:33 | 显示全部楼层
帅哥一起吃火锅 发表于 2020-3-12 18:07
emmmmm就是加密和解密写到一个程序里边

hello?
你看看代码符不符合要求鸭?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 18:16:07 | 显示全部楼层    本楼为最佳答案   
帅哥一起吃火锅 发表于 2020-3-12 18:07
emmmmm就是加密和解密写到一个程序里边
  1. strings="a1b2c3d4e5f6g7h8i9j0klmnopqrstuvwxyz"

  2. def x_encode(s):
  3.     result=""
  4.     for p in s:
  5.             if ord("a") <= ord(p) <= ord("z"):
  6.                    result+=chr(ord("a") + (ord(p) - ord("a") + 3)%26)
  7.             else:
  8.                    result+=p
  9.     return result

  10. s=x_encode(strings)

  11. def x_decode(s):
  12.     result=""
  13.     for p in s:
  14.             if ord("a") <= ord(p) <= ord("z"):
  15.                    result+=chr(ord("a") + (ord(p) - ord("a") - 3)%26)
  16.             else:
  17.                    result+=p
  18.     return result   
  19. print(x_decode(x_encode(strings)))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-12 18:17:53 | 显示全部楼层
qiuyouzhi 发表于 2020-3-12 18:07
实在是懒,要循环自己加吧

试过了可以耶 谢谢你!!!虽然我看不懂def这个函数....
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 18:18:42 | 显示全部楼层
帅哥一起吃火锅 发表于 2020-3-12 18:17
试过了可以耶 谢谢你!!!虽然我看不懂def这个函数....


定义函数,后面就会学到(如果跟着小甲鱼的教程走,还有,def不是函数,是语句~)
有帮助就设个最佳答案吧~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-12 18:28:47 | 显示全部楼层
改了之后 我好像更看不懂了我们老师啥也没讲就让我们写 小甲鱼的视频我才看了一点点
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-12 18:29:42 | 显示全部楼层
qiuyouzhi 发表于 2020-3-12 18:07
闲得没事就改了改,把循环加上了:


改了之后 我好像更看不懂了我们老师啥也没讲就让我们写 小甲鱼的视频我才看了一点点
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-12 18:33:01 | 显示全部楼层

虽然你的看起来比上面的那位大佬还要难懂 我还是谢谢你!!!不然卑微大学生没法完成作业了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 18:34:24 | 显示全部楼层
帅哥一起吃火锅 发表于 2020-3-12 18:29
改了之后 我好像更看不懂了我们老师啥也没讲就让我们写 小甲鱼的视频我才看了一点点

没关系,让老师看起来这个程序更6一点
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 18:34:47 | 显示全部楼层
帅哥一起吃火锅 发表于 2020-3-12 18:33
虽然你的看起来比上面的那位大佬还要难懂 我还是谢谢你!!!不然卑微大学生没法完成作业了

你还是多学学基础吧
我感觉我的代码 比他的代码还要简单一些呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-12 18:35:20 | 显示全部楼层
qiuyouzhi 发表于 2020-3-12 18:34
没关系,让老师看起来这个程序更6一点

哈哈哈哈哈哈老师万一一看就知道不是我写的咋办
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-12 18:40:01 | 显示全部楼层
wp231957 发表于 2020-3-12 18:34
你还是多学学基础吧
我感觉我的代码 比他的代码还要简单一些呢

知道了!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 18:40:58 | 显示全部楼层
帅哥一起吃火锅 发表于 2020-3-12 18:35
哈哈哈哈哈哈老师万一一看就知道不是我写的咋办

那就简单教你一点
屌丝代码段:
  1. n = int(input("请输入一个数:"))
  2. result = 1
  3. for i in range(1,n+1):
  4.     result *= i
  5. print(result)
复制代码

(求阶乘的)
高大上代码段:
  1. def factorial()
  2.     n = int(input("请输入一个数:"))
  3.     result = 1
  4.     for i in range(1,n+1):
  5.         result *= i
  6.     print(result)
复制代码

可以发现区别吧?就是把
原始代码段加一个缩进
使用方法直接
  1. factorial()
复制代码
就行
如果想让最后的值可以赋值给变量,
就这么写:
  1. def factorial()
  2.     n = int(input("请输入一个数:"))
  3.     result = 1
  4.     for i in range(1,n+1):
  5.         result *= i
  6.     return result
复制代码

把最后一个打印改成return就行,
调用就得这么写:
  1. print(factorial())
复制代码

目前不用懂太多,该学的一定会学到的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 18:44:20 | 显示全部楼层
wp231957 发表于 2020-3-12 18:34
你还是多学学基础吧
我感觉我的代码 比他的代码还要简单一些呢

你确定?
我直接把他的代码打包成函数
什么逻辑都没变,就后面加了一个
运行函数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 18:45:53 | 显示全部楼层
qiuyouzhi 发表于 2020-3-12 18:44
你确定?
我直接把他的代码打包成函数
什么逻辑都没变,就后面加了一个

嗯,我的代码行数比你的少,所以就比你的简单  
你看这个解释如何   哈哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 18:47:15 | 显示全部楼层
wp231957 发表于 2020-3-12 18:45
嗯,我的代码行数比你的少,所以就比你的简单  
你看这个解释如何   哈哈

好吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-12 18:49:10 | 显示全部楼层
qiuyouzhi 发表于 2020-3-12 18:40
那就简单教你一点
屌丝代码段:

可以发现区别!太感谢你了!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-14 05:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表