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"))
必须输入整数