Python Challenge 第二题 字符串替换
Posted huangzc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python Challenge 第二题 字符串替换相关的知识,希望对你有一定的参考价值。
第1题 字符串替换
将字符串里面的字母往后推两个,例如a变为c,z变为b,其它字符不变.
1 def convert_string(aString): 2 bString = \' \' 3 for i in aString: 4 if ord(\'a\')<=ord(i)<=ord(\'w\') or ord(\'A\')<=ord(i)<=ord(\'W\'): 5 k = chr(ord(i)+2) 6 elif i == \'y\' or i == \'z\': 7 k = chr(ord(\'a\')+1+ord(i)-ord(\'z\')) 8 elif i == \'Y\' or i == \'Z\': 9 k = chr(ord(\'A\')+1+ord(i)-ord(\'Z\')) 10 else: 11 k = i 12 bString += k 13 return bString
效果:
官方推荐用maketrans方法
intab = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" outtab = "cdefghijklmnopqrstuvwxyzabCDEFGFIJKLMNOPQRSTUVWXYZAB" trantab = theString.translate(theString.maketrans(intab,outtab))
maketrans返回转换列表,转换规则是将字符串intab中的字符转换成outtab中对应位置的字符,translate按maketrans返回的转换列表执行转换操作.
第2题 从字符串中找字符
查看网页源代码,把那一堆字符保存到文件rare_char.txt文本文件中。
file = open("/home/zhanchao/Desktop/rare_char.txt") filestr = file.read() for i in filestr: if "a"<=i<="z": print(i)
第三题 正则表达式
一些基础:正则表达式
查看网页源代码,把那一堆字符保存到rare_char.txt文本文件。
结果是linkedlist,后面是.php。
import re file = open(\'/home/zhanchao/Desktop/rare_char.txt\') filestr = file.read() pat = r\'[a-z][A-Z]{3}[a-z][A-Z]{3}[a-z]\' m = re.findall(pat,filestr) for i in m: print(i[4],end = "")
第四题:网络
这个题我是看了答案的,一开始以为nothings是指一些质数或素数。。。没想到是网址
要用search而不是match因为match是从第一行开始匹配的。
最后得到peak.html
from urllib.request import urlopen import re uri = "http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=%s" num = "12345" #num = str(16044/2) while True: content = urlopen(uri % num).read().decode() print(content) match = re.search("and the next nothing is (\\d+)",content) if match == None: break num = match.group(1)
以上是关于Python Challenge 第二题 字符串替换的主要内容,如果未能解决你的问题,请参考以下文章