神奇的Python,一行代码能做哪些炫酷的事情?
可能大家在网上已经看过类似的python单行代码可以实现的功能,比如:
九九乘法表:
print(’ ‘.join([’ ‘.join([‘%s*%s=%-2s’%(y,x,x*y)for y in range(1,x+1)]) for x in range(1,10)]))
或者输出前100项斐波那契数列的值:
print([x[0] for x in [ (a[i][0], a.append((a[i][1], a[i][0]+a[i][1]))) for a in ([[1,1]] ) for i in range(100) ]])
嗯,这些都可以做到,那么下面的这些炫酷的代码,更值得一看!
单线迷宫(cmd下输入):
python -c “while 1:import random;print(random.choice(‘|| __’), end=”)”
emmmm,这个可能比较抽象,那么试试将里面的字符换一下,比如下面这个代码
python -c “while 1:import random;print(random.choice(‘╱╲’), end=”)”
这个迷宫效果还可以吧!
猜数字
好多的教程中都有这个小案例,那么你用了几行呢?试试下面这个
python -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)]”
是的,你没有看错,一行代码可以实现这个功能!
100英尺高尔夫
参照了“愤怒的小鸟”,目标是让高尔夫刚好落到100英尺处,不多不少!
import math as m;a,v=eval(input());[print(‘%03d’%x+’ ‘*m.floor(0.5+x*m.tan(a)-x*x/(v*m.cos(a)))+’o’) for x in range(102)]
需要输入2个参数,也就是高尔夫的角度和速度!
最后
这些代码使用的大多数技术应该看起来很熟悉:
列表解析,lambda表达式和随机整数,通过几个函数的组合,可以写出很酷的代码!
大家也可以来我的公众号python入门,大家一起交流学习!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Python爬虫(二)——豆瓣图书决策树构建
前文参考:https://www.cnblogs.com/LexMoon/p/douban1.html Matplotlib绘制决策树代码: 1 # coding=utf-8 2 import matplotlib.pyplot as plt 3 4 decisionNode = dict(boxstyle='sawtooth', fc='10') 5 leafNode = dict(boxstyle='round4',fc='0.8') 6 arrow_args = dict(arrowstyle='<-') 7 8 9 10 def plotNode(nodeTxt, centerPt, parentPt, nodeType): 11 createPlot.ax1.annotate(nodeTxt, xy=parentPt, xycoords='axes fraction',\ 12 xytext=centerPt,textcoords='axes fraction',\ 13 va='center', ha='center',bbox=nodeType,arrowprops...
- 下一篇
Python程序的执行原理
1. 过程概述 Python先把代码(.py文件)编译成字节码,交给字节码虚拟机,然后虚拟机一条一条执行字节码指令,从而完成程序的执行。 2. 字节码 字节码在Python虚拟机程序里对应的是PyCodeObject对象。 .pyc文件是字节码在磁盘上的表现形式。 3. pyc文件 PyCodeObject对象的创建时机是模块加载的时候,即import。 Python test.py会对test.py进行编译成字节码并解释执行,但是不会生成test.pyc。 如果test.py加载了其他模块,如import util,Python会对util.py进行编译成字节码,生成util.pyc,然后对字节码解释执行。 如果想生成test.pyc,我们可以使用Python内置模块py_compile来编译。 加载模块时,如果同时存在.py和.pyc,Python会尝试使用.pyc,如果.pyc的编译时间早于.py的修改时间,则重新编译.py并更新.pyc。 4. PyCodeObject Python代码的编译结果就是PyCodeObject对象。 typedef struct { PyObje...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6