• 面试题合集


    1.可迭代对象,迭代器,生成器有啥区别
    #可迭代对象含有__iter__方法的数据
    #迭代器含有__iter__,__next__方法的数据 迭代器一定是可迭代对象
    #生成器本质是迭代器,是程序员自己写的迭代器

    2.手写装饰器
    # def wrapper(f):
    # def inner(*args,**kwargs):
    # '''函数运行前操作'''
    # ret=f(*args,**kwargs)
    # '''函数运行后操作'''
    # return ret
    # return inner
    # @wrapper
    # def func():
    # print(666666)
    # func()

    3.python 函数式编程是什么?
    #函数式:functional,一种编程范式。函数式编程是一种抽象计算机的编程模式

    4.面向对象有哪些内置方法?
    # __init__
    # __hash__
    #__getitem__
    #__setitem__
    #__delitem__
    # __format__
    # __str__
    # __repr__
    # __eq__
    # __dict__
    # __len__

    5.repr和str的区别
    # __repr__和__str__这两个方法都是用于显示的,__str__是面向用户的,而__repr__面向程序员。
    #打印操作时会先尝试__str__和str内置函数


    6.手写递归函数裴波那契数列 1 1 2 3 5 8 13 21
    # def fbl(n,a=0,b=1):
    # if n==1:
    # return a+b
    # return fbl(n-1,a+b,a)
    # print(fbl(8))

    7.递归的两个准则
    #递归需要有边界条件、递归前进段和递归返回段
    #递归必须是有序的数列
    8.类的属性和对象属性
    # 对象是类的实例,类是相同结构的对象的抽象。同类的各个对象其实拥有相同的属性和方法,只是属性值不同而已


    1.当n=5时,下列函数返回值是多少
    int foo(int (n))
    {if (n<2)return n;
    return foo(n-1)+foo(n-2);}
    答:
    n=5带入
    得出1.foo(4)+foo(3)=5
    2.foo(4) =foo(3)+foo(2)=3
    3.foo(3) = foo(2)+foo(1)=2
    4.foo(2) = foo(1)+foo(0)=1
    5.foo(1) = 1


    2.下列程序输出的是什么
    #define add(a,b) b+a
    int main()
    {printf("%d",5*add(3,4));
    return 0;
    }
    答:
    35 5*(4+3)


    3.已知s="<html><head>test</head></html>"那么
    print(re.match("<.*>",s).group())和
    print(re.match("<.*?>",s).group())的结果是什么?

    <.*>贪婪匹配 匹配尽量长的字符串
    <.*?>非贪婪匹配 匹配尽量短的字符串


    4.python里面的match()和search()的区别是什么?
    match()优先返回找到的第一个结果的第一个值
    search()优先会返回第一个匹配到的结果
    ret = re.search('a', 'eva egon yuan').group()
    print(ret) #结果 : 'a'
    # 函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以
    # 通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None。

    ret = re.match('a', 'abc').group() # 同search,不过尽在字符串开始处进行匹配
    print(ret)
    #结果 : 'a'

    5.TCP/IP协议网络层体系分层?每层协议有哪些
    应用层
    表示层
    会话层
    传输层 TCP UDP
    网络层 ip
    数据链路层 rap
    物理层

    6.pthon2.x中,range和xrange的区别?哪个性能更高?
    range返回一个列表
    xrange是一个生成器
    xrange会比range性能快很多因为不用开辟大量的内存空间

    7.下面代码会输出什么?
    def f(x,l=[]):
    for i in range(x):
    l.append(i*i)
    print(l)

    f(2)
    f(3,[3,2,1])
    f(3)

    8.什么是lambda函数?他有什么好处?
    匿名函数
    1. lambda表达式让代码更加简洁,使用它可以省去函数定义的过程
    2. 对于一些只需要使用一次的函数,用lambda来定义,可以省去函数命名问题
    3. 同样是定义一个简单的函数,有时候lambda更加清晰明了

  • 相关阅读:
    SMTP 服务器要求安全连接或客户端未通过身份验证的各个解决方案(C#)
    远程数据同步的三种方法
    粗俗易懂的SQL存储过程在.NET中的实例运用之二
    SSIS脚本组件的代码
    浅谈C# StackTrace 类的实例说明
    解决了:无法加载文件或程序集'stdole, Version=7.0.3300.0'
    收藏: .NET中类型的转换
    WCF 实例 —— Android 短信助手 (WCF + Android)
    粗俗易懂的SQL存储过程在.NET中的实例运用
    此发送邮件的代码对吗?
  • 原文地址:https://www.cnblogs.com/cangshuchirou/p/8581611.html
Copyright © 2020-2023  润新知