哦?原来Python 面试题是这样的,Python面试题No19

栏目: Python · 发布时间: 4年前

内容简介:这是代码结构设计的问题,模块依赖和类依赖如果老是觉得碰到循环引用可能的原因有几点:总之微观代码规范可能并不能帮到太多,重要的是更宏观的划分模块的经验技巧,推荐uml,脑图,白板等等图形化的工具先梳理清楚整个系统的总体结构和职责分工

这是代码结构设计的问题,模块依赖和类依赖

如果老是觉得碰到循环引用可能的原因有几点:

  1. 可能是模块的分界线划错地方了
  2. 可能是把应该在一起的东西硬拆开了
  3. 可能是某些职责放错地方了
  4. 可能是应该抽象的东西没抽象

总之微观代码规范可能并不能帮到太多,重要的是更宏观的划分模块的经验技巧,推荐uml,脑图,白板等等图形化的 工具 先梳理清楚整个系统的总体结构和职责分工

采取办法,从 设计模式 上来规避这个问题,比如:

“__all__”

第2题:简单介绍一下 python 函数式编程?

在函数式编程中,函数是基本单位,变量只是一个名称,而不是一个存储单元。

除了匿名函数外,Python还使用fliter(),map(),reduce(),apply()函数来支持函数式编程。 所以你的重点围绕fliter(),map(),reduce().apply()来介绍就可以顺利和面试官达成一致

第3题:python中函数装饰器有什么作用?

装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。

它经常用于有切面需求的场景,比如: 插入日志性能测试事务处理缓存权限校验 等场景。

有了装饰器,就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。

第4题: 按照要求完成编码?

写一个函数,将两个dict(key是数字,value是string)进行合并,函数返回合并后的dict。 规则如下:如果一个key仅仅存在于其中一个dict中,则直接加入合并后的dict; 如果一个key在两个dict中都存在,那么给定一个choice值,choice可以是任何string,如果choice是任一个dict中的value,则写入,否则不写入。

代码如下

def function(lefdict,rightdict,choice):
    samelist=lefdict.keys() & rightdict.keys()  # dict.keys()返回的是一个可迭代对象,取两个dict的keys的交集
    diflist = lefdict.keys() ^ rightdict.keys() # 取两个dict的keys的不同集
    newdict={}
    for key,value in lefdict.items():
        if key in diflist:
            newdict[key]=value
        elif key in samelist:
            if value==choice:
                newdict[key]=value
    for key,value in rightdict.items():
        if key in diflist:
            newdict[key]=value
        elif key in samelist:
            if value==choice:
                newdict[key]=value
    print(samelist,diflist)
    print(newdict)
    return newdict



function({1:'a',2:'b',3:'c'},{4:'f',2:'b',3:'d'},'b')
复制代码

第5题:按照要求完成编码?

把一个字符串的尾字母移到首位,比如‘abcde’->‘eabcd’,称为一次字符串的旋转。如果字符串1的任何一次旋转可以包含字符串2,则返回true,否则返回false,请写一个函数实现。

代码如下

def function(str1, str2):
    str1 = str1[-1] + str1[:-1]
    print(str1)
    if str1.find(str2) != -1:
        return True
    else:
        return False


print(function("abcde", "cde"))
复制代码

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

ActionScript 3.0 Cookbook

ActionScript 3.0 Cookbook

Joey Lott、Darron Schall、Keith Peters / Adobe Dev Library / 2006-10-11 / GBP 28.50

Well before Ajax and Microsoft's Windows Presentation Foundation hit the scene, Macromedia offered the first method for building web pages with the responsiveness and functionality of desktop programs......一起来看看 《ActionScript 3.0 Cookbook》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具