转自 :https://www.wukong.com/question/6503317475508093197/

继“你看过/写过哪些有意思的代码”后,小慕又收到关于Python的战帖,这怎么能怂?快快接招吧!

发功之前友情提示:部分案例适用于Python3,在Windows下面可以用Python命令代替,具体请根据自己的修行选择。

一、江湖纯情版

1、 爱心

先来个高赞爱心的中英文结合版:

print'\n'.join([''.join([(u'ILoveChina爱'[(x-y)%11]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')for x in range(-30,30)])for y in range(15,-15,-1)])

如果换成纯汉字的版本,则可能会出现较明显的变形,所以为保证妹子不理解成“变心”,建议使用中英文结合的方式。你get到了吗?

2、 美丽的螺旋

或许你觉得心型图案太俗套,那么试试下面这个美丽的螺旋?在python编译器中输入下面的代码,接下来让我们来见证奇迹吧!

exec """\nfrom turtle import *\nfor i in range(500): \n forward(i)\n left(91)\n"""

二、娱乐纵情版

1、猜数字

无聊的时候,猜猜数字也是很有乐趣的嘛。1~99范围内的整数,如果猜对了会给你一个“Y”,如果猜高了会给出一个“H”;猜低了,你会得到一个“L”(Y、H、L可以根据你希望它给出的提示进行更换),你有六次机会猜出正确的结果哦!

python3 -c "import random;n=random.randint(1,99);[(lambda a:print('Y' if a==n else 'H' if a>n else 'L'))(int(input())) for i in range(6)]”

2、老虎机

猜数字不过瘾?不如再来试试迷你老虎机,用随机的unicode字符打样出来,完美模拟了老虎机的效果!

python3 -c "import random;p=lambda:random.choice('7');[print('|'.join([p(),p(),p()]),end='\r') for i in range(8**5)]”

3、 一行代码帮你选彩票号码

当然,还有更刺激的彩票摇号,不过与其将命运交给彩票站的投注机器,不如自己写一行代码,喏,彩票选号代码了解一下:

python -c "from random import sample; print 'Lotto numbers: %s' % sample(range(1, 50), 6)"

友情提示:彩票有风险,出手须谨慎,至于这行代码给出的结果是否能够中奖,那就只能看你的运气啦!

三、学府深造版

1、一行代码实现GUI用户界面

python -c "from Tkinter import *;root = Tk();w = Label(root, text='你好!慕课网!');w.pack();root.mainloop()”

一行代码实现GUI用户界面有木有!

2、一行代码启动一个http服务器

一行代码可以启动一个HTTP服务器,这一点真的非常好用,所以尽管有其他答主提到过,还是忍不住要再分享一下!

python3 -m http.server 8888

在本地,输入网址 localhost:8888即可访问,默认会列出你的本地目录:

3、Python的哲学

每次读到Python之禅的时候,总是情不自禁地陷入优美的意境不能自拔,恨不能随时随地都能拿来拜读?下面这行代码能够满足你的愿望:

python -c "import this"

回车!然后,你便会发现你的屏幕上已然出现了心心念念的Python的ZEN(禅意)。神不神奇?惊不惊喜?

4、 简易计算器

print(eval(input()))

这个单行代码只用了默认引入的函数,其意义也是单纯而透明:读入一个python表达式并求值,将其结果输出到屏幕,当个简单计算器绰绰有余。

5、今天距离明年元旦还有多少天?

不会跟妹子搭讪?教你一招搭讪大法:故作神秘地问她知不知道还有多少天就是明年的元旦了,趁妹子一脸懵掉你打开编译器,潇洒地敲出以下这行代码,然后看着结果告诉她:你看,距离明年元旦还有XX天!

python -c """import datetime;today = datetime.date.today();someday = datetime.date(2019, 1, 1);diff = someday - today;print str(diff.days)+' days' “""

妹子接下来可能会有一波感叹:哎呀,还有XX天了? 日子过得真快啊!

然后你转手将代码一改,把元旦的时间改为你和妹子认识的时间,然后跟妹子说:你看,我们都认识这么久了,还没一起吃过饭呢,不如今晚下班请你吃个饭?

接下来,一定要记得按时下班啊!

其实,就单行而言,Python并不会比其它的多范式语言更强,实际上由于lambda表现能力弱,导致Python本身要更弱一些。

但是,存在lambda就存在无限可能。Python中的import语句是可以通过调用__builtin__模块中的__import__来代替的,更有意思的是,__builtin__模块内的所有内容均是自动import的。

四、附加武功秘籍

1、换脸术

这个10进制转换16进制的单行代码就是lambda无限可能的有力论证:

print("#"+''.join(["{:0>2}".format(hex(int(a))[2:])for a in __import__('sys').argv[1:]]))

2、星罗阵

这样的画图,只是简单的用到了调用时传递参数而已。

[print('\n'.join(" "*abs(c)+"* "*(a-abs(c))for c in range(-a+1,a))) for a in[int(__import__('sys').argv[1])]]

3、操控术

如果调用更复杂的功能呢?例如用Flask来个Hello world?

[y[0].run() for y in [(x, x.route('/')(lambda :'Hello, world!')) for x in [__import__('flask').Flask(__name__)]]]

使用列表生成的实现看起来可能不太优雅,但并不会影响效果。

4、凌波微步

或者你还想看看带窗口的心形曲线?不要看那个黑黑的ASCII颜艺的话可以这样(需要numpy和matplotlib)

[plt.show() for _, __, ___, plt in [(plt.plot(x, y1, color='r'), plt.plot(x, y2, color='r'), np, plt) for x, y1, y2, np, plt in [(x, 0.618*np.abs(x) - 0.8* np.sqrt(64-x**2), 0.618*np.abs(x) + 0.8* np.sqrt(64-x**2), np, plt) for x, np, plt in [(np.linspace(-8, 8, 1024), np, plt) for np, plt in [(__import__('numpy'), __import__('pylab'))]]]]]

5、吸星大法

如果你是深度学习炼丹师,那不妨来个一行预测?

[print(decode(model.predict(x))) for model, x, decode in [(ResNet50(weights='imagenet'), preprocess_input(np.expand_dims(image.img_to_array(image.load_img('elephant.jpg', target_size=(224, 224))), axis=0)), decode) for ResNet50, image, preprocess_input, np, decode in [(kav.applications.resnet50.ResNet50, kp.preprocessing.image, kav.applications.resnet50.preprocess_input, np, kav.applications.resnet50.decode_predictions) for kav, kp, np in [(__import__('keras.applications.resnet50'), __import__('keras.preprocessing.image'), __import__('numpy'))]]]]

按照这样的方法,几乎所有的代码最终都能压到同一行里;配合Python各种强大的包,写出个一行人脸识别、一行机器学习、一行网页爬虫等都不会有什么问题。

综上,“一行代码”可供修炼的“功夫”多种多样,虽然有趣,但并没有太多的实际意义,在实际工作中没有必要强行把所有的代码都压缩到一行中实现。当然,如果是为了向妹子炫技的话,那么请尽管展示你的才华!

推荐阅读:

  • 计算机专业同学如何避免自己成为一名低级码农?https://www.wukong.com/question/6546119457276690691/
  • 在做程序员的道路上,你掌握了什么概念或技术使你感觉自我提升突飞猛进?https://www.wukong.com/question/6517473209128845575/
  • 大公司和小公司的程序员差别在哪?https://www.wukong.com/question/6514834007652303108/
  • 程序员面试的时候,大家都中过什么套路?https://www.wukong.com/question/6481413885956981005/
  • 你见过有哪些搞笑的代码?https://www.wukong.com/question/6532626072771494147/
  • 程序员很闷骚么?https://www.wukong.com/question/6492183419819131150/

先看最终效果

  • 获取数据

下面的命令可以从CoinRanking抓取所有虚拟货币的列表:

  • 整理列表

显然数据的内容看得很不清楚,我们可以把数据的部分转换成DataFrame:

  • 列排序

可以看到现在是按照字母表顺序排列,而不是按照数据本身的顺序排列,看得比较费力。
如果我们想让列的顺序保持和原始数据一致,可以:

  • 抓取更多数据

由于API限制,网站一次只能抓取50条数据,如果想抓取前150个,可以分3次抓取:

  • 统计分析

拿到了数据,我们想看看数据之间的关系,比如过去的变化率和市值的关系:

  • 统计分析

虚拟货币存在大量人为控盘的情况,我们首选要把变化太大的去掉(涨跌超过100%的)。
另一方面,市值一般都要取对数才好进行比较。

  • 历史数据

我们还可以看排在前10的虚拟货币最近一段时间的价格走势:

  • 历史数据2

由于数据的尺度相差甚远,我们还可以把数据起始点统一转换成100:


所有import在这里:

一行Python能实现什么丧心病狂的功能?相关推荐

  1. python好玩的代码_一行 Python 能实现什么丧心病狂的功能?

    能够把自身代码打印出来的程序,叫做Quine.下面是python的一行quine: ​有人说有分号不算一行,无分号版: 其实,如果你用程序语言的名字+quine作为关键字去搜索,你能找到各种语言实现的 ...

  2. python能做什么效果_一行 Python 能实现什么丧心病狂的功能?

    发功之前友情提示:部分案例适用于Python3,在Windows下面可以用Python命令代替,具体请根据自己的修行选择. 一.江湖纯情版 1. 爱心 先来个高赞爱心的中英文结合版: print'\n ...

  3. python能在生活中做什么-一行Python能实现什么丧心病狂的功能?

    开启 HTTP 服务器 python -m SimpleHTTPServer 8000 或者是 Python 3 的 python3 -m http.server 8080 开启 FTP 服务器 py ...

  4. 一行Python代码能实现这么多丧心病狂的功能?(代码可复制)

    最近看知乎上有一篇名为<一行 Python 能实现什么丧心病狂的功能?>(https://www.zhihu.com/question/37046157)的帖子,点进去发现一行Python ...

  5. 一行Python代码能实现什么丧心病狂的功能?

    作者 |  天元浪子 来源 | CSDN博客 手头有 109 张头部 CT 的断层扫描图片,我打算用这些图片尝试头部的三维重建.基础工作之一,就是要把这些图片数据读出来,组织成一个三维的数据结构(实际 ...

  6. c++代码表白_一行 Python 代码能实现什么丧心病狂的功能? | CSDN博文精选

    作者 | 许文武 责编 | 郭芮 出品 | CSDN 博客 手头有 109 张头部 CT 的断层扫描图片,我打算用这些图片尝试头部的三维重建.基础工作之一,就是要把这些图片数据读出来,组织成一个三维的 ...

  7. python join函数_一行 Python 代码能实现这么多丧心病狂的功能?

    最近看知乎上有一篇名为<一行 Python 能实现什么丧心病狂的功能?>(https://www.zhihu.com/question/37046157)的帖子,点进去发现一行Python ...

  8. 一行 Python 代码能实现这么多丧心病狂的功能?(代码可复制)

    最近看知乎上有一篇名为<一行 Python 能实现什么丧心病狂的功能?>(https://www.zhihu.com/question/37046157)的帖子,点进去发现一行Python ...

  9. 一行 Python 代码能实现这么多丧心病狂的功能?

    最近看知乎上有一篇名为<一行 Python 能实现什么丧心病狂的功能?>(https://www.zhihu.com/question/37046157)的帖子,点进去发现一行Python ...

最新文章

  1. 词法,语法,句法,语义
  2. 用于判断用户注册时,密码强度的JS代码。
  3. JS中的基本和引用类型传递的比较
  4. 职称计算机考试有哪些题,职称计算机考试判断复习题「有答案」
  5. 小b删列(51Nod-2523)
  6. 华为HCIE7-中间系统到中间系统的路由泄露、防环、认证和优化机制
  7. 杭电1437 天气情况
  8. HTML5期末大作业:5G网络网页设计——3页(代码质量好) 学生DW网页设计作业源码 web课程设计网页规划与设计
  9. 输入一个字符串,判断这个字符串中有多少字母,数字
  10. jUI项目最初的名字为DWZ,这个名字是怎么来的?后来为什么又改为jUI?
  11. 微信小程序怎么样与mysql一起开发_莲米粒是一个基于PHP+MySQL+微信小程序技术栈...
  12. Office基础操作:Word 使用交叉引用的超链接后,如何一步操作返回至引用处
  13. 惯导系列(二):滤波相关的算法
  14. 华为笔面试经历-前端开发-2020年春招
  15. 计算机视觉——张正友棋盘格标定法
  16. Activity(三)—— Activity的启动模式
  17. 微服务全链路灰度新能力
  18. 农村土地确权之系列文档 —— 授权委托书
  19. JAVAEE千锋教育第一天学习总结(2022年7月11日)
  20. 苹果手机怎么定位安卓手机_苹果手机一定比安卓手机强?我反倒觉得安卓吊打苹果!...

热门文章

  1. 从语音角度看湖南泸溪方言的归属
  2. hovm什么意思_小火枪的微博 - 水晶球财经网
  3. 磁盘满了怎么清理之空间占用分析软件SpaceSniffer
  4. JS——nth-child和nth-of-type的区别以及nth-of-type下的坑
  5. 微信公众号运营错误的四个方式
  6. Hello Riak
  7. linux查看riak版本,Riak学习(1):Linux Centos 下安装 Riak 服务
  8. java面试题 sql_SQL 面试题目及答案 | java面试题
  9. OpenGL初学者入门——学习指南【共 9 篇文章】
  10. mysql使索引失效语句_mysql语句中索引可能失效的情况