网址:chanllenge

修改url最后的html的前缀为答案,就可以过关。

页面上很多只有一幅图片,实际上题目描述全在页面源码中。

然后推荐一个在线代码运行的网站 ideone

查看所有源码:https://github.com/yrhsilence/pythonchallenge

第零题:

题目:要求取2的38次方。

解:python支持**符号表示指数,也可以用match.pow()

2 ** 38

math.pow(2, 38)

第一题:

题目:字符变换,最简单的加密解密方法。

解:字符相差为2,所以把所有的字母的ascci值加2就可以,下面的提示,最终的答案都使用转换既可过关。最傻in hand,不过是会被鄙视的。

  你可以用ord,chr两个内建函数,然后自己编写一个转换函数。

  可以用内建的string.maketrans建立一一对应关系,然后使用translate函数运用该对应关系。

import string

a = "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/python
import sys fp = open('3.txt', 'r')
con = fp.read() m = {}
for c in con:
m[c] = m.get(c, 0) + 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')

第三题:

题目:要你找到符合题目描述的字符串,特点是一个小写字母的两边刚好有三个大写字母。

解:在页面的源码中获得长字符串。然后取出符合条件的字符串。把中间的那个小写字符取出来,最后合并即为结果。

!/usr/bin/python

#string reverse: s[::-1]

import sys

fp = open('4.txt', 'r')

lines = ""
for line in fp:
lines += line.strip() def filte(s):
return s[1:4].isupper() and s[4].islower() and s[-4:-1].isupper() \
and s[0].islower() and s[-1].islower() for i, _ in enumerate(lines[4:-4]):
word = lines[i:i+9]
if filte(word):
sys.stdout.write(word[4])
sys.stdout.write('\n')

第四题:

题目:根据源码页中题目的提示,需要多次通过urllib获取网页信息,从中提取nothing的值,组成新的url。

解:通过python的urllib库获取网页信息,然后通过re模块获取数值。注意有两点,一中间有一个页面没有数值,只有一个描述语句;二要取最后一个数值。

#!/usr/bin/python

import re
import urllib2 def get_index(index):
url = 'http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=' + index
html = urllib2.urlopen(url).read()
print html
result = re.findall('\d+', html)
if (len(result) > 0):
return str(result[-1])
else:
return None index = ''
for i in range(400):
index = get_index(index)
if index == None:
break index = str(16044 / 2)
for i in range(400):
index = get_index(index)
if index == None:
break

python chanllenge题解的更多相关文章

  1. 一人一python挑战题解

    题目id: 1 just print a+b give you two var a and b, print the value of a+b, just do it!! print a+b 题目id ...

  2. 2019-06-03 校内python模拟题解(所有非原题)

    一起来女装吧 本题改编自USACO(USA Computing Olympiad) 1.1节的第一题 (感谢lsy同学对本题题面的贡献) 直接计算就好了 chr:将ASCII码转成字符 ord:字符对 ...

  3. LeetCode python实现题解(持续更新)

    目录 LeetCode Python实现算法简介 0001 两数之和 0002 两数相加 0003 无重复字符的最长子串 0004 寻找两个有序数组的中位数 0005 最长回文子串 0006 Z字型变 ...

  4. The Python Challenge 题解

    仔细阅读,图画下面的提示(网页的 title 也是重要的提示信息,至少告诉你考察的对象是什么) 1. 238 >> 2**38 274877906944L 根据提示,在 URL 地址处,0 ...

  5. 【Python CheckiO 题解】SP

    题目描述 [Speech Module]:输入一个数字,将其转换成英文表达形式,字符串中的所有单词必须以一个空格字符分隔. [输入]:一个数字(int) [输出]:代表数字的英文字符串(str) [前 ...

  6. 【ARTS】01_02_左耳听风-20181119~1125

    Algorithm 做一个 leetcode 的算法题 Unique Email Addresses https://leetcode.com/problems/unique-email-addres ...

  7. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  8. [LeetCode]题解(python):125 Valid Palindrome

    题目来源 https://leetcode.com/problems/valid-palindrome/ Given a string, determine if it is a palindrome ...

  9. [LeetCode]题解(python):120 Triangle

    题目来源 https://leetcode.com/problems/triangle/ Given a triangle, find the minimum path sum from top to ...

随机推荐

  1. 详细解释VB连接access几种方法数据库

    在VB中,连接ACCESS数据库的方法主要有以下三种 使用ADO对象,通过编写代码訪问数据库 Connection 对象 ODBC数据源 使用ADO Data 控件高速创建数据库连接 有三种连接方法 ...

  2. HDU 1754 I Hate It (段树 & 树阵)

    I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  3. Tyvj P1015 公路骑 (DP)

     叙述性说明 Description 一个特殊的单行道都在每公里公交车站.们乘坐汽车的公里使来付费. 比如例子的第一行就是一个费用的单子. 没有一辆车子行驶超过10公里.一个顾客打算行驶n公里(1 ...

  4. hdu 3449 (有依赖的01背包)

    依赖背包 事实上,这是一种树形DP,其特点是每个父节点都需要对它的各个儿子的属性进行一次DP以求得自己的相关属性. fj打算去买一些东西,在那之前,他需要一些盒子去装他打算要买的不同的物品.每一个盒子 ...

  5. KMP算法之从next[]到nextVal[]

    前些日子写了一篇KMP算法的博文,浅谈数据结构之KMP(串中的模式匹配算法),在这片文章中,谈到了一个模式串K值的记录数组 next[],详细可看那篇文章,其实,前面定义的next[]数组是有一定缺陷 ...

  6. OData.NET已在 GitHub上开源

    OData.NET已在 GitHub上开源 微软最近已将OData .NET所有类库的源代码全部发布在GitHub上. 以下与OData相关的项目目前都已迁移到GitHub上: ODataLib Ed ...

  7. AngularJS之使用控制器封装业务逻辑

    AngularJS之使用控制器封装业务逻辑 控制器的作用 我们知道,在AngularJS中,实现数据绑定的核心是scope对象.那么控制器又有什么用呢? 简单地说,没有控制器/controller,我 ...

  8. Redis MSET的极限在哪里

    ·背景 Redis以"快.准.狠"而著称,除了其主-从模式略失光彩(主从模式更多是被以讹传讹,3.0依旧在测试中),大部分的应用可谓尖兵利器.在一些常规写的时候,MSET和HMSE ...

  9. VS2015前端工具:NPM和Web Essentials

    VS2015前端工具:NPM和Web Essentials 1.写作背景 想在5月份前换个工作环境了,“检讨”一下自己混饭的技术水平和处世的人脉关系,觉得很不给力!为人方面,人各有志也就不纠结了,但本 ...

  10. 宏观CMS-->功能体系结构内容管理系统

      CMS,Content Management System,一个非常普通的站点内容管理系统.本文章旨在从一定的高度把CMS的功能概念做一个分解论述 ,希望读者能够有所感. 1.前台 前台是站点中给 ...