函数模块:
1、调用函数和定义:
1)调用函数:通过封装实现代码的重复使用,可以利用函数对程序进行模块化设计;
2)调用内置函数:
常用内置函数:( 在IDLE中按F1,可查看内置函数的详细说明)
abs() 返回数字X的绝对值;
max() 返回数字X的最大值;
min() 返回数字X的最小值;
int() 返回整型数据
float() 返回浮点数
str() 返回一个对象的string格式
bool() 返回 True 或 False
hex() 返回16进制数,以字符串形式表示
……
3)函数定义:(函数名:指向一个函数对象的引用,可将其赋给一个变量)
def ():
return
4)返回值:若是零个值,return 可写可不写
返回多个值,使用元组类型
5)参数传递:
形参:形式参数,在定义函数时,函数名后面括号中的参数;
实参:实际参数,在调用函数时,函数名后面括号中的参数;
def fun(arg1,arg2):
print('arg1:',arg1) #显示:arg1: 24
print('arg2:', arg2) #显示:arg2: [25, 38, 49]
n1=24
n2=[25, 38, 49]
fun(n1,n2)
#arg1,arg2就是函数定义的形参;n1,n2是函数调用时的实参;
2、函数参数
1)位置参数:最简单的函数参数类型 如:abs()
定义时,形参可以有多个,用逗号隔开;
调用时,将参数依次传入函数,参数个数需要和定义的个数一样
def s(a,b):
print(a,b)
#调用
s(1,2)
2)默认参数:将不经常变化的参数作为默认参数,如:int()
定义时,参数名称=定义值;
调用时,默认参数可以传,也可以不传;( 不传就用默认值)
如果有位置参数,默认参数需要在位置参数后面;
3)可变参数:参数的长度不固定,可以为0或者多个;( 如:max,min)
定义时,形参要写成 *参数名 的形式,参数以一个元组接收;
调用时: 使用多个参数时,用逗号分开; 对已经存在的列表,需要采用 *参数 的形式;
def f(*args):
print(args)
print(*args)
print(" ")
#调用
f(1)
f(1,2)
f(1,2,3)
l = [1,2,3,4]
f(l[0],l[1],l[2],l[3])
f(*l)
4)关键字参数:参数长度也不固定;
定义时,形参要写成 **参数名 的形式,参数以一个字典接收;
调用时,使用多个 参数名=值 的方式;对已经存在的字典,需要采用 **参数 的形式;
def f(**s):
print(s)
#调用
f()
f(a=1)
f(a=1,b=2,c=3)
#对于已经存在的字典
c = {"zhangsan":80,"lisi":100}
f(zs=c["zhangsan"],ls=c["lisi"])
#或
f(**c)
5)命名关键字参数:当对关键字参数进行限制,只接收特定的key作为关键字时,可以给出默认值;
定义时,用一个单独的 * 作为分隔符,星号后面的参数被视为命名关键字参数;
调用时:使用多个 参数名=值 的方式 ,其中参数名只能是定义时特定的参数;
def f(*,a,b):
print(a,b)
#调用
f(a=1,b=2)
#f(a=1) #错
#f() #错
#f(1,2) #错
#给出默认值:
#定义
def f(*,a=1,b=2):
print(a,b)
f(a=1)#可以
6)参数的定义顺序:位置参数、默认参数、可变参数、命名关键字参数、关键字参数;
定义时 ,如果已经有了可变参数,后面跟着的命名关键字参数就不再需要*了;
def f1(a,b=1,*args,c=2,**kw):
print(a,b,args,c,kw)
#调用
f1(1,c=30,name="zhangsan") #输出 1 1 () 30 {'name': 'zhangsan'}
f1(1,10,"青铜","王者",c=30,name="zhangsan") #输出 1 10 ('青铜', '王者') 30 {'name': 'zhangsan'}
3、递归函数:函数在内部调用自身本身;(与数学归纳法相似)
#阶乘,循环方式
def f(n):
s = 1
for i in range(2,n+1):
s = s*i
return s
#阶乘,递归方式
def f(n):
if n == 1:
return 1
else:
return n*f(n-1)
2022-08-06
Original: https://www.cnblogs.com/xy287/p/16550219.html
Author: 星光1234
Title: 小白之Python基础(六)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/602343/
转载文章受原作者版权保护。转载请注明原作者出处!