狠狠操夜夜甜|人妻在线中文字幕亚洲无码不卡av|一区二区欧美亚洲|日躁夜躁狠狠躁2001|亚洲,超碰,欧美|18AV成人电影|午夜成人免费在线|婷婷激情网深爱五月|色欲综合成人在线|在线美女搞黄大片

中企動力 > 頭條 > python能干啥

網(wǎng)站性能檢測評分

注:本網(wǎng)站頁面html檢測工具掃描網(wǎng)站中存在的基本問題,僅供參考。

python能干啥

幾個小例子告訴你, 一行Python代碼能做什么 營銷視頻課程

img

月亭亭

關(guān)注

首先你要了解一下Python之禪,一行代碼輸出“The Zen of Python”:

python -c "importthis""""The Zen of Python, by Tim PetersBeautiful 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 ofambiguity, refuse thetemptationto 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 theimplementationis hard toexplain, it's a bad idea.If theimplementationis easy toexplain, it may be a good idea.Namespaces are one honking great idea -- let's do more of those!"""

從“The Zen of Python”也能看出,Python倡導(dǎo)Beautiful、Explicit、Simple等原則,當(dāng)然我們接下來要介紹的一行Python能實現(xiàn)哪些好玩的功能,可能和Explicit原則相違背。

(1)一行代碼啟動一個Web服務(wù)

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

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

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

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

FizzBuzz問題:打印數(shù)字1到100, 3的倍數(shù)打印“Fizz”, 5的倍數(shù)打印“Buzz”,既是3又是5的倍數(shù)的打印“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

(5)一行代碼輸出Mandelbrot圖像

Mandelbrot圖像:圖像中的每個位置都對應(yīng)于公式N=x+y*i中的一個復(fù)數(shù)

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

(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之間的素數(shù)(兩個版本)

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)一行代碼輸出斐波那契數(shù)列

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)一行代碼實現(xiàn)快排算法

qsort =lambda arr: len(arr) > 1 and 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)一行代碼實現(xiàn)數(shù)組的flatten功能:將多維數(shù)組轉(zhuǎn)化為一維

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

(12)一行代碼實現(xiàn)list,有點類似與上個功能的反功能

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

(13)一行代碼實現(xiàn)求解2的1000次方的各位數(shù)之和

Python能做的5件有趣的事情,你做過幾個? 流量視頻課程

img

俞聽白

關(guān)注

現(xiàn)在Python越來越受程序員歡迎了,程序員用Python可以做哪些有趣的事情呢?

下面w3cschool就給小伙伴們介紹一下Python編程的5件趣事:

0.for-else用法

循環(huán)正常結(jié)束則執(zhí)行else語句。一般用于循環(huán)找符合條件的元素,如果找到則break調(diào)出循環(huán),不會觸發(fā)else;如果沒有找到(完整運(yùn)行循環(huán))則print not found

1.or的用法

python中x or y表示如果x為真就是x的值,否則為y的值

我們會經(jīng)??吹筋愃七@樣的用法(比如函數(shù)的一個value參數(shù)沒有設(shè)置默認(rèn)值,這樣使用就允許它不賦值)

value = value or {}

# 相當(dāng)于

value = value if value else {}

2.and的用法

python中x and y表示如果x是假,結(jié)果就是x的值,否則就是y的值

x and y and z多個and連接時,如果全是真結(jié)果就是最后一個的值;如果中間有假的值,結(jié)果就是第一個假的值

舉一個例子

def not_empty(a):

return a and a.strip()

not_empty(' a ')

# 值為 'a'

not_empty(None)

# 不會報錯(如果 return a.strip() 就會報錯)

# 在處理None的問題上相當(dāng)于

def not_empty(a):

if a is None:

return None

else:

return a.strip()

細(xì)細(xì)品味and和or的差別,他們邏輯類似,但是實現(xiàn)的功能是不可以相互替代的

or 是結(jié)果如果不滿意有個善后工作

and是要做一件事之前先檢驗一下,不能做就不讓它做。

3.單行if-else

a = 1

b = 3 if a == 1 else 2

print('it is one' if a == 1 else 'no')

4.迭代器傳入函數(shù)中不用加括號

# 一般是這樣

a = (i for i in range(10))

sum(a)

# 我們可以這樣

sum((i for i in range(10)))

# 但我們還可以這樣

sum(i for i in range(10))

# 類似的有

' '.join(str(i) for i in range(10))

python有趣的解包用法

python中的解包可以這樣理解:一個list是一個整體,想把list中每個元素當(dāng)成一個個個體剝離出來,這個過程就是解包,我們來看下面這些例子。

1.將list中每個元素賦值給一個變量

>>> name, age, date = ['Bob', 20, '2018-1-1']

>>>name

'Bob'

>>>age

20

>>>date

'2018-1-1'

2.可迭代對象都可以這樣做

# 列表

>>> a,b,c = ['a', 'b', 'c']

>>>a

'a'

>>> a,b,c = enumerate(['a', 'b', 'c'])

>>>a

(0, 'a')

# 元組

>>> a,b,c = ('a', 'b', 'c')

>>>a

'a'

# 字典

>>> a,b,c = {'a':1, 'b':2, 'c':3}

>>>a

'a'

>>> a,b,c = {'a':1, 'b':2, 'c':3}.items()

>>>a

('a', 1)

# 字符串

>>> a,b,c = 'abc'

>>>a

'a'

# 生成器

>>> a,b,c = (x + 1 for x in range(3))

>>>a

1

如果可迭代對象包含的元素和前面待賦值變量數(shù)量不一致,則會報錯。但是可以通過*來表示多個元素

3.星號的使用

比如我們要計算平均分,去除最高分和最低分,除了用切片,還可以用解包的方式獲得中間的數(shù)值

>>> first, *new, last = [94, 85, 73, 46]

>>>new

[85, 73]

用*來表示多個數(shù)值

你用python做過什么有趣的事情?

img

在線咨詢

建站在線咨詢

img

微信咨詢

掃一掃添加
動力姐姐微信

img
img

TOP