函数

函数

【一】引言

前面写的项目都是面条版

从头到尾没有中断

报错,更新功能很麻烦

【二】函数的概念

将某一块代码快封装起来后可以在某处直接使用的代码块

先定义再调用

【三】函数语法

【1】标准函数结构

def 函数名():
	代码体

【2】定义函数

def login():
    print("登录")
login()

【3】函数的内部原理

  • 在函数定义阶段

  • def 表示在内存空间中开辟一块空间地址

  • login是空间地址的名字

  • ()函数可能会收到参数

  • 代码体 函数能执行的代码块

【四】函数类型

【1】有参和无参函数

  • 函数是否需要接受参数,位置参数
# 方式一: 在函数头顶上指定参数
username = 'qwer'
password = '11'
def login():
    # 函数内部可以直接使用外部函数头顶上面的参数
    if username == 'qwer' and password == '11':
        print(f"当前用户登录成功")
    else:
        print("当前用户登录失败")
login()
# 方式二:有参函数,在函数名后面的()放变量名即可
def login(username, password):
    # 函数内部可以直接使用外部函数头顶上面的参数
    if username == 'qwer' and password == '11':
        print(f"当前用户登录成功")
    else:
        print("当前用户登录失败")
        
# (1)按照位置传递参数 : 参数位置不能随意更改
login('qwer', '11')
login('11', 'qwer')

当前用户登录成功
当前用户登录失败

# (2)关键字传递参数 并且和函数定义时定义的参数名一样
login(password='11', username='qwer')

当前用户登录成功
  • 区分有参或无参看函数名后面的()有没有变量名
  • 无参函数不需参数传递就能直接调用
  • 有参函数调用的时候需要传递参数
  • 传参可以按照位置传,定义时哪个变量在前就先传哪个
  • 传参可以按照关键字传,变量定义的先后不会影响

【五】有返回值函数和无返回值函数

函数的返回值是元组

# 函数的返回值是元组
def get_user_pwd():
    username = input("请输入用户名 :>>>>> ").strip()
    password = input("请输入密 码 :>>>>> ").strip()
    return username, password


def login(username, password):
    if username == '11' and password == '22':
        print(f"登录成功")
    else:
        print('登录失败')


def register(username, password):
    # 模拟打开了文件并写入内容
    data = f'{username}|{password}'
    print(data)


def main():
    print(f"当前功能如下 : 1 登录 2 注册")
    func_id = input("请输入功能ID ").strip()
    func_id = int(func_id)
    if func_id == 1:
        username, password = get_user_pwd()
        login(username=username, password=password)
    elif func_id == 2:
        username, password = get_user_pwd()
        register(username=username, password=password)

main()
  • 区分有参或无参看函数名后面的()有没有变量名
  • 无参函数不需参数传递就能直接调用
  • 有参函数调用的时候需要传递参数
  • 传参可以按照位置传,定义时哪个变量在前就先传哪个
  • 传参可以按照关键字传,变量定义的先后不会影响
posted @   随机昵称yi  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示