新浦京81707con > 功能介绍 > python中的字母转换,过关心得

原标题:python中的字母转换,过关心得

浏览次数:80 时间:2019-05-06

无意之间驾驭到了多少个很逗比的网址:

1、K -> M  O ->Q  E -> G

Python Challenge 过关心得(1),pythonchallenge

       正式开班第2关,那一关的U中华VL的异样部分是map。

       那关的图样上有一个本子,上面写着K→M,O→Q,E→G,稍微思量就能够开掘那几个假名都以安分守己字母表的逐条向后移动了两位,那么最投机取巧的诀窍就是把map的二个假名根据那一个规则改换就行了。就算那个是本人想要的结果,但却并不是本身想要的进度,照旧得依照正规的编制程序方法来,而且下边还有其余的晋升,姑且先全体看完。

       图片下方有一行提醒:三思而后解题。再下方是几行毫无规则的字母组合,很显眼是要通过上述规则转化的。

       对于如此的更动,很当然的想到的正是ASCII码。查阅资料后,发掘python中ASCII码和字符的交互调换使用的是ord()函数和chr()函数。然后要留意的是y和z应该是要改造到a和b,那么那三个正是前进挪动二四人。写好程序之后发掘一个难题,由于自己用来记录转换后内容的是四个list表,假诺直接print的话不便利阅读,继续查看资料后开采join()函数能够兑现list到string的转换,于是正式的代码如下:

 

图片 1 1 code = 'g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. 2 bmgle gr gl zw fylb gq glcddgagclr ylb rfyrq ufw rfgq rcvr gq qm jmle. 3 sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj.' 4 5 decode = [] 6 for i in code: 7 if ord('a') <= ord(i) <= ord('x'): 8 decode.append(chr(ord(i) 2)) 9 elif ord('y') <= ord(i) <= ord('z'): 10 decode.append(chr(ord(i) - 24)) 11 else: 12 decode.append(i) 13 print(''.join(decode)) View Code

 

       运维后输出了转移后的升迁:i hope you didnt translate it by hand. thats what computers are for.doing it in by hand is inefficient and thats why this text is so long.using string.maketrans() is recommended. now apply on the url.

       果然规行矩步的做完依然有实益的,提醒里提到了string.maketrans()这些函数。依据python的合法文书档案表明,string.maketrans(from,to)函数给translate()函数提供一个从from映射到to的翻译表,而translate(s,table,[deletechars])函数则是从s中删除出今后deletechars里(假如部分话)的字符,再依赖table的的平整实行转变。

       于是运用string下的maketrans()和translate()的代码如下:

图片 21 import string 2 3 code = 'g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. 4 bmgle gr gl zw fylb gq glcddgagclr ylb rfyrq ufw rfgq rcvr gq qm jmle. 5 sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj.' 6 7 print(string.translate(code, string.maketrans('abcdefghijklmnopqrstuvwxyz', 'cdefghijklmnopqrstuvwxyzab'))) View Code

       在第3关的左下角提醒到,把ULANDL里的pc改成pcc能够看到前一关的各样解法。点开1看果然多数,还包蕴了其余语言的解法。值得一提的是,二个解法中行使string.ascii_lowercase和string.ascii_lowercase[2:] string.ascii_lowercase[:2]的写法代替了自身的代码中‘abcdefghijklmnopqrstuvwxyz'和’cdefghijklmnopqrstuvwxyzab‘这样看起来相比较乱也易于失误的写法。首先`,这里的string.ascii_lowercase就是从a到z的兼具小写字母组合成的字符串,当然这里也能够写成string.lowercase,超越57%气象下两岸如出1辙,不过多少异样境况后者会有变动,同理还有string.ascii_uppercase和string.uppercase。其次,这里还用到了python中的切成条,切块那些概念在看python的基本概念的时候有接触,但并从未机会接纳,正好借此机会加强一下。比如string.ascii_lowercase[2:]就是从string.ascii_lowercase[贰]起初切成丝到字符串末尾,即从'c'到'z',而string.ascii_lowercase[:2]正是从字符串开首切成片到第一人,即'ab',假若有个string.ascii_lowercase[3:陆],那么就活该是'def'。```

       最终将map的翻译写进代码:

图片 31 import string 2 'map'.translate(string.maketrans(string.ascii_lowercase, string.ascii_lowercase[2:] string.ascii_lowercase[:2])) View Code

       得到了进入下壹关的基本点字:ocr。

 

Challenge 过关怀得(一),pythonchallenge 正式开班第1关,这一关的UPRADOL的非正规部分是 map 。 那关的图片上有一个本子,上边写着KM,OQ,EG,...

 

Hint:每一种人在消除这些难题在此之前先想两回

于是乎就碰见了第一题,他列出了1串文本:

Text:g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj.

g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj.

各样字母的ASCII码值扩张贰

下一场交到了下图:

图片 4图片 5

图片 6

# -*- coding:UTF-8 -*-

str = "g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."

# (ord(x) 2-ord('a'))&
# x的ASCII码值 2之后是第几个字母
print("".join(map(lambda x: chr(ord('a')   (ord(x) 2-ord('a')) % 26) if x.isalpha() else x, str)))

 

(1)

经过图片中的音讯我们能识破,其实便是将近来字母以后运动两位。

更改之后的Text:i hope you didnt translate it by hand. thats what computers are for. doing it in by hand is inefficient and that's why this text is so long. using string.maketrans() is recommended. now apply on the url.

本文由新浦京81707con发布于功能介绍,转载请注明出处:python中的字母转换,过关心得

关键词: 新浦京81707con Python pythonchalle

上一篇:网Web前端开发规范,代码风格

下一篇:没有了