zoukankan      html  css  js  c++  java
  • 函数

    函数

    一、什么是函数

    ​ 假设现在你是下水道工,如果你事先准备好你的工具箱,等你接到修理下水道的工作的时候,你直接把你的工具箱拿过去直接使用就行了,而不需要临时准备锤子啥的。
    ​ 在程序中,函数就是具备某一功能的工具,事先将工具准备好就是函数的定义,遇到应用场景拿来就用就是函数的调用,所以需要注意的是:

    二、为什么使用函数

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

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

    三、如何使用函数

    先定义函数,后调用。

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

    3.1 注册功能函数

    # 注册功能函数
    def register():
        """注册功能"""
        username = input('username: ').strip()
        pwd = input('password: ').strip()
    
        with open('test.txt', 'a', encoding='utf8') as fa:
            fa.write(f"{username}:{pwd}
    ")
            fa.flush()
    
    
    register()
    # 复用
    register()
    register()
    

    3.2 登录功能函数

    # 登录功能函数
    def login():
        """登录功能"""
        inp_username = input('username: ').strip()
        inp_pwd = input('password: ').strip()
    
        with open('test.txt', 'rt', encoding='utf8') as fr:
            for user_info in fr:
                user_info = user_info.strip('
    ')
                user_info_list = user_info.split(':')
                if inp_username == user_info_list[0] and inp_pwd == user_info_list[1]:
                    print('login successful')
                    break
            else:
                print('failed')
                
    login()
    

    3.3 函数定义阶段

    def func():
        bar()  # 不属于语法错误,不会报错
        print('*'*10)
    
    1. 只检测语法,不执行函数体代码

    3.4 函数调用阶段

    def bar():
        print('from bar')
    
    def foo():
        print('from foo')
        bar()
    
    foo()
    '''
    from foo
    from bar
    '''
    
    • 函数调用的三种形式
      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)
    

    四、总结

    1. 函数定义阶段只检测语法不执行函数代码体,函数定义格式:
    def func(param1, param2,......,param3):
        code
        ...
        
    
    1. 使用函数前需要定义函数之后,才可以调用函数(函数名+括号),实现具体的封装功能,使用函数的好处,解决程序冗余,实现可读,可扩展,减少重复造轮子,函数是一种思想而不是一种技术
    在当下的阶段,必将由程序员来主导,甚至比以往更甚。
  • 相关阅读:
    C++中使用多线程
    hdu 4223 dp 求连续子序列的和的绝对值最小值
    hdu 1372 bfs 计算起点到终点的距离
    hdu 4217 线段树 依次取第几个最小值,求其sum
    心得
    hdu 1175 bfs 按要求进行搜索,是否能到达,抵消两个(相同)棋子
    hdu 4221 greed 注意范围 工作延期,使整个工作时间罚时最少的单个罚时最长的值
    hdu 2844 多重背包 多种硬币,每一种硬币有一点数量,看他能组成多少种钱
    uva LCDDisplay
    hdu 4218 模拟 根据一个圆点和半径画一个圆 注意半径要求
  • 原文地址:https://www.cnblogs.com/randysun/p/11323953.html
Copyright © 2011-2022 走看看