Python之美:一行python代码实现功能的趣味

1. Python之禅,一行代码输出“The Zen of Python”

python -c "import this"


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

2. 一行代码启动一个Web服务

python -m SimpleHTTPServer 8080  # python2
python3 -m http.server 8080  # python3

然后在浏览器输入ip+端口号即可: e.g., localhost:8080.

3. 一行代码实现变量值互换

a, b = 1, 2; a, b = b, a

4. 一行代码解决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)

5. 一行代码输出特定字符”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)]))

love

6. 一行代码输出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)]))

在这里插入图片描述

7. 一行代码打印九九乘法表

print('\n'.join([' '.join(['%s*%s=%-2s' % (y, x, x*y) for y in range(1, x+1)])for x in range(1, 10)]))

8. 一行代码计算出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))]))

在这里插入图片描述

9. 一行代码输出斐波那契数列

    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)]])

在这里插入图片描述

10. 一行代码实现快排算法

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

11. 一行代码解决八皇后问题

[__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)))]

在这里插入图片描述

12. 一行代码实现数组的flatten功能:将多维数组转化为一维

flatten = lambda x: [y for l in x for y in flatten(l)] if isinstance(x, list)else [x]

13. 一行代码实现list, 有点类似与上个功能的反功能

array = lambda x: [x[i:i+3] for i in range(0, len(x), 3)]

14. 一行代码实现求解2的1000次方的各位数之和

print(sum(map(int, str(2**1000))))
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值