美文网首页
Python Challenge[5]

Python Challenge[5]

作者: Recgat | 来源:发表于2017-02-08 16:16 被阅读0次

[Level 5]


Title: peak hell

pronounce it

想不出,查看源码,找到banner.p文件,注释中提示peak hell sounds familiar ?。未想出,搜了下知道是pickle,要使用pickle模块处理banner.p文件。

import pickle
with open('banner.p','rb') as f:
  ban = pickle.load(f)
  print(ban)

打印出[[(' ', 95)], [(' ', 14), ('#', 5), (' ', 70), ('#', 5), (' ', 1)],...],是多个包含元组的列表组成的一个大列表。元组所含元素的形式是字符串加一个整数,应该是字符串重复次数。一个小列表为一行进行打印。

for b in ban:
    print(''.join(i[0]*i[1] for i in b))

得到channel[Level 6]

小结

  1. pickle模块的pickle.load(file, *, fix_imports=True, encoding="ASCII", errors="strict")函数读取一个文件对象,返回重新构建的对象层次结构。文件可以是为二进制读取打开的磁盘文件,io.BytesIO对象或满足此接口的任何其他自定义对象。可以直接传递请求数据到函数:
import urllib.request
ban = urllib.request.urlopen('http://www.pythonchallenge.com/pc/def/banner.p')
  1. 打印时,使用列表解析,很强大:print('\n'.join([''.join([p[0] * p[1] for p in b]) for b in ban]))

Python Challenge Wiki

输出方式有很多,如使用lambda创建一个函数:m = lambda pair: pair[0]*pair[1],其他大同小异了。

More

相关文章

  • Python挑战:00~03关

    Python Challenge Python Challenge 00 网址: http://www.pytho...

  • The Python Challenge(5)

    问题链接 问题链接如下: 答案链接 答案链接如下: 解题思路 根据页面源码提示: 再点击页面图片显示: 可知是需要...

  • Python Challenge[5]

    [Level 5] Title: peak hell pronounce it 想不出,查看源码,找到banner...

  • Python挑战:04-05关

    Python Challenge Python Challenge 04 现在,我们来挑战第四关,从第三关的结果,...

  • Python challenge 第五关之——pickle序列化

    上周五下午同事发我一个Python challenge level 5的链接:http://www.pythonc...

  • Python Challenge 第5关

    地址:http://www.pythonchallenge.com/pc/def/peak.html 需要使用到的...

  • The Python Challenge(8)

    问题链接 问题链接如下: 答案链接 答案链接如下: 解题思路 页面和源码中无任何提示,但图片中有一条很明显的灰度线...

  • The Python Challenge(9)

    问题链接 问题链接如下: 答案链接 答案链接如下: 登陆用户名密码为huge和file。 解题思路 阅读源码有如下...

  • The Python Challenge(2)

    问题链接 问题链接如下: 答案链接 答案链接如下: 解题思路 将页面给定的字符串根据给定规则进行替换即可,规则如下...

  • The Python Challenge(3)

    问题链接 问题链接如下: 答案链接 答案链接如下: 解题思路 根据页面提示: 阅读源码,有如下内容: 编写代码从中...

网友评论

      本文标题:Python Challenge[5]

      本文链接:https://www.haomeiwen.com/subject/autbittx.html