函数的重点内容

函数的重点内容

一、函数的定义

1.1什么是函数

函数更多的是一种思想,他不是一种技术

1.2函数的定义方式

def 函数名():   #定义阶段(造车轮阶段)
    """函数注释写在这里"""    # 相当于函数的说明书
    <代码块>
函数名()  #函数的调用阶段(开车阶段)
#定义一个注册函数
def register():
    """注册函数"""
    username = input('请输入你的用户名:')
    pwd = input('请输入你的密码:')

    with open('user_info.txt', 'a', encoding='utf8') as fa:
        fa.write(f'{username}:{pwd}|')
register()

定义阶段不执行代码,只检测语法错误

二、函数定义的三种方式

2.1空函数(只是定义了函数,然后啥也没有)

​ 只知道工具名但不知道如何选出这个函数

def func():
    pass

2.2无参函数(无参:未知数,变量)

​ 工具可以单独使用

def add():
    x = input('num1:')
    y = input('num2:')    
    print(int(x)+int(y))
add()

2.3有参函数

这个工具不能单独使用,必须得加个配件才能使用

def add(x,y)
    print(int(x) + int(y))
    x = input('num1:')
    y = input('num2:')
add(x, y)

三、函数的调用

假如我们输入的x,y分别是4和6

def add(x,y)
    return x+y  #函数的返回值
    x = input('num1:')
    y = input('num2:')
res = add(x, y)     #调用add函数,并将add的返回值赋值给res
print(res*12)       #可以对函数的返回值进行其他操作
--------------------------------------------------
120    输出的最后的值为120

四、函数的返回值

def add(x, y):
    # return (x, y, x + y)  # return可以返回任意数据类型
    return x, y, x + y  # return可以返回任意数据类型,不加括号返回多个值时,默认用元祖的形式返回,如果没有return返回函数值就默认返回None
    x,y = add(1, 2)
add()

return其实就是函数的返回值,而且他还可以终值函数,当他输出函数的返回值的时候,他下面的代码就不会运行了。

五、函数的参数

5.1形参

定义阶段才有形参,形式参数,啥也没有,知识占个位置,具有描述意义

def func(x,y)  #形参
    preturn x+y
add(1,2)    # 这里调用又是实参

5.2 实参

调用阶段才有实参,实际的参数,具有具体的值,也具有实实在在的意义

def func(x,y)  
    preturn x+y
add(1,2)  #实参

5.3位置形参

一个一个的写形参

def add(num1,num2):   #位置形参
    '''有参函数'''
    print(int(num1) + int(num2))
add()

5.4 位置实参

一个一个写过去

def add(num1,num2):  
    '''有参函数'''
    print(int(num1) + int(num2))
add(1,2)   #位置实参

5.5默认形参

不需要传参,可以使用默认值; 传参就使用你传的值, 位置形必须放到默认形参前面

如果shopping('jiayi')里面没有传参数'jiayi'那么他就会使用默认值name='nick'
--------------------------------------------------
恭喜wenbin,得到特斯拉一个

如果shopping('wenbin')里面没有传参数'wenbin'那么他就会使用默认值name='nick'

def shopping(name='nick'):  # 形参经常会引用同一个值
    goods_dict = {1: '特斯拉', 2: '奔驰', 3: 'nick'}
    print(f'恭喜{name},得到{goods_dict[1]}一个')
shopping()

恭喜nick,得到特斯拉一个

5.6关键字实参

按照形参名给定具体的值,可以打破位置形参,必须得一一对应传值的规定,位置实参必须在关键字实参之前

def shopping(x, name='nick'):
    goods_dict = {1: '特斯拉', 2: '奔驰', 3: 'nick'}
    print(f'恭喜{name},得到{goods_dict[x]}一个')
shopping(1, name='wenbin')
--------------------------------------------------
恭喜wenbin,得到特斯拉一个

位置实参1必须放在关键字实参name='wenbin',不然就会报错,而且有几个形参就得传几个值

猜你喜欢

转载自www.cnblogs.com/wwbplus/p/11353104.html