今天學習了python中的函式,函式和方法的區別在於:函式寫在類外,方法寫在類裡。呼叫函式使用類名,呼叫方法需要例項化物件!此篇部落格主要講述自定義函式。
def
funcname
(parameter_list)
:pass
函式在定義過程中可以定義多個變數,return返回也可以返回多個值,除了正常定義的必選引數外,還可以使用預設引數、可變引數和關鍵字引數,使得函式定義出來的介面,不但能處理複雜的引數,還可以簡化呼叫者的**。
def
area
(a, b, c)
:return((
(a + b + c)
*(a + b - c)
*(a + c - b)
*(b + c - a))**
(0.5))
/4defperimeter
(a, b, c)
:return a + b + c
a =float
(input
("請輸入三角形第乙個邊邊長:"))
b =float
(input
("請輸入三角形第二個邊邊長:"))
c =float
(input
("請輸入三角形第三個邊邊長:"))
print
("面積為:"
, area(a, b, c)
)print
("周長為:"
, perimeter(a, b, c)
)
該函式傳入abc三個值,通過兩個函式分別計算三角形的面積(海**式)和周長,返回1個值。
def
jiujiu()
:for i in
range(1
,10):
for n in
range(1
, i +1)
: j = i * n
print
(i,"*"
, n,
"=", j, end=
"\t"
)print(""
)jiujiu(
)
該函式無參,無返回值,直接在函式內部print內容(九九乘法表)
def
jisuan
(a):
i =0 b =
for i in
range(0
, a +1)
:if(i %5==
0or i %6==
0)and i %(5
*6)!=
0:i +=
1return b
a =int
(input
("請輸入最終值:"))
print
(jisuan(a)
)
該函式返回乙個list
一般來說還是有參有返回值的函式比較常用,例如md5加密。
注:函式通過壓棧方式呼叫,執行完立刻彈棧釋放記憶體
遞迴理念展示:
遞迴:自 身 調 用 自 身
**展示:
defji(
max):if
max<=
950and
max>0:
i =int(ji(
max-1)
) b =
max* i
return b
else
:return
1a =
int(
input
("請輸入要求到的值:"))
print
(ji(a)
)
該**使用遞迴的方式求從1到輸入數字的積,因為遞迴時不停的壓棧會對記憶體造成很大負擔,因此在遞迴超過1000次時,系統會自動報錯停止。因此判斷條件中有if max <= 950
語法為:
lambda parameter_list: expression
等同於:
def***
(parameter_list)
:return expression
匿名函式簡化了**,但是降低了可讀性,在團隊專案中對其他成員不友好。
除了自定義函式之外,python本身還有一大堆的全域性函式,還可以通過import其他類庫來呼叫其他開發者寫好的函式或方法。同時因為python本身弱資料型別的特性,python可以將其他函式當做引數傳進另乙個函式內執行。
另:按照pep8**規範,自定義函式與其他**直接需間隔2行!
實習日記 第五天
今天是實習的第五天,在昨天我們的專案實現了對資料庫的增刪改查操作,今天我們需要實現使用者許可權功能,即對管理員提供使用者管理和角色管理,對普通使用者僅提供使用者管理功能。實現許可權管理首先需要建立一張tb role表,存放了不同的角色 角色id以及角色描述,同時為了描述角色表和使用者表之間的關係,需...
Python學習第五天
1 關於print,使用print方法列印多個表示式也是可行的 print age 12 age 12 2 別名,如果需要引用的方法名出現重複時可以使用別名 from math import sqrt as foobar 3 多個賦值操作可以同時進行 x,y,z 1,2,3 print x,y,z ...
第五天學習python
這其實也不是一天學習的,而是週末和周一一起的。週末學習了如何建立自己的module,記憶如何使用dir 函式。周一初步學習第九章。資料結構。python中主要有三種內建資料結構 列表,元組,字典。list是處理一組有序專案的資料結構,在每個專案中用逗號隔開。列表中的專案包括在方括號中,乙個列表建立之...