python面试题整理(一)

python基础:
1、列表生成式和生成器表达式有什么区别
  我说的是首先写法不一样,列表生成式用[],生成器表达式用(),其次列表生成是一次性生成一个完整的列表,生成器表达式返回的是一个一个的值,占用内存空间更小

1 #列表推导式
2 alist = [i for i in range(10)]
3 print(alist)
4 
5 # 生成器表达式
6 gen = (i for i in range(10))
7 print(gen)

 打印值:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 at 0x000002488B52BE58>

可以看到列表推导式返回一个列表,生成器表达式返回一个generator生成器对象,对生成器遍历可拿到值,或者使用list内置函数将生成器转为列表

2、实例化对象的过程

对类进行实例化,先执行__new__方法,返回一个对象,然后执行__init__构造方法进行初始化,如果有参数则对参数初始化
3、反射知道吗

django框架的CBV就是基于反射实现的,由dispatch方法进入,在dispatch方法中,根据请求方式不同执行对应的方法,使用getattr(request.method)

4、装饰器呢,装饰器是怎么实现的,用过哪些装饰器

 5、list和tuple有什么区别

  list和tuple都是python中的基本数据类型,底层都是基于数组实现的,list和tuple里面可以存放不同类型的元素

  区别:

    (1)、list使用'[]'表示,元组使用‘()’表示,且只有一个元素的元组必须在元素后加','表示为元组,否则是单个元素对象

    (2)、list是可变数据类型,元组是不可变数据类型,元组在创建之时空间大小就固定了

    (3)、元组查询效率比列表高

6、文件夹和包有什么区别,init.py文件作用,什么时候调用

   如果一个文件夹里面有init.py文件,该文件夹就是一个package,init.py文件初始为空,可以写代码或者注释,在import这个package的时候会调用init.py

 


 Django:

1、要查询年纪等于18或者名字是张三的人,怎么查
  使用Q对象加管道符(|)例如:filter(Q(name = “zhangsan”) | Q(age = 18))

2、django怎么实现前后端交互

3、django怎么通过url找到视图

4、django怎么实现orm

5、如果不使用orm框架,django官方文档给的建议怎么解决sql注入问题

 


 Linux:

1、给文件重命名有哪几种方法
   cp   功能:复制文件或目录 附加:cp -r 复制目录,cp -p 保留文件属性,复制的新文件修改时间跟原文件不一样,因为复制的文件是新创建的,以当前时间为准
   mv  功能:剪切文件(移动文件),改名

2、知道一个文件在某个目录下,但是该目录下还有很多文件文件夹,怎么找到需要的这个文件
  find 加参数

3、常用Linux命令

4、软连接和硬链接有什么区别,对目录使用软连接还是硬链接

  软连接相当于Windows创建快捷方式,如果文件用户数据块存放对额是另一个文件的路径名的指向,则该文件为软链接。软链接有自己的索引节点号(inode)。如果一个索引节点号对应多个文件则为硬链接,即同一个文件使用了多个别名。

区别:

  (1)软连接有自己的索引节点号,硬链接共用一个索引节点号

  (2)软链接可以对不存在的目录及文件创建,硬链接只能对已存在的文件创建

  (3)硬链接不能对目录创建,因为目录有两个隐藏文件夹,. 指向当前目录,.. 指向上一层目录

  (4)删除软链接不影响被指向的文件,删除原文件软链接会变成死链接,删除一个硬链接文件并不影响其他有相同索引节点号的文件

5、在一个文件里面找某个词

  grep -nr 要查找的单词  查找文件名或目录名

6、查看文件有多少行

  wc -l filename 查看文件有多少行

  wc -w filename 查看文件有多少单词

  wc -L filename 查看文件最长一行有多少个字

 

 


网络知识:
1、对TCP/IP协议的理解

2、xss防护怎么做,有哪些方法

3、ARP协议是什么

4、http和https有什么区别,从底层原理上讲

 


后续持续更新。。。。。。

 

你可能感兴趣的:(python面试题整理(一))