zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    K
    A
    C
    E
    2020/9/14
    hdu5306 hdu3954 cf438D
    2020/9/10-9/11
    题解
    2020/8/31
    2020/8/30
  • 原文地址:https://www.cnblogs.com/zhanchao/p/9013410.html
Copyright © 2011-2022 走看看