zoukankan      html  css  js  c++  java
  • python 面试基础考试题收集

    
    
    默认参数
    #
    如果默认参数的值是一个可变数据类型,那么每次调用函数的时候,如果不传值就公用这个数据类型的资源 def f(k, l = {}): l[k] = 'a' print(l) f(1) #{1:a} f(2) #{1:a, 2:a} f(3) #{1:a, 2:a, 3:a}
    生成器相关
    def demo(): for i in range(4): yield i g=demo() g1=(i for i in g) g2=(i for i in g1) print(list(g1)) # [0,1,2,3] print(list(g2)) # [] # 生成器只能取一次值再取就空了

    生成器表达式相关、生成器

    生成器是在调用时才真的执行代码
    def
    add(n,i): return n+i def test(): for i in range(4): yield i g=test() for n in [1,10]: g=(add(n,i) for i in g) # n = 1 # g = (add(n,i) for i in (0,1,2,3)) # n = 10 # g = add(10,i) for i in g => add(10,i) for i in (add(n,i) for i in (0,1,2,3)) 在list(g)是生成器才真正去执行,此时n = 10 # g = add(10,i) for i in (add(10,i) for i in (0,1,2,3)) # g = add(10,i) for i in (10, 11, 12, 13) # g = (20,21,22,23) print(list(g)) # list(g) 才开始执行此时n =10
    # [20, 21, 22, 23]

     接口类和抽象类的区别

     #从java的角度看是有区别的
        # java没有多继承所以为了接口隔离原则就设计了接口这个概念,支持多继承了
        # java本来就支持单继承 所以就有了抽象类
    # python中既支持单继承也支持多继承,所以对于接口类和抽象类的区别就不那么明显了
    # 甚至在python中没有内置接口类
    

     

    arp 协议是如通过ip地址去找mac地址的

    A机器找B机器,A机器把请求发给交换机,交换机把这件事广播出去,告诉所有机器说要找B机器,
    其他机器接收到这条消息,会把消息的ip地址对比是不是自己的ip地址,如果不是就丢弃掉,
    如果找的机器是B机器,既ip是同一个ip,此机器就把mac地址发给交换机,交换机再把这个mac地址返回给A机器
    # ip tcp udp  arp分别属于osi七层中的那一层
    #ip协议:网络层
    # tcp udp协议属于  传输层
    # arp协议属于 数据链路层

    TCP协议为什么是三次握手四次挥手

    因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。
    其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,
    所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"
    只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

     为什么会出现黏包现象

     为什么会出现黏包现象
         首先只有tcp协议中才会出现黏包现象
         是因为tcp协议是面向流的协议
         在发送的数据传输的过程中还有缓存机制来避免数据丢失
         因此 在连续发送小数据的时候,以及接收大小不符合的时候都容易出现黏包现象
         本质还是因为我们在接收数据的时候不知道发送的数据的长短
    如何解决黏包问题
      在传输大量数据之前告诉接收端要发送的数据大小
      如果想更漂亮的解决问题,可以通过struct模块来定制协议

     什么是全局解释器锁-GIL

    在Cpython解释器中 同一时刻只能有一个线程访问cpu 
    锁的是线程
    是Cpython解释器的特性


  • 相关阅读:
    爬虫入门---Python2和Python3的不同
    Python学习笔记——文件
    Python字典笔记
    Python列表操作——模拟实现栈和队列
    元组的cmp()内建函数
    Unicode基本概念
    神经网络基本的一些概念
    LLDB调试基本使用
    HTML实现跳转到页面指定位置
    通过pod导入第三方框架
  • 原文地址:https://www.cnblogs.com/directiones/p/10863480.html
Copyright © 2011-2022 走看看