首页 > 代码库 > python chanllenge题解
python chanllenge题解
网址:chanllenge
修改url最后的html的前缀为答案,就可以过关。
然后推荐一个在线代码运行的网站 ideone
第一题:
题目:要求取2的38次方。
解:python支持**符号表示指数,也可以用match.pow()
2 ** 38math.pow(2, 38)
第二题:
题目:字符变换,最简单的加密解密方法。
解:字符相差为2,所以把所有的字母的ascci值加2就可以,下面的提示,最终的答案都使用转换既可过关。最傻in hand,不过是会被鄙视的。
你可以用ord,chr两个内建函数,然后自己编写一个转换函数。
可以用内建的string.maketrans建立一一对应关系,然后使用translate函数运用该对应关系。
import stringa = "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. "aa = "map"b = string.maketrans(‘abcdefghijklmnopqrstuvwxyz‘, ‘cdefghijklmnopqrstuvwxyzab‘)print a.translate(b)print aa.translate(b)
第三题:
题目:获取一个字符串中最少出现的字符。
解:在页面的源码页,你可以获取到这个长字符串,存入文件中,然后读取出来。获取其中所有字符的出现次数,得到最少出现的字符组。按照这个字符组中各字符出现的先后顺序组合成一个字符串,即为答案。
#!/usr/bin/pythonimport sysfp = open(‘ocr.txt‘, ‘r‘)con = fp.read()m = {}for c in con: m[c] = 1 if m.get(c) == None else (m[c] + 1)#print [(k, m[k]) for k in sorted(m.keys())]#print [v for v in sorted(m.values())]#sort_m1 = sorted(m.iteritems(), cmp = lambda x, y: cmp(x[1], y[1]), reverse = True)sort_m = sorted(m.iteritems(), key = lambda d: d[1])result = {}for i in range(8): key = sort_m[i][0] result[key] = con.find(key)sort_r = sorted(result.items(), key = lambda d: d[1])for item in sort_r: sys.stdout.write(item[0])sys.stdout.write(‘\n‘)
python chanllenge题解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。