解密游戏
题目: 当字母为小写时 向前跳4位数 如:a---> e
当字母为大写时 向后跳2位数 如
A---> Y
解密:aA--->eY
请把Srmgshi Rverwjsvqexmsr Dsvqex解密
---------------------------------------------------------------------------
下面是我自己写的然后疯狂报错求大佬解答
# 闭环小写减一轮加4大写加一轮减2
str1 = input("请输入要解密的内容:")
for each in str1:
# 小写
if each.islower():
i = ord(each)
if i <= 118:
a1 = chr(i+4)
else:
a2 = chr(i-22)
# 大写
else:
a = ord(each)
if a > 66:
a3 = chr(a-2)
else:
a4 = chr(a+24)
# 向上查找a1 a2 a3 a4
nonlocal a1, a2, a3, a4
a5 = a1 + a2 + a3 + a4
print(a5)
用你的方式帮你改了下代码 , 如果帮助到你了 给个最佳吧{:10_287:}
str1 = input("请输入要解密的内容:")
a = ''
for each in str1:
if each.islower():
i = ord(each)
if i <= 118:
a += chr(i-4)
else:
a += chr(i-22)
elif each.isupper():
i = ord(each)
if i > 66:
a += chr(i+2)
else:
a += chr(i+24)
elif each == ' ':
a += each
print(a) 沙发 晚点来做嘿嘿 {:10_266:} 大大的拳头 发表于 2020-5-15 18:49
a1 a2 a3 a4 是在何处定义的?
请贴代码,不要只发图片,谢谢 本帖最后由 永恒的蓝色梦想 于 2020-5-15 19:18 编辑
大大的拳头 发表于 2020-5-15 18:49
全局作用域nonlocal,谁教给你的?
还有不少的问题 本帖最后由 jerryxjr1220 于 2020-5-15 20:57 编辑
xiaoxie={'efghijklmnopqrstuvwxyzabcd': 'abcdefghijklmnopqrstuvwxyz'for i in range(26)}
daxie={'YZABCDEFGHIJKLMNOPQRSTUVWX': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'for i in range(26)}
for i in 'Srmgshi Rverwjsvqexmsr Dsvqex':
if i in xiaoxie:
print(xiaoxie, end='')
elif i in daxie:
print(daxie, end='')
else:
print(' ', end='')
{:5_93:}
Unicode Transformation Format 永恒的蓝色梦想 发表于 2020-5-15 19:15
全局作用域nonlocal,谁教给你的?
把那行去了就可以了
拿去后就找不到a1a2 等 变量了照样报错 大大的拳头 发表于 2020-5-15 19:19
拿去后就找不到a1a2 等 变量了照样报错
不拿去也找不到 jerryxjr1220 发表于 2020-5-15 19:16
xiaoxie={'abcdefghijklmnopqrstuvwxyz': 'efghijklmnopqrstuvwxyzabcd' for i in range(26)}
daxie={'ABC ...
直接一个字典,不好吗{:10_277:}_func={'A': 'Y', 'B': 'Z', 'C': 'A', 'D': 'B', 'E': 'C', 'F': 'D', 'G': 'E', 'H': 'F', 'I': 'G', 'J': 'H', 'K': 'I', 'L': 'J', 'M': 'K', 'N': 'L', 'O': 'M', 'P': 'N', 'Q': 'O', 'R': 'P', 'S': 'Q', 'T': 'R', 'U': 'S', 'V': 'T', 'W': 'U', 'X': 'V', 'Y': 'W', 'Z': 'X', 'a': 'e', 'b': 'f', 'c': 'g', 'd': 'h', 'e': 'i', 'f': 'j', 'g': 'k', 'h': 'l', 'i': 'm', 'j': 'n', 'k': 'o', 'l': 'p', 'm': 'q', 'n': 'r', 'o': 's', 'p': 't', 'q': 'u', 'r': 'v', 's': 'w', 't': 'x', 'u': 'y', 'v': 'z', 'w': 'a', 'x': 'b', 'y': 'c', 'z': 'd'}.get
func=lambda x:''.join(_func(i,i)for i in x) 永恒的蓝色梦想 发表于 2020-5-15 19:25
直接一个字典,不好吗
写字典太麻烦,懒{:5_92:} jerryxjr1220 发表于 2020-5-15 19:28
写字典太麻烦,懒
让Python去做,我们复制不就好了吗{:10_245:} _2_ 发表于 2020-5-15 19:13
a1 a2 a3 a4 是在何处定义的?
请贴代码,不要只发图片,谢谢
嗯代码在图片上面 永恒的蓝色梦想 发表于 2020-5-15 19:24
不拿去也找不到
拿去后可否用其他办法让他输出,主要是找到其他变量 本帖最后由 大大的拳头 于 2020-5-15 20:04 编辑
str1 = input("请输入要解密的内容:")
for each in str1:
# 小写
if each.islower():
i = ord(each)
if i <= 118:
a1 = 0
a1 = chr(i+4)
else:
a2 = chr(i-22)
# 大写
else:
a = ord(each)
if a > 66:
a3 = 0
a3 = chr(a-2)
else:
a4 = 0
a4 = chr(a+24)
a5 = a1 + a2 + a3 + a4
print(a5)
拿去nonloal后 找不到a1 a2 a3 a4 有没有解决办法 str1 = input("请输入要解密的内容:")
for each in str1:
# 小写
if each.islower():
i = ord(each)
if i <= 118:
a1 = chr(i+4)
else:
a2 = chr(i-22)
# 大写
else:
a = ord(each)
if a > 66:
a3 = chr(a-2)
else:
a4 = chr(a+24)
# 向上查找a1 a2 a3 a4
a5 = a1 + a2 + a3 + a4
print(a5)
去掉 nonlocal这个一般都是在函数、方法里面用的
用于声明该变量为当前与全局的命名空间
如果帮助到你了,给个最佳吧{:10_287:} 本帖最后由 大大的拳头 于 2020-5-15 20:29 编辑
Twilight6 发表于 2020-5-15 20:14
去掉 nonlocal这个一般都是在函数、方法里面用的
用于声明该变量为当前与全局的命名空间
还是报错
a5 = a1 + a2 + a3 + a4
NameError: name 'a2' is not defined
{:5_100:}
这个是班上一个大佬的代码 大大的拳头 发表于 2020-5-15 20:18
还是报错
a5 = a1 + a2 + a3 + a4
NameError: name 'a2' is not defined
怎么会 我运行都是正常的
本帖最后由 大大的拳头 于 2020-5-15 20:24 编辑
Twilight6 发表于 2020-5-15 20:18
怎么会 我运行都是正常的
我也不知道怎么回事{:10_245:}
页:
[1]
2