小白之Python基础(六)

函数模块:

1、调用函数和定义:

1)调用函数:通过封装实现代码的重复使用,可以利用函数对程序进行模块化设计;

2)调用内置函数:

常用内置函数:( 在IDLE中按F1,可查看内置函数的详细说明

abs() 返回数字X的绝对值;

max() 返回数字X的最大值;

min() 返回数字X的最小值;

int() 返回整型数据

float() 返回浮点数

str() 返回一个对象的string格式

bool() 返回 True 或 False

hex() 返回16进制数,以字符串形式表示

……

3)函数定义:(函数名:指向一个函数对象的引用,可将其赋给一个变量)

def ():

    return

小白之Python基础(六)

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

定义时,参数名称=定义值;

调用时,默认参数可以传,也可以不传;( 不传就用默认值

小白之Python基础(六)

如果有位置参数,默认参数需要在位置参数后面;

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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球