python3第五天(條件,循環,函數)
if語句:
if 條件1:
..
elif 條件2:
..
else:
..
每個條件後面用冒號來表示當滿足條件之後要執行的語句.
while循環:
while 條件:
...
while 條件:
...
else:
...
for循環:
for var in seq:
...
else:
...
叠代器有兩個基本的方法:iter() 和 next()
字符串,列表,元組,都可以用於創建叠代對象
創建叠代對象:iter(列表/字符串/元組)
可以對叠代對象進行for循環,也可以用next來訪問叠代對象中的下一個元素.
函數
函數的定義:
由def定義,後面跟函數名稱,圓括號(),參數定義在圓括號裏,以冒號開心函數體.如下
def 函數名稱(參數列表):
函數內容
[return var] #當沒有return語句時,函數則返回None
函數必須在調用之前先定義
可變類型與不可變類型
string,tuples,numbers是不可修改的對象,list,dict,set是可修改的對象,針對不可修改對象的變量,在函數參數傳遞時,修改的是對象的值,而不是對象本身。
參數:
必需參數,關鍵字參數,默認參數,不定長參數
必需參數:參數必須正確的傳入順序,且數量要一樣。
關鍵字參數:通過參數名來匹配參數值,如:func(age=12,name=‘2222‘)
默認參數:def func(name,age=12),調用時,可值age參數,也可不傳。
不定長參數:def func([arg,] *var_args_tuple),加了星號(*)的變量名,會存放所有未命名的變量參數。
匿名函數:
用lambda來定義匿名函數
lambda擁有自己的命名空間,且不能訪問表達式之外的參數和全局命名空間裏的變量
語法:
lambda arg[,arg[,arg....]]:express
如 lambda arg1,arg2:arg1*arg2. 返回兩個參數的乘積
變量作用域:
作用域有四種:
L(local)局部
E(enclosing)閉包函數外的函數中
G(global)全局
B(built-in)內建
變量查找規則L->E->G->B,範圍是從小到大的查找
只有module,class,def lambda才會引入新的作用域。
global與nonlocal:
當內部作用域要修改外部作用域變量時,要用到global,用global var;來重新聲明變量
修改嵌套作用域的變量時(enclosing作用的範圍),要用nonlocal var;來重新聲明變量
python3第五天(條件,循環,函數)