編程界大佬教你:一行Python代碼能作出哪些神奇的事情?

import requests 

(1)一行代碼啓動一個Web服務

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

 

(2)一行代碼實現變量值互換

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

(3)一行代碼解決FizzBuzz問題:

 

若是你們在學習中遇到困難,想找一個python學習交流環境,能夠加入咱們的python圈,裙號947618024,可領取python學習資料,會節約不少時間,減小不少遇到的難題。python

FizzBuzz問題:打印數字1到100, 3的倍數打印「Fizz」, 5的倍數打印「Buzz」, 既是3又是5的倍數的打印「FizzBuzz」nginx

print(' '.join(["fizz"[x % 3 * 4:]+"buzz"[x % 5 * 4:] or str(x) for x in range(1, 101)])) 

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

最後多說一句,想學習Python可聯繫小編,這裏有我本身整理的整套python學習資料和路線,想要這些資料的均可以進q裙947618024領取。swift

本文章素材來源於網絡,若有侵權請聯繫刪除。數組

相關文章
相關標籤/搜索