|
| 1 | +# _*_ coding: utf-8 _*_ |
| 2 | + |
| 3 | +""" |
| 4 | +python_oneline.py by xianhu |
| 5 | +""" |
| 6 | + |
| 7 | + |
| 8 | +# 首先来个python之禅 |
| 9 | +# python -c "import this" |
| 10 | +""" |
| 11 | +The Zen of Python, by Tim Peters |
| 12 | +
|
| 13 | +Beautiful is better than ugly. |
| 14 | +Explicit is better than implicit. |
| 15 | +Simple is better than complex. |
| 16 | +Complex is better than complicated. |
| 17 | +Flat is better than nested. |
| 18 | +Sparse is better than dense. |
| 19 | +Readability counts. |
| 20 | +Special cases aren't special enough to break the rules. |
| 21 | +Although practicality beats purity. |
| 22 | +Errors should never pass silently. |
| 23 | +Unless explicitly silenced. |
| 24 | +In the face of ambiguity, refuse the temptation to guess. |
| 25 | +There should be one-- and preferably only one --obvious way to do it. |
| 26 | +Although that way may not be obvious at first unless you're Dutch. |
| 27 | +Now is better than never. |
| 28 | +Although never is often better than *right* now. |
| 29 | +If the implementation is hard to explain, it's a bad idea. |
| 30 | +If the implementation is easy to explain, it may be a good idea. |
| 31 | +Namespaces are one honking great idea -- let's do more of those! |
| 32 | +""" |
| 33 | + |
| 34 | + |
| 35 | +# 一行代码启动一个Web服务 |
| 36 | +# python -m SimpleHTTPServer 8080 |
| 37 | +# python3 -m http.server 8080 |
| 38 | + |
| 39 | + |
| 40 | +# 一行代码实现变量值互换 |
| 41 | +a, b = 1, 2; a, b = b, a |
| 42 | + |
| 43 | + |
| 44 | +# 一行代码解决FizzBuzz问题: 打印数字1到100, 3的倍数打印“Fizz”来替换这个数, 5的倍数打印“Buzz”, 既是3又是5的倍数的打印“FizzBuzz” |
| 45 | +print(' '.join(["fizz"[x % 3 * 4:]+"buzz"[x % 5 * 4:] or str(x) for x in range(1, 101)])) |
| 46 | + |
| 47 | + |
| 48 | +# 一行代码输出特定字符"Love"拼成的心形 |
| 49 | +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)])) |
| 50 | + |
| 51 | + |
| 52 | +# 一行代码输出Mandelbrot图像: Mandelbrot图像中的每个位置都对应于公式N=x+y*i中的一个复数 |
| 53 | +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)])) |
| 54 | + |
| 55 | + |
| 56 | +# 一行代码打印九九乘法表 |
| 57 | +print('\n'.join([' '.join(['%s*%s=%-2s' % (y, x, x*y) for y in range(1, x+1)]) for x in range(1, 10)])) |
| 58 | + |
| 59 | + |
| 60 | +# 一行代码计算出1-100之间的素数(两个版本) |
| 61 | +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))])) |
| 62 | +print(' '.join([str(item) for item in filter(lambda x: all(map(lambda p: x % p != 0, range(2, x))), range(2, 101))])) |
| 63 | + |
| 64 | + |
| 65 | +# 一行代码输出斐波那契数列 |
| 66 | +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)]]) |
| 67 | + |
| 68 | + |
| 69 | +# 一行代码实现快排算法 |
| 70 | +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 |
| 71 | + |
| 72 | + |
| 73 | +# 一行代码解决八皇后问题 |
| 74 | +[__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)))] |
| 75 | + |
| 76 | + |
| 77 | +# 一行代码实现数组的flatten功能: 将多维数组转化为一维 |
| 78 | +flatten = lambda x: [y for l in x for y in flatten(l)] if isinstance(x, list) else [x] |
| 79 | + |
| 80 | + |
| 81 | +# 一行代码实现list, 有点类似与上个功能的反功能 |
| 82 | +array = lambda x: [x[i:i+3] for i in range(0, len(x), 3)] |
| 83 | + |
| 84 | + |
| 85 | +# 一行代码实现求解2的1000次方的各位数之和 |
| 86 | +print(sum(map(int, str(2**1000)))) |
| 87 | + |
| 88 | + |
| 89 | +# 最后推荐一篇文章: [Python One-liner Games](http://arunrocks.com/python-one-liner-games/) |
| 90 | +exit() |
0 commit comments