函数基础

函数基础

函数体系介绍

  • 什么是函数

  • 为什么要用函数

  • 函数的分类:内置函数和自定义函数

  • 如何自定义函数

    • 语法
    • 定义有参函数,及有参函数的应用场景
    • 定义无参函数,及无参函数的应用场景
    • 定义空函数,及空函数的应用场景
  • 调用函数

    • 如何调用函数
    • 函数的返回值
    • 函数参数的应用:形参和实参,位置形参,位置实参,关键字实参,默认形参,*args,**kwargs
  • 高阶函数(函数对象)

  • 函数嵌套

  • 作用域与名称空间

  • 装饰器

  • 迭代器与生成器及协程函数

  • 三元运算,列表解析、生成器表达式

  • 函数的递归调用

  • 内置函数

  • 面向过程编程与函数式编程

如果现在有一个需求需要实现用户登录注册的功能,我们该如何实现呢?

# 注册

user_name = input('请输入用户名>>>').strip()
pwd = input('请输入密码>>>').strip()

with open('user_name.txt','a',encoding='utf-8') as fa:
    fa.write(f'{user_name}:{pwd}\n')
    fa.flush()
    
请输入用户名>>>hades
请输入密码>>>123
# 登录

inp_age = input('请输入账户>>>').strip()
inp_pwd = input('请输入密码>>>').strip()

with open('user_name.txt','rt',encoding='utf-8') as fr:
    for user_info in fr:
        user_info_list = user_info.strip('\n').split(':')
        if inp_age == user_info_list[0] and inp_pwd == user_info_list[1]:
            print('login sucessful')
            break
    else:
        print('账户密码错误')
    
请输入账户>>>nick
请输入密码>>>234
账户密码错误

什么是函数

函数就相当于工人手中的工具箱,我们事先准备好工具,在我们需要使用的时候直接从工具箱中找用就好了

在程序中,函数就是一个具备某种功能的工具,我们事先定于好函数,后续需要使用的时候直接进行函数调用

为何用函数

如果不使用函数,我们写程序会出现程序冗长,程序扩展性较差,可读性也差

如何使用函数

先定义函数,再调用函数

  • 定义函数

    语法:def 函数名(paraml1,paramal2……):

          '''
          函数功能描述
          '''
          code1
          code2
      
          ……
          return 返回值
    
  • 调用函数

    语法:函数名(paraml1,paramal2……)

函数定义阶段

  1. 只检测语法,不执行函数里的代码
def func():
    bar()  # 不属于语法错误,不会报错
    print('*'*10)
    if:    #   会报语法错误
  File "<ipython-input-7-8ef9809f34c8>", line 4
    if:    #   会报语法错误
      ^
SyntaxError: invalid character in identifier

函数调用阶段

  1. 在调用函数的时候,会执行代码
def func():
    bar()        # 执行会报错
    print('*'*10)

    
func()
---------------------------------------------------------------------------

NameError                                 Traceback (most recent call last)

<ipython-input-9-933d355a2496> in <module>
      4 
      5 
----> 6 func()


<ipython-input-9-933d355a2496> in func()
      1 def func():
----> 2     bar()        # 执行会报错
      3     print('*'*10)
      4 
      5 


NameError: name 'bar' is not defined
posted @ 2019-05-29 21:37  蔚蓝的爱  阅读(145)  评论(0编辑  收藏  举报