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"))

必须输入整数







原文地址:https://www.cnblogs.com/astroboyliu/p/13367224.html