函数基础上半部分

一、函数的定义

1.1 函数的定义和调用

def 函数名():      # 定义函数阶段,不执行函数体中的代码,只检测语法错误
    """函数功能的描述"""
    <代码块>

函数名()    # 调用函数阶段,这时会执行函数中的代码

1.2 注册功能函数

#定义注册函数
def register():      
    """注册功能"""     # 函数的注释加在这个第二行
    username=input('请输入用户名:')
    pwd=input('请输入密码:')

    with open('user_info.py','a',encoding='utf8') as fa:    # a模式自动创建用户信息文件
    fa.write(f'{username}:{pwd}|')
register()    # 调用注册功能函数

1.3 登录功能函数

# 定义登录函数
def login():     
    """登录功能"""
    inp_username=input('请输入用户名:')
    inp_pwd=input('请输入密码:')

    with open('user_info.py','r',encoding='utf8') as fr:
        #  循环把fr里元素取出放到列表里 ,循环的注释加在循环体上面
        for user_info in fr:
            user_info_list = user_info.split('|')   # 把fr里的用户信息切割成列表
            inp_user_info=f'{inp_username}:{inp_pwd}'
            if inp_user_info in user_info_list:
                print('登录成功')
                break
            else:
                print('登录失败')
login()      # 调用登录函数

二、定义函数的三种形式

参数:未知数、变量,定义函数时参数是函数体接收外部传值的一种媒介,其实就是一个变量

2.1 无参函数

在定义函数阶段括号内没有参数,称为无参函数。

注意:定义时无参,调用时括号内也不需要传入参数

如果函数体代码逻辑不需要依赖外部传入的值,必须得定义成无参函数

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

func()

2.2 有参函数

在函数定义阶段括号内有参数,称为有参函数。

注意:定义时有参,调用时也必须传入参数

如果函数体代码逻辑需要依赖外部传入的值,必须得定义成有参函数

def sum_self(x, y):
    """求和"""
    res = x+y
    print(res)

sum_self(1,2)  # 调用函数,最后打印出res的值为3

2.3 空函数

当你只知道你需要实现某个功能,但不知道该如何用代码实现时,你可以暂时写个空函数,然后先实现其他的功能。

def func():
    pass

三、函数的参数

3.1 形参和实参

1、形参: 定义阶段才有形参,形式参数,啥也没用,只是占个位置,具有描述意义

2、实参: 调用阶段才有实参,实际的参数,具有具体的值

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

add(1, 2)    # 实参

3.2 位置形参和位置实参

1、位置形参: 一个一个的写形参,就叫位置形参

2、位置实参:一个一个值写过去,就叫位置实参

3、两个位置形参,就必须得有两个位置实参对应,从左到右一一对应


def add(num1, num2):  # 形参   # 3、位置形参: 一个一个的写形参,就叫位置形参
    """有参函数"""
    print(num1)
    print(num2)
    print(int(num1) + int(num2))
add(1, 2)  # 实参  # 4、位置实参: 一个一个写过去,就叫位置实参

3.3 默认形参

在定义阶段,就已经被赋值,不需要传参,可以使用默认值; 传参就使用你传的值, 默认形参必须放到位置形参后面

def func(x, y=10):   # x为位置形参,y=10就是默认形参
    print(x)
    print(y)
func(2)

3.4 关键字实参

按照形参名给定具体的值,可以打破位置形参必须一一对应传值的规定,但仍能为指定的形参赋值,关键字实参必须在位置实参之后。

def shopping(x, name='nick'):   # name='nick'为默认形参
    goods_dict = {1: '特斯拉', 2: '奔驰', 3: 'nick'}
    print(f'恭喜你这个小钢炮{name},得到{goods_dict[x]}一个')


shopping(1, name='yongjiu')    # name='yongjiu'为关键字实参

函数的参数尽量不要超过3个,需要用的时候,一般用位置形参和位置实参

四、函数的返回值

4.1 什么是函数的返回值

def func():
    name='zyl'
    return name    # return 变量名就是返回变量的值 
                   # 只要执行到return,函数就会执行,就会终止函数,直接返回name的值'zyl'
name=func()    # 调用函数,并用函数返回值'zyl'赋值给name
print(name)

4.2 返回值的个数

def add(x,y):
    print(x+y)
res=add(1,2)    # 返回值个数为0个时,也就是函数里没有return时,默认返回None,
print(res)     # res接受到的返回值默认为None

return的返回值可以返回任意数据类型

return的返回值无个数限制,即可以使用逗号隔开返回多个值

def add(x, y):
    # return (x, y, x + y)  # return可以返回任意数据类型 
    return x, y, x + y  # return可以返回任意数据类型,不加括号返回多个值时,默认用元祖的形式返回
a=add(1,2)
print(a)         # (1, 2, 3)
x,y,z = add(1, 2)   # 可以用来解压缩
print(x,y,z)      # 1 2 3

return是一个函数结束的标志,函数内可以有多个return

def max_self(salary_x, salary_y):
    if salary_x > salary_y:
        return salary_x
    else:
        return salary_y

max_salary = max_self(20000, 30000)
print(max_salary*12)     # 360000

五、函数的调用

5.1 什么是函数调用

def func():
    print('zyl handsome')

func()    # 这一步就是调用函数 ,不调用函数,就不会执行函数内的代码

5.2 函数调用的三种方式

def max_self(x, y):
    if x > y:
        return x
    else:
        return y
# 1.
max_self(1, 2)
# 2.
res = max_self(1, 2) * 12
# 3.
max_self(max_self(20000, 30000), 40000)

转载于:https://www.cnblogs.com/zhuangyl23/p/11322351.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值