很多時候,我們想利用函式來簡化程式,降低維護成本。那麼怎麼利用函式達到目的呢?這裡列舉幾種基礎函式用法。
類似str()的工具型
def
a(a)
: b=a+
1return
(b)
這種函式的典型特點是不改變全域性、有返回值,使用時必須結合其他函式,它只是乙個「工具」。
簡化**的過程型
def
benjin1()
:#此函式用於採集資料
while1:
try:
global benjin
benjin=
float
(input
('請輸入初始本金,只保留數字,支援小數'))
break
except
:print
('輸入資料型別有誤,請重新輸入'
)
這種函式的乙個特點就是自變數、因變數無所謂,它只是為了簡化**,便於維護。
例如下面的定投收益計算工具:
def
benjin1()
:while1:
try:
global benjin
benjin=
float
(input
('請輸入初始本金,只保留數字,支援小數'))
break
except
:print
('輸入資料型別有誤,請重新輸入'
)def
dingtou1()
:while1:
try:
global dingtou
dingtou=
float
(input
('請輸入定投金額,只保留數字,支援小數'))
break
except
:print
('輸入資料型別有誤,請重新輸入'
)def
time1()
:while1:
try:
global time
time=
int(
input
('請輸入定投月份,只保留整數'))
break
except
:print
('輸入資料型別有誤,請重新輸入'
)def
shouyilv1()
:while1:
try:
global shouyilv
shouyilv=
1.0+
float
(input
('請輸入每月預估收益率,只保留數字,支援小數,不支援百分數'))
break
except
:print
('輸入資料型別有誤,請重新輸入'
)def
shouyi1()
:global shouyi
shouyi=benjin*shouyilv**time
for i in
range
(time)
: shouyi=shouyi+dingtou*shouyilv**
(time-i)
print
('理論收益是%f'
%shouyi)
while1:
benjin1(
) dingtou1(
) shouyilv1(
) time1(
) shouyi1(
)
採用自定義函式可以讓程式模組化,當出現bug時,做到有的放矢,並且並且也便於更新和增減功能。
當然也可以利用if函式實現函式的開關:
def
shouyi1
(a):
if a==1:
global shouyi
shouyi=benjin*shouyilv**time
for i in
range
(time)
: shouyi=shouyi+dingtou*shouyilv**
(time-i)
print
('理論收益是%f'
%shouyi)
else
:print
('函式未開啟'
)
過程型函式通常不需要設定自變數和因變數,但有時候我們需要乙個既能改變全域性,又能有返回值的函式,這時候我們要注意,自變數也是乙個區域性變數,而且乙個變數不能兼任區域性變數和全域性變數,這就是乙個典型的錯誤:
def
hanshu
(a):
global a
a=a+
1return
(a)
此時必定報錯:name 『a』 is parameter and global
正確的做法是:
def
hanshu
(b):
global a
a=b+
1return
(a)
php 自定義封裝函式
陣列根據某個字段進行排序 陣列根據某個字段進行排序 param array array 需要排序的陣列 param string keys 根據某個key排序 param string sort 倒敘還是順序 return array function arraysort array keys so...
自定義函式及函式的封裝
l 建立自定義函式的三種方式 js引擎預設以命名函式的形式來解讀函式,所以不能直接宣告匿名函式,解決方法 可以用變數 陣列或物件等資料將匿名函式儲存起來,例如button點選事件,以 及 var fn function a,b fn 100,200 對應呼叫 匿名函式的自呼叫 自執行匿名函式 新增括...
自定義徑向基核函式
根據公式 在自定義svm的徑向基核函式時,需要描述其核矩陣,如下所示 function kernel matrix rbf kernel x1,x2,gamma 在訓練時,x1,x2均為訓練集,x1為測試樣本,即在 時,x1為測試集,x2為支援向量訓練集 len1 size x1,1 測試集樣本數 ...