几个小例子告诉你, 一行Python代码能干哪些事
2023-09-27 14:27:58 时间
Special cases arent special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless youre Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, its a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- lets do more of those!
从“The Zen of Python”也能看出,Python倡导Beautiful、Explicit、Simple等原则,当然我们接下来要介绍的一行Python能实现哪些好玩的功能,可能和Explicit原则相违背。
如果你有其他这方面的小例子,也欢迎评论,我会加到文章中,文章也许会长期更新。
(1)一行代码启动一个Web服务
python -m SimpleHTTPServer 8080 # python2 python3 -m http.server 8080 # python3
(2)一行代码实现变量值互换
a, b = 1, 2; a, b = b, a
(3)一行代码解决FizzBuzz问题:
FizzBuzz问题:打印数字1到100, 3的倍数打印“Fizz”, 5的倍数打印“Buzz”, 既是3又是5的倍数的打印“FizzBuzz”
for x in range(1, 101): print("fizz"[x % 3 * 4:]+"buzz"[x % 5 * 4:] or x)
(4)一行代码输出特定字符”Love”拼成的心形
print(\n.join([.join([(Love[(x-y) % len(Love)] 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(30, -30, -1)]))
(5)一行代码输出Mandelbrot图像
Mandelbrot图像:图像中的每个位置都对应于公式N=x+y*i中的一个复数
print(\n.join([.join([*if abs((lambda a: lambda z, c, n: a(a, z, c, n))(lambda s, z, c, n: z if n == 0 else s(s, z*z+c, c, n-1))(0, 0.02*x+0.05j*y, 40)) 2 else for x in range(-80, 20)]) for y in range(-20, 20)]))
(6)一行代码打印九九乘法表
print(\n.join([ .join([%s*%s=%-2s % (y, x, x*y) for y in range(1, x+1)]) for x in range(1, 10)]))
(7)一行代码计算出1-100之间的素数(两个版本)
print( .join([str(item) for item in filter(lambda x: not [x % i for i in range(2, x) if x % i == 0], range(2, 101))])) print( .join([str(item) for item in filter(lambda x: all(map(lambda p: x % p != 0, range(2, x))), range(2, 101))]))
(8)一行代码输出斐波那契数列
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(30)]])
(9)一行代码实现快排算法
qsort = lambda arr: len(arr) 1 and qsort(list(filter(lambda x: x = arr[0], arr[1:]))) + arr[0:1] + qsort(list(filter(lambda x: x arr[0], arr[1:]))) or arr
(10)一行代码解决八皇后问题
[__import__(sys).stdout.write(\n.join(. * i + Q + . * (8-i-1) for i in vec) + "\n========\n") for vec in __import__(itertools).permutations(range(8)) if 8 == len(set(vec[i]+i for i in range(8))) == len(set(vec[i]-i for i in range(8)))]
(11)一行代码实现数组的flatten功能: 将多维数组转化为一维
flatten = lambda x: [y for l in x for y in flatten(l)] if isinstance(x, list) else [x]
(12)一行代码实现list, 有点类似与上个功能的反功能
array = lambda x: [x[i:i+3] for i in range(0, len(x), 3)]
(13)一行代码实现求解2的1000次方的各位数之和
print(sum(map(int, str(2**1000))))
本文作者:佚名
来源:51CTO
相关文章
- python实现二分查找算法例子代码
- python超级详细的if。else的讲解。建议收藏
- python排序算法 ——冒泡排序(附代码)
- 综合能源系统分析的统一能路理论(三):《稳态与动态潮流计算》(Python代码实现)
- 基于风光储能和需求响应的微电网日前经济调度(Python代码实现)【1】
- 微电网两阶段鲁棒优化经济调度方法(Python代码实现)
- python中使用多进程multiprocessing并获取子进程的返回值
- Python:两数之和!
- Python入门之实现简单的购物车功能
- python是如何找到对应的package的?
- 【Python爬虫】经典案例代码测试
- 【问题记录与解决】启动Jupyter,运行代码时报错【Error】 || 通过 Jupyter 建立的Python文件在哪儿 || Jupyter 中 移动 Python 文件 到 指定文件夹
- 一行 Python 代码能实现有趣功能
- Python,OpenCV图像金字塔cv2.pyrUp(), cv2.pyrDown()
- PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的按钮改变缺省文字的方法
- 第8.1节 Python类的构造方法__init__深入剖析:语法释义
- 使用PyQt(Python+Qt)+动态编译36行代码实现的计算器
- Python基础知识学习随笔
- Python文件学习遇到的问题
- Python学习笔记2-flask-sqlalchemy 简单笔记
- python编程( 第一份Windows平台运行的python代码)
- linux sublime python
- Python for 循环中访问index索引的方法及示例代码
- Python 交错合并多个list列表的方法及示例代码
- Python、aes.js和node.js实现AES(Crypto)加密与解密实现代码
- python 视频转代码视频
- 女友半夜加班发自拍,男友发现不对,担心会戴原谅帽,仅仅用了30行python代码就发现惊天秘密
- 技巧篇:常用的python代码汇总
- 20 个非常有用的 Python 单行代码
- 摒弃这18个 Python 坏习惯,让你的代码好用到起飞!
- 10 行 Python 代码能实现哪些有趣功能?
- python - list列表的sort方法,对字典和列表进行排序
- python - 计算百分比保留多位小数
- python shutil模块
- python实现n皇后代码-汉诺塔代码,左程云视频笔记
- 使用coverage模块对python代码进行单元测试