简单的Python代码能狗实现哪些丧心病狂的功能?很多人对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
一、江湖纯情版
1、 爱心
先来个高赞爱心的中英文结合版:
print'\n'.join[''.join[u'ILoveChina爱'[x-y)%11]ifx*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 range15,-15,-1)])
如果换成纯汉字的版本,则可能会出现较明显的变形,所以为保证妹子不理解成“变心”,建议使用中英文结合的方式。你get到了吗?
2、 美丽的螺旋
或许你觉得心型图案太俗套,那么试试下面这个美丽的螺旋?在python编译器中输入下面的代码,接下来让我们来见证奇迹吧!
exec """\nfrom turtle import *\nfor i in range500): \n forwardi)\n left91)\n"""
二、娱乐纵情版
1、猜数字
无聊的时候,猜猜数字也是很有乐趣的嘛。1~99范围内的整数,如果猜对了会给你一个“Y”,如果猜高了会给出一个“H”;猜低了,你会得到一个“L”(Y、H、L可以根据你希望它给出的提示进行更换),你有六次机会猜出正确的结果哦!
python3 -c "import random;n=random.randint1,99);[lambda a:print'Y' if a==n else 'H' if a>n else 'L')) intinput))) for i in range6)]”
2、老虎机
猜数字不过瘾?不如再来试试迷你老虎机,用随机的unicode字符打样出来,完美模拟了老虎机的效果!
python3 -c "import random;p=lambda:random.choice'7♪♫♣♠♦♥◄☼☽');[print'|'.join[p),p),p)]),end='\r') for i in range8**5)]”
3、 一行代码帮你选彩票号码
当然,还有更刺激的彩票摇号,不过与其将命运交给彩票站的投注机器,不如自己写一行代码,喏,彩票选号代码了解一下:
python -c "from random import sample; print 'Lotto numbers: %s' % samplerange1, 50), 6)"
友情提示:彩票有风险,出手须谨慎,至于这行代码给出的结果是否能够中奖,那就只能看你的运气啦!
三、学府深造版
1、一行代码实现GUI用户界面
python -c "from Tkinter import *;root = Tk);w = Labelroot, 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、 简易计算器
printevalinput)))
这个单行代码只用了默认引入的函数,其意义也是单纯而透明:读入一个python表达式并求值,将其结果输出到屏幕,当个简单计算器绰绰有余。
5、 今天距离明年元旦还有多少天?
不会跟妹子搭讪?教你一招搭讪大法:故作神秘地问她知不知道还有多少天就是明年的元旦了,趁妹子一脸懵掉你打开编译器,潇洒地敲出以下这行代码,然后看着结果告诉她:你看,距离明年元旦还有XX天!
python -c """import datetime;today = datetime.date.today);someday = datetime.date2019, 1, 1);diff = someday - today;print strdiff.days)+' days' “""
妹子接下来可能会有一波感叹:哎呀,还有XX天了? 日子过得真快啊!
然后你转手将代码一改,把元旦的时间改为你和妹子认识的时间,然后跟妹子说:你看,我们都认识这么久了,还没一起吃过饭呢,不如今晚下班请你吃个饭?
接下来,一定要记得按时下班啊!
其实,就单行而言,Python并不会比其它的多范式语言更强,实际上由于lambda表现能力弱,导致Python本身要更弱一些。
但是,存在lambda就存在无限可能。Python中的import语句是可以通过调用__builtin__模块中的__import__来代替的,更有意思的是,__builtin__模块内的所有内容均是自动import的。
四、附加武功秘籍
1、换脸术
这个10进制转换16进制的单行代码就是lambda无限可能的有力论证:
print"#"+''.join["{:0>2}".formathexinta))[2:])for a in __import__'sys').argv[1:]]))
2、星罗阵
这样的画图,只是简单的用到了调用时传递参数而已。
[print'\n'.join" "*absc)+"* "*a-absc))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.plotx, y1, color='r'), plt.plotx, y2, color='r'), np, plt) for x, y1, y2, np, plt in [x, 0.618*np.absx) - 0.8* np.sqrt64-x**2), 0.618*np.absx) + 0.8* np.sqrt64-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、吸星大法
如果你是深度学习炼丹师,那不妨来个一行预测?
[printdecodemodel.predictx))) for model, x, decode in [ResNet50weights='imagenet'), preprocess_input np.expand_dimsimage.img_to_arrayimage.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各种强大的包,写出个一行人脸识别、一行机器学习、一行网页爬虫等都不会有什么问题。
综上,“一行代码”可供修炼的“功夫”多种多样,虽然有趣,但并没有太多的实际意义,在实际工作中没有必要强行把所有的代码都压缩到一行中实现。当然,如果是为了向妹子炫技的话,那么请尽管展示你的才华!