zoukankan      html  css  js  c++  java
  • 【面试准备】Python基础知识

    目录


    • Python2和Python3的区别
    1. print在py2里是类,在py3里是函数(故必须print后用括号)
    2. py2默认的字符串类型默认是 ASCII,p23中默认的字符串类型是 Unicode
    3. xrange和range,py2中xrange返回一个生成器,range返回一个list;py3中没有xrange只有range,返回的是一个迭代器
    4. py2/的结果是整形,py3中是浮点型
    5. py2中声明元类:_metaclass_ = MetaClass,py3 中声明元类:class newclass(metaclass=MetaClass):pass

    关于xrange和range,自己亲手做了速度测试,同样迭代1e8次,结果如下:
    py2: range24.5275207 xrange12.9872725
    py3: range14.4299495

    • 对象赋值、深拷贝与浅拷贝有何区别?
      可以参考图解Python深拷贝和浅拷贝,要注意的是文中说的对象赋值是可变对象的赋值。

    不可变对象包括数值,元组,字符串。
    浅拷贝:创建一个新对象,但包含对源对象的引用;
    深拷贝:创建一个对象,并递归复制其包含的所有对象。
    若为列表(List)对象的浅拷贝,给浅拷贝到的列表追加元素a不会变,但修改新列表中新元素a也会相应变化。

    • 列表与元组的区别?
      列表中元素可修改,元组(tuple)元素不可修改。

    • is和的区别?
      is是比较地址是否相等,
      是比较值是否相等。

    • 了解python中的三元运算子吗?
      Python中的三元运算子:... if ... else ...
      功能和C++中的... ? ... : ...类似。

    • 什么类型可以作为字典中的key
      不可变类型,包括数字型、字符串型、元组型。

    • 可迭代对象、迭代器(iterator)和生成器(generator)

      生成器(Generator):在python中,一边循环一边计算的机制,称为生成器。
      迭代器:迭代器是一个可以记住遍历的位置的对象。可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。
      可迭代对象:可以直接作用于for循环的对象。


    参考

    1. 关于python的面试题. https://github.com/kenwoodjw/python_interview_question
    2. 图解Python深拷贝和浅拷贝. https://www.cnblogs.com/wilber2013/p/4645353.html#_nav_2
    3. Python 最常见的 170 道面试题解析:2019 最新. https://blog.csdn.net/valada/article/details/90761019
  • 相关阅读:
    MQTT的编译和安装(mosquitto)
    四、固件分析-固件逆向
    三、固件分析-固件提取
    二、硬件分析-电路分析
    一、硬件分析
    gdb调试
    AES加密中遇到的坑
    多线程中快速定位段错误位置
    理想的数据加密流程
    Centos进入单用户修改root密码
  • 原文地址:https://www.cnblogs.com/lvjincheng/p/11384373.html
Copyright © 2011-2022 走看看