1. for - else
不是 if 和 else 才是原配嗎?for 和 else 也是一對,而且是合法的。
for i in [1,2,3,4]:
print(i)
else:
print(i, '我是else')
結果:4 我是else
如果在 for 和 else 之間(迴圈體內)有第三者 if 插足,也不會影響 for 和 else 的關係。因為 for 的級別比 if 高,else 又是乙個攀附權貴的傢伙,根本不在乎是否有 if,以及是否執行了滿足 if 條件的語句。else 的眼裡只有 for,只要 for 順利執行完畢,else 就會屁顛兒屁顛兒地跑一遍:
for i in [1,2,3,4]:
if i > 2:
print(i)
else:
print(i, '我是else')
結果:4 我是else
那麼,如何拆散 for 和 else 這對冤家呢?只有當 for 迴圈被 break 語句中斷之後,才會跳過 else 語句:
for i in [1,2,3,4]:
if i > 2:
print(i)
break
else:
print(i, '我是else')
結果:2. 一顆星(*)和兩顆星(**)
python 函式支援預設引數和可變引數,一顆星表示不限數量的單值引數,兩顆星表示不限數量的鍵值對引數。
舉例說明:
設計乙個函式,返回多個輸入數值的和。我們固然可以把這些輸入數值做成乙個list傳給函式,但這個方法,遠沒有使用一顆星的可變引數來得優雅:
def multi_sum(*args):
s = 0
for item in args:
s += item
return s
print(multi_sum(3,4,5))
結果:python 函式允許同時全部或部分使用固定引數、預設引數、單值(一顆星)可變引數、鍵值對(兩顆星)可變引數,使用時必須按照前述順序書寫。
def do_something(name, age, gender='男', *args, **kwds):
print('姓名:%s,年齡:%d,性別:%s'%(name, age, gender))
print(args)
print(kwds)
do_something('xufive', 50, '男', 175, 75, math=99, english=90)
結果:姓名:xufive,年齡:50,性別:男
(175, 75)
此外,一顆星和兩顆星還可用於列表、元組、字典的解包,看起來更像c語言:
>>> a = (1,2,3)
>>> print(a)
(1, 2, 3)
>>> print(*a)
1 2 3
>>> b = [1,2,3]
>>> print(b)
[1, 2, 3]
>>> print(*b)
1 2 3
>>> c =
>>> print(c)
>>> print(*c)
name age
>>> print('name:, age:'.format(**c))
name:xufive, age:51
python十大特性 python三大特性
python中也有三大特性,封裝 繼承和多型。封裝封裝,就是只能在類的內部訪問,外部訪問屬性或方法會報異常,python中的封裝很簡單,只要在屬性前或者方法名前加上兩個下劃線就可以,如self.name,def eat self 這樣就完成了屬性和方法的私有化,也就是封裝。在python中封裝並不是...
python的十大web框架
1 django django是乙個開放源 的web應用框架,由python寫成。採用了mtv的框架模式,即模型m,模板t和檢視v。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容為主的 的,即是cms 內容管理系統 軟體。django與其他框架比較,它有個比較獨特的特性,支援orm,將資...
python能做什麼效果 十大Python開發技巧
python開發指南,超級實用足以讓您震撼 時不時地,當我了解python的新功能時,或者我發現其他一些人不知道該功能時,我會記下它。在過去的幾周中,我最近了解或實現了一些有趣的功能 stack overflow 這裡有十個精巧的python開發技巧,我敢肯定您從未見過。快速瀏覽其中一些功能,以及每...