函数
定义
把常用的逻辑功能 独立的代码 进行封装
语法
def 函数功能名(形式参数1,形式参数2,....形式参数n):
函数功能体代码块
return 功能运行结果的返回值
解读
1.def 定义函数的关键字
2.函数功能名 自己定义函数标识符名称【遵守标识符定义规则】
3.(形式参数1,形式参数2,…形式参数n)
在参与红能运算的时候 有些数据值是动态的 不确定的 将其设置为变量给其一个标记名
等待调用函数的时候赋予运算值
这个标记就叫形式参数 简称形参
如果没有未知动态的数据参与功能运算 形式参数就不用定义了 但是()必须有
4. return 也是一个关键字
功能是结束函数 并将结果返回到函数调用的位置
如果一个函数没有返回值 return 是可以省略的 或者写为 return None
定义函数的时候如何分析
-
分析是否有未知项[不确定的数据 动态的数据]参与运算, 如果有的话 有几个? 【决定了形式参数的个数】
-
分析函数是否需要把运行结果返回 决定了是否有return返回值
求圆的面积
"""
半径是未知的 --- 形式参数
是否需要把结果返回 --- 需要
"""
def get_circle_area(radius):
area = 3.14154672 * radius ** 2
return area
如何进行调用
函数是否有返回值
有返回值 变量名 = 函数名(实际参数) # 实际参与运算的数据 称为实际参数 简称实参
没有返回值 函数名(实际参数)
注意事项:
形式参数有几个 实际参数就得传递几个 而且是一一对应的
circle_area = get_circle_area(10)
print(circle_area)
练习
# 1.封装一个函数 获取两个数中的最大值
def data_max(num1,num2):
if num1>num2:
return num1
else:
return num2
res=data_max(11,22)
print(res)
# 2.封装一个函数 判断一个数是不是完美数【真因子之和等于数值本身 [6=1+2=3】
def data_nums(num3):
sun=0
for i in range(1,num3):
if num3%i==0:
sun+=i
return sun==num3
res2=data_nums(7)
print(res2)
# 3.封装一个函数,找到列表中某个数的下标
def data_datas(num,num01):
# for i in range(len(num)):
# if num[i]==num01:
# return i
for i,j in enumerate(num):
if j==num01:
return i
res3=data_datas([23,22,44,44444,4444,34,54,76,34,76],34)
print(res3)
# 4. 封装一个函数 获取一个字符串中所有的小写字母
def data_nums(num1):
num_list=[]
for i in num1:
if i.islower():
num_list.append(i)
return num_list
print(data_nums('fghjRTYUfgh'))
# 5. 封装一个函数 获取一个数的反转数 [1234===4321]
def data_nums2(num2):
num1=0
while num2>0:
m=num2%10
num1= num1*10+m
num2//=10
return num1
print(data_nums2(123456))
# 6. 封装一个函数 获取两个数的最小公倍数
def data_num3(num4,num5):
if num4<num5:
max_data=num5
else:
max_data=num4
for i in range(max_data,num5*num4+1):
if i%num5==0 and i%num4==0:
return i
print(data_num3(8,5))
# 7. 封装一个函数 对列表中的数据去重
def data_nu(nu_list):
data_nun=[]
for i in nu_list:
if i not in data_nun:
data_nun.append(i)
return data_nun
print(data_nu(['ww',12,22,'ww',34,44,54,22]))
# 8.封装一个函数 获取两个数的最大公因数
def data_num6(num6,num7):
if num6<num7:
min_data=num6
else:
min_data=num7
for i in range(min_data,0,-1):
if num6%i==0 and num7%i==0:
return i
break
print(data_num6(8,4))