python函数的定义

函数的定义

一、函数体系

  • 什么是函数?
  • 为什么要用函数?
  • 函数的分类:内置函数与自定义函数
  • 如何自定义函数
    • 语法
    • 定义有参数函数,及有参函数的应用场景
    • 定义无参数函数,及无参函数的应用场景
    • 定义空函数,及空函数的应用场景
  • 调用函数
    • 如何调用函数
    • 函数的返回值
    • 函数参数的应用:形参和实参,位置形参,位置实参,关键字实参,默认形参,*args,**kwargs
  • 高阶函数(函数对象)
  • 函数嵌套
  • 作用域与名称空间
  • 装饰器
  • 迭代器与生成器及协程函数
  • 三元运算,列表解析、生成器表达式
  • 函数的递归调用
  • 内置函数
  • 面向过程编程与函数式编程

二、什么是函数

在程序中,函数就是具备某一项功能的工具,事先将工具准备好就是函数的定义。遇到应用场景可以随时拿出来 用就是函数的调用。

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

三、为什么用函数

如果不用函数,写程序的时候就会遇到这三个问题:

  1. 程序冗长
  2. 程序的扩展性差
  3. 程序的可读性差

四、如何用函数

先定义函数,后调用。

  • 定义函数

    def 函数名(param1、param2……):
        """
        函数功能的描述信息
        :param1:描述
        :param2:描述
        :return:返回值
        """
        code 1
        code 2
        code 3
        ...
    
        return 返回值
    
  • 调用函数

函数名(param1,param2)

4.1注册功能的函数

# 注册功能的函数
def register():
    """注册功能"""
    username = input('username:').strip()
    pwd = input('passwoed: ').strip()
    
    with open('59.txt','a',encoding = 'utf-8') as fa:
        fa.write(f"{username}:{pwd}\n")
        fa.flush()
 
#调用
register()

#复用
register()

4.2登陆功能函数

def login():
    inp_name=input('username:').strip()
    inp_pwd=input('usepwd').strip()
    with open('59.txt','rt',encoding='utf-8') as fr:
        for user_info in fr:
            user_info = user_info.strip('\n')
            user_info_list=user_info.split(':')
            if inp_name == user_info_list[0] and pwd == user_info_list[1]:
                print('login successfull')
         else:
            print('failed')
 login()

4.3函数定义阶段

只检测代码,而不执行函数体代码

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

'''
def 函数名():  # 定义阶段(造车轮阶段)
    """函数注释写在这里"""  # 函数相当于工具, 注释相当于工具的说明书
    <代码块>

# 使用  # 调用阶段(开车阶段)
函数名()
'''
def func():
    bar()
    print('*'*10)

4.4函数的调用阶段

#1
def bar():
    print('from bar')

def foo():
    print('from foo')
    bar()

foo()
'''
from foo
from bar
'''


#2
def foo():
    print('from foo')
    bar()
    
def bar():
    print('from bar')

foo()
'''
from foo
from bar
'''

4.5函数的注释如何打印

def func():
    """func能够实现一个功能"""
    #一般使用三个双引号,作为区分
    pass

print(func.__doc__)   # 记住,打印函数开头注释的地方


#输出:
func能够实现一个功能
posted @ 2019-08-08 14:52  豆瓣酱瓣豆  阅读(284)  评论(0编辑  收藏  举报