python用一行代码画个迷宫

今天来看看python到底能有多疯狂。

大家都知道python的 lambda 表达式只能写一行,这也是一直拿来和js比较的时候,被诟病的一点,但是我今天想说的是,你真的会python的 lambda 吗?

print(''.join(__import__('random').choice('\u2571\u2572') for i in range(50*24)))

能猜出来是什么吗?

我们来分析下,首先 __import__ 就是我们在倒入模块的时候一直用的 import 关键字,只不过这里用内置函数了。

.choice 里面的东西是什么?对于shell熟悉的同学肯定不陌生,就是2个斜杠,那为什么不用 \ 表示呢?因为他最终是在shell客户端上表现的。有兴趣的,可以在https://codepoints.net/U+2572 这个上面查看shell的一些符号。

后面一个循环就很简单了,使用生成器表达式,构造一个50*24的迷宫。

最后来看下效果图吧:

好啦,今天的内容就到这了,感兴趣的你,可以试试能不能走出来~

所有的代码都已上传至我的github:https://github.com/MiracleYoung/exercises

如果你对今天的内容还感兴趣的话,何不点个赞再走呢?如果感兴趣到想赞赏我,就不要犹豫啦~

原文发布于微信公众号 - 猿媛牧场(xpchuiit)

原文发表时间:2018-06-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏架构师之路

1对多业务,数据库水平切分架构一次搞定 | 架构师之路

本文将以“帖子中心”为例,介绍“1对多”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践: 如何来实施水平切分 水平切分后常见的问...

32910
来自专栏Albert陈凯

Hadoop离线数据分析平台实战——410事件分析Hadoop离线数据分析平台实战——410事件分析

Hadoop离线数据分析平台实战——410事件分析 项目进度 模块名称 完成情况 用户基本信息分析(MR)� 完成 浏览器信息分析(MR) 完...

3508
来自专栏魏琼东

DotNET企业架构应用实践-系统架构与性能-在业务中实例使用缓存与缓存查询-附上视频

回顾与说明      本文是DotNET企业架构应用实践系列中的一篇文章,同时也是一步一步教你使用AgileEAS.NET基础类库进行应用开发系统中的一篇文章,...

2349
来自专栏IMWeb前端团队

基于flux和observer相结合的思想的数据管理器

Redux和MobX是前端领域最前沿的两个状态管理library,前者遵循Flux思想,后者独树一帜,不过可以认为继承了observer思想。在具体本文的阐述前...

1846
来自专栏华仔的技术笔记

如何编写高质量的测试用例?

3517
来自专栏祝威廉

Spark ListenerBus 和 MetricsSystem 体系分析

监控是一个大系统完成后最重要的一部分。Spark整个系统运行情况是由ListenerBus以及MetricsSystem 来完成的。这篇文章重点分析他们之间的工...

633
来自专栏华仔的技术笔记

我所了解Code Review得到认可并且保持更新

3336
来自专栏GopherCoder

『Go 语言学习专栏』-- 第二期

1105
来自专栏张善友的专栏

事件流处理框架NEsper for .NET

复合事件处理(Complex Event Processing)介绍提到了开源的Esper,NEsper 是一个事件流处理(Event Stream Proce...

1996
来自专栏陈柏信的专栏

前端中的函数式编程

vue、react这些热门的框架都多多少少有点涉及到函数式编程的领域,甚至已经开始有一些以函数式编程作为主范式的框架出现,比如说 cyclejs 。那么,为什么...

1910

扫码关注云+社区