zoukankan      html  css  js  c++  java
  • 撩课-Python-每天5道面试题-第7天

    一. 函数的返回值的概念,语法以及注意事项?

    场景
    当我们通过某个函数, 处理好数据之后, 想要拿到处理的结果
    语法
        def 函数():
            函数体
            return 数据
    注意事项
    3.1 return 后续代码不会被执行
    3.2 只能返回一次
    3.3 如果想要返回多个数据, 可先把多个数据包装成一个集合, 整体返回
    列表
    元组
    字典
    ...

    二. 在实际开发的过程中, 你是如何给一个函数添加描述信息的?

    场景
    当我们编写三方函数, 为了方便他人使用, 就需要描述清楚我们所写的函数功能以及使用方式等信息
    定义格式
    直接在函数体的最上面, 添加三个双引号对注释
        def 函数():
            ''' 这里写帮助信息 '''
    查看函数使用文档
    help(函数)
    保命经验
    一般函数的描述, 需要说明如下几个信息
    函数的功能
    参数
    含义
    类型
    是否可以省略
    默认值
    返回值
    含义
    类型
    def sum(num1, num2=0):
        """
        负责计算两个数值的和, 并返回给外界
        :param num1: 第一个参数, 参数类型: int / float, 不能被省略, 无默认值
        :param num2: 第二个参数, 参数类型: int / float, 能被省略, 默认值: 0
        :return: 计算结果
        """
        return num1 + num2

    三. 偏函数的概念和意义?

    1. 概念&场景
      当我们写一个参数比较多的函数时, 如果有些参数, 大部分场景下都是某一个固定值, 那么为了简化使用, 就可以创建一个新函数, 指定我们要使用的函数的某个参数, 为某个固定的值; 这个新函数就是"偏函数"
    1. 语法
    方式1
    自己写一个新的
    方式2
    借助functools模块的partial函数
    import functools
    newFunc = functools.partial(函数, 特定参数=偏爱值)
    场景


    1. 问题
      int(x, base=10)
      将一个数字字符转换成整型数据时, 默认是按10进制的数据进行处理x
      如果想按2进制进行处理x, 需要这么调用: int(x, 2)
      如果需要经常使用这个2进制处理x转换, 每次都写参数值2太麻烦
    2. 解决
      方式1:
      def int2(x):
          return int(x, 2)
      
      方式2:
      import functools
      int2 = functools.partial(int, base=2)
      print(int2("110")) # 6
     

    四. 高阶函数的定义以及应用场景举例?

    概念
    当一个函数A的参数, 接收的又是另一个函数时, 则把这个函数A称为是"高阶函数"
    例如
    sorted函数 就是一个高阶函数
    person1 = {"name": "sz", "score": "60"}
    person2 = {"name": "sz2", "score": "90"}
    person3 = {"name": "sz3", "score": "80"}
    persons = [person1, person2, person3]
    def sort_key(dic):
      return dic["score"]
    print(sorted(persons, key=sort_key))
    # 打印结果如下: 
    # [{'name': 'sz', 'score': '60'}, {'name': 'sz3', 'score': '80'}, {'name': 'sz2', 'score': '90'}]

    五. 解释下匿名函数?

    概念
    也称为 "lambda函数"
    顾名思义, 就是指没有名字的函数
    语法
    lambda 参数1, 参数2.. : 表达式
    限制
    只能写一个表达式
    不能直接return
    表达式的结果就是返回值
    所以, 只适用于一些简单的操作处理
    应用场景
    一些临时性的使用
    案例
        person1 = {"name": "sz", "score": "60"}
        person2 = {"name": "sz2", "score": "90"}
        person3 = {"name": "sz3", "score": "80"}
        persons = [person1, person2, person3]
        # 此处key对应的函数, 就没有必要单独定义出来
        # 因为就它自己用, 又很简单
        print(sorted(persons, key=lambda dic: dic["score"]))
  • 相关阅读:
    Tornado Web框架
    使用django实现自定义用户认证
    设置DNS 代理
    Docker
    TCP/IP详解学习笔记(1)-基本概念
    IMS知识学习路径浅谈
    Word文档不能编辑解决方法
    P2P网络“自由”穿越NAT的“秘密”原理
    斗战神 拳猴刷图加点
    斗战神 装备精炼
  • 原文地址:https://www.cnblogs.com/gxq666/p/10081162.html
Copyright © 2011-2022 走看看