您的位置:首頁>正文

Python能做的5件有趣的事情,你做過幾個?

現在Python越來越受程式師歡迎了, 程式師用Python可以做哪些有趣的事情呢?

下面w3cschool就給小夥伴們介紹一下Python程式設計的5件趣事:

0.for-else用法

迴圈正常結束則執行else語句。 一般用於迴圈找符合條件的元素, 如果找到則break調出迴圈, 不會觸發else;如果沒有找到(完整運行迴圈)則print not found

1.or的用法

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

我們會經常看到類似這樣的用法(比如函數的一個value參數沒有設置預設值, 這樣使用就允許它不賦值)

value = value or {}

# 相當於

value = value if value else {}

2.and的用法

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

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

舉一個例子

def not_empty(a):

return a and a.strip()

not_empty(' a ')

# 值為 'a'

not_empty(None)

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

# 在處理None的問題上相當於

def not_empty(a):

if a is None:

return None

else:

return a.strip()

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

or 是結果如果不滿意有個善後工作

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

3.單行if-else

a = 1

b = 3 if a == 1 else 2

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

4.反覆運算器傳入函數中不用加括弧

# 一般是這樣

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中每個元素當成一個個個體剝離出來, 這個過程就是解包, 我們來看下面這些例子。

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

如果可反覆運算物件包含的元素和前面待賦值變數數量不一致, 則會報錯。 但是可以通過*來表示多個元素

3.星號的使用

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

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

>>> new

[85, 73]

用*來表示多個數值

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

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示