1. 程式人生 > 實用技巧 >python程式設計從零基礎到專案實踐第六章學習---函式 一個完整的求因數函式的完善步驟

python程式設計從零基礎到專案實踐第六章學習---函式 一個完整的求因數函式的完善步驟

1、函式的概念

之前程式碼是過程語言,多少個數的和,都是按著邏輯順利一行一行的寫,為了方便,就把程式碼組織成一個獨立的功能單位,供其他程式碼反覆呼叫。

函式的優點:程式碼會簡練 能提高程式碼編寫效率和質量 程式碼功能可以自由共享

函式的基本用法:

def函式名([引數]):

  函式體

  [return返回值]

不帶引數格式的求因數的自定義函式

def函式名():

  函式體

def factor_no_para():
i=1
nums=10
print("%d的因數是:"%(nums))
while i < nums:
if nums %i==0:
print("%d"%(i))
i+=1


print(type(factor_no_para()))

10的因數是:
1
2
5
<class 'NoneType'>


print(type(factor_no_para)) <class 'function'>

帶引數函式的格式

def函式名([引數]):

  函式體

def find_factor(nums):
i=1
str1=""
print("%d的因數是:"%(nums))
while i <=nums:
if nums%i==0:
str1=str1+""+str(i)
i+=1
print(str1)

num2_L=[10,15,18,25]
i=0
num_len=len(num2_L)
while i < num_len:
find_factor(num2_L[i])
i+=1

10的因數是:
12510
15的因數是:
13515
18的因數是:
1236918
25的因數是:
1525

帶返回值的函式

def函式名([引數]):

  函式體

  [return返回值]

不帶返回值的函式都會預設返回None

def find_factor(nums):
i=1
str1=""
print("%d的因數是:"%(nums))
while i <=nums:
if nums%i==0:
str1=str1+""+str(i)
i+=1
return str1

num2_L=[10,15,18,25]
i=0
num_len=len(num2_L)
return_str=""
while i < num_len:
return_str=find_factor(num2_L[i])
print("%d的因數是:%s"%(num2_L[i],return_str))
i+=1

10的因數是:
10的因數是:12510
15的因數是:
15的因數是:13515
18的因數是:
18的因數是:1236918
25的因數是:
25的因數是:1525

為了以後的函式方便查詢,可以加上註釋

def find_factor(nums):
"""find_factor是自定義函式
num是傳遞一個正整數的引數
以字串的形式返回一個正整數的所有因數"""
i=1
str1=""
print("%d的因數是:"%(nums))
while i <=nums:
if nums%i==0:
str1=str1+""+str(i)
i+=1
return str1
help(find_factor)

Help on function find_factor in module __main__:

find_factor(nums)
find_factor是自定義函式
num是傳遞一個正整數的引數
以字串的形式返回一個正整數的所有因數

更加完善健壯性 輸入不符合的型別時會出問題

def find_factor(nums):
"""find_factor是自定義函式
num是傳遞一個正整數的引數
以字串的形式返回一個正整數的所有因數"""
if type(nums)!=int:
print("必須輸入整數")
return
if nums <=0:
print("輸入值範圍出錯")
return
i=1
str1=""
while i <=nums:
if nums%i==0:
str1=str1+""+str(i)
i+=1

return str1

print(find_factor(-9))

輸入值範圍出錯
None

print(find_factor("aa"))

必須輸入整數