除了畫顆「心」,一行Python代碼還能幹些啥?
北郵科普
python是真的火!它幾乎可以做各個領域各個平台,包括Web開發,網路運維,科學計算,3D遊戲開發,圖形界面開發,人工智慧等。
除了大家熟悉的知乎、豆瓣,已經有越來越多的公司開始用 Python 來快速搭建網站產品。相應的,也有越來越多的公司開設了Python Web的職位。
這麼火的Python,只用一行,能夠實現哪些好玩的功能呢?
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」
print(" ".join(["fizz"[x % 3 * 4:]+"buzz"[x % 5 * 4:] or str(x) for x inrange(1, 101)]))
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
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
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 inrange(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:]))) orarr
10、一行代碼解決八皇后問題
[__import__("sys").stdout.write("
".join("." * i + "Q" + "." * (8-i-1) for iin vec) + "
========
") for vec in__import__("itertools").permutations(range(8)) if 8 == len(set(vec[i]+i for iin 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))))
2018,選擇北郵在線IT教育,幫你找份好工作!
※多迪技術總監揭秘:哪些人適合學習Python?
※22歲轉行新手學了34天Python還沒入門的原因:學習路線不對!
TAG:Python |