南京-python开发应届面试题

南京-python开发面试问题

20年毕业,技术比较菜。之前做的少儿编程,还是想趁年轻实现一下自己之前没有实现的梦想吧。记录面试问题。

  • 为什么选择Django框架,Django框架的优点(MTV)
    Django框架:开源的Web应用框架,采用MVC模式。
    开源框架,有完美的文档支持
    解决方案众多,内部功能支持较多
    简洁的URL,完整的路由系统
    自助式的后台管理
    拥有模板系统
    缓存系统
    不依赖于数据库,只需要通过简单的操作就可以更换数据库

  • python中的可变对象和不可变对象
    可变对象:列表,字典,集合
    不可变对象:数字,元组,字符串

  • a=1,b=a,a,b的内存地址相同吗?为什么
    相同
    在这里插入图片描述

  • python中的面向对象
    python将一切都视为对象。模块、函数、数字、字符串等等。所有的python对象都有三个属性:身份、类型、值。

  • 浅拷贝和深拷贝的区别
    浅拷贝:为了解决函数传递后被修改的问题,就需要拷贝一份副本,将副本传递给函数使用,就算是副本被修改也不会影响原始数据。
    可变对象的拷贝,会在内存中开辟出一块新的空间来保存拷贝的数据,当再改变之前的对象时,对拷贝之后的对象没有任何影响。
    复杂对象在拷贝时,并没有解决数据在传递之后,数据改变的问题。 出现这种原因,是copy() 函数在拷贝对象时,只是将指定对象中的所有引用拷贝了一份,如果这些引用当中包含了一个可变对象的话,那么数据还是会被改变。
    浅拷贝只拷贝顶层引用,深拷贝会逐层进行拷贝,直到拷贝的所有引用都是不可变引用为止。
    Python 中有多种方式实现浅拷贝,copy模块的copy 函数 ,对象的 copy 函数 ,工厂方法,切片等。
    大多数情况下,使用浅拷贝
    浅拷贝的优点:
    拷贝速度快
    占用空间少
    拷贝效率高

  • 魔术方法及其具体作用

运算魔术方法作用
__ add __
__ sub __
__ mul __
__ truediv __
__ mod __取余
__ pow __
__ and __&
__ xor __^
__ or __|
比较魔术方法作用
__ lt __<
__ le __>
__ eq __==
__ ne __!=
__ gt __>
__ ge __>=
  • 字典的存储方式,有没有先后顺序
    (key,value),python3有序。
  • 列表推导式
    python构造列表的一种快捷方式,可以使用很少的代码构造出一个列表。
# 列表推导式创建1~10之间的整数
list1=(x for x in range(1,11)
  • 类方法、静态方法、实例方法有什么区别
    类方法:使用装饰器@classmethod。第一个参数必须是当前类对象,参数名一般约定为‘cls’,通过它来传递类的属性和方法。
    调用:实例对象和类对象都可以调用。
    静态方法:使用装饰器@staticmethod。参数随意,但是方法中不能使用类或实例的任何属性和方法。
    调用:实例对象和类对象都可以调用。
    实例方法:第一个参数必须是实例对象,参数名一般为self,通过它来传递实例的属性和方法(也可传递类的属性和方法)
    调用:只能由实例对象调用。
    静态方法是类中的函数,不需要实例。主要用来存放逻辑性的代码,但是和类本身没有交互。
    类方法是将类本身作为对象进行操作的方法。他和静态方法的区别在于:不管这个方式是从实例调用还是从类调用,它都用第一个参数把类传递过来。
    =====================================================================
    总感觉面试的问题很简单,但就是答不出来,真的巨尴尬!!
  • 平衡树:任意节点的子树高度节点都<1。
  • 二叉树:每个节点最多只有两个子节点,并且有左右之分。n个有序元素的集合,该集合或者为空或者为一个称为根的元素及两个不相交的,被分别称为左子树和右子树的二叉树组成,是有序数。
    多线程
    多进程
  • python的多进程和其他语言的多进程主要区别:
    对于任何Python程序,不管有多少的处理器,任何时候都总是只有一个线程在执行(这点上Python是不同于Java的,对于多核的情况,Java可以同时开启多个线程进行处理。
  • 死锁:是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。
  • linux常用的命令
ls #查看文件
cd ~ #切换目录
pwd #查看当前路径
mkdir #创建文件夹
rm #删除文件或文件夹
cp #复制文件
cat #查看文件,创建文件,将多个文件合并为一个
more #一页一页的展示
  • 链表和数组的区别
    链表是链式存储结构,数组是顺序存储
    链表通过指针连接元素与元素,数组将元素按顺序存储
    链表的插入和删除比较简单,查询困难;数组是查询简单,插入和删除困难。
  • SQL
//查询学号前两位为20的学生
select 学号 from score where substr(学号,1,2) = '20'
#substr(被截取的字符串,起始下标,截取长度)
//更改特定学号的分数
update table tablename set 分数 ='100' where 学号='20'
//删除特定学号
delete from tablename where 学号='20'
  • 正则表达式如何匹配

  • 网络传输层协议

  • python全局变量

  • 常用的标准库

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值