現在Python越來越受程式師歡迎了, 程式師用Python可以做哪些有趣的事情呢?
下面w3cschool就給小夥伴們介紹一下Python程式設計的5件趣事:
0.for-else用法迴圈正常結束則執行else語句。 一般用於迴圈找符合條件的元素, 如果找到則break調出迴圈, 不會觸發else;如果沒有找到(完整運行迴圈)則print not found
python中x or y表示如果x為真就是x的值, 否則為y的值
我們會經常看到類似這樣的用法(比如函數的一個value參數沒有設置預設值, 這樣使用就允許它不賦值)
value = value or {}
# 相當於
value = value if value else {}
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是要做一件事之前先檢驗一下, 不能做就不讓它做。
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做過什麼有趣的事情?