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 第二题 字符串替换的主要内容,如果未能解决你的问题,请参考以下文章

Python Challenge - 02

剑指offer第二题:替换空格(python)

python第二题 学习random的用法

《数据结构与算法Python语言描述》习题第二章第二题(python版)

pwnable.kr 第二题 collision

csp 2017年12月第二题 游戏 Python题解100分