1 行Python代码能干哪些事,这 13个你知道吗?

Python的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。其中很重要的一项就是Python的缩进规则。

从“The Zen of Python”也能看出,Python倡导Beautiful、Explicit、Simple等原则,当然我们接下来要介绍的一行Python能实现哪些好玩的功能,可能和Explicit原则相违背。

首先你要了解一下Python之禅,一行代码输出“The Zen of Python”:

python -c "import this"

"""

The Zen of Python, by Tim Peters

Beautiful is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

Complex is better than complicated.

Flat is better than nested.

Sparse is better than dense.

Readability counts.

Special cases aren t 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 you re Dutch.

Now is better than never.

Although never is often better than *right* now.

If the implementation is hard to explain, it s a bad idea.

If the implementation is easy to explain, it may be a good idea.

Namespaces are one honking great idea -- let s 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( .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( .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( .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( .join( . * i + Q + . * (8-i-1) for i in vec) + "========") 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次方的各位数之和

1.print(sum(map(int, str(2**1000))))

Python的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。其中很重要的一项就是Python的缩进规则。

一个和其他大多数语言(如C)的区别就是,一个模块的界限,完全是由每行的首字符在这一行的位置来决定的(而C语言是用一对花括号{}来明确的定出模块的边界的,与字符的位置毫无关系)。

python编程语言能干什么-这 13个,1 行Python代码能干哪些事?相关推荐

  1. python编程语言的优缺点_组队学习优秀作业 | Python的发展历史及其前景

    ↑↑↑关注后"星标"BioPython每日干货 & 每月组队学习,不错过BioPython学习 开源贡献: BioPython团队 创始人 Guido van Rossum ...

  2. python画仿真图-仿真入门:几行 Python 代码实现复杂社会动力学

    原标题:仿真入门:几行 Python 代码实现复杂社会动力学 编译:伯乐在线专栏作者 - Ree Ray 我们将对同一群体内两种文化特征(cultural traits)的相互竞争进行建模.这是典型的 ...

  3. python 解压js压缩的图片_20行Python代码,无损压缩千百张图片!Python有多强!就不用说了...

    每个设计师.摄影师或有图片处理需求小编,都会面临批量 高清大图的困扰. 因为高清大图放到网站上会严重拖慢加载速度,或是有的地方明确限制了图片大小,因此,为了完成工作,他们总是需要先把图片压缩,再上传. ...

  4. python ray定时_使用 Ray 用 15 行 Python 代码实现一个参数服务器

    使用 Ray 用 15 行 Python 代码实现一个参数服务器 参数服务器是很多机器学习应用的核心部分.其核心作用是存放机器学习模型的参数(如,神经网络的权重)和提供服务将参数传给客户端(客户端通常 ...

  5. python写梦幻西游手游脚本辅助_3 行 python 代码帮你轻松实现” 自动发送测试报告 “到指定邮箱...

    此文章来源于项目官方公众号:"AirtestProject" 版权声明:允许转载,但转载必须保留原链接:请勿用作商业或者非法用途 前言 大多数情况下,跑完用例脚本之后,我们需要把测 ...

  6. python自动生成鸡汤文_用20行Python代码生成鸡汤,打造AI咪蒙指日可待。

    作者:Ramtin Alami "Don't think of the overwhelming majority of the impossible." "不要去想不可 ...

  7. python编程语言继承_python应用:学习笔记(Python继承)

    学习笔记(Python继承)Python是一种解释型脚本语言,可以应用于以下领域: web 和 Internet开发 科学计算和统计 人工智能 教育 桌面界面开发 后端开发 网络爬虫 有几种叫法(父类 ...

  8. python编程语言创始人-程序员都秃顶?Python创始人笑了,养生还得学这门语言

    程序员爱脱发,是不争的事实,经常面对电脑,工作压力大,都会导致脱发的产生.正所谓"聪明绝顶",越厉害的程序员,谢顶的可能性就越大.那么,我们看看世界上顶级的程序员们,看看是否能从中 ...

  9. 怎么用python读取csv文件、并且是读取行-python读取csv文件指定行的2种方法详解...

    csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格 就可以存储为csv文件,文件内容是: No.,Name,Age,Score 1,Apple, ...

  10. python抓包 windows_教你用100行Python代码写一个抓包工具

    现代计算机程序大部分时候离不开网络,作为开发者,在日常开发网络相关的程序或者排查程序错误时经常会用抓包工具来分析网卡收发的数据,比如著名的tcpdump,Wireshark等.今天我们尝试用100行左 ...

最新文章

  1. 最牛X的GCC 内联汇编
  2. Python3爬虫知识点总结
  3. easycode不推荐使用_为什么?mysql不推荐使用uuid或者雪花id作为主键?
  4. workerman mysql git_swoole和workerman哪个更易开发?
  5. python人工智能能干啥_人工智能首选什么语言 Python能做哪些事情
  6. cesium加载shp格式数据
  7. Java宠物管理系统(运用接口简易版)
  8. linux rman备份与恢复,RMAN备份与恢复 —— 完全恢复与不完全恢复
  9. 系统架构设计笔记(91)—— 安全性规章
  10. 我进滑雪场前做的功课
  11. 3G模块拨号上网设置APN,拨号号码,帐号和密码
  12. 紫砂壶的起源 计算机操作题,紫砂壶的起源与历史发展你知道吗?
  13. Mand Mobile - 滴滴出品的适用于金融项目的 Vue 移动端 UI 组件库,免费开源、灵活快速、丰富实用
  14. AWS为什么能成功?
  15. 公司企业邮箱登陆客户端,邮件服务器如何设置?
  16. Java中实现十进制数转换为二进制
  17. 微信小程序父子组件通信详解
  18. 一元购抽奖号码 thinkphp php
  19. PPT难做?花太长时间?收藏这4个网站,省时省力效率提升不止一倍
  20. ubuntu backup-manager 高效备份工具

热门文章

  1. (传送门) Ubuntu随身系统
  2. 深度学习 dns tunnel检测 使用统计特征 全连接网络——精度99.8%
  3. AngularJS directive入门例子
  4. 静态成员变量不占用类的内存空间
  5. IxRmhOECiP
  6. python excle写数据
  7. [AGC018 B] Sports Festival 解题报告
  8. BZOJ2525 [Poi2011]Dynamite 【二分 + 贪心】
  9. 3.1.7 封装的应用
  10. 前端实用工具大全, 有任何棘手的实现, 可以来这里拿