一、 python内建数据类型有哪些

1、int  整型 

2、str 字符串

3、dict 字典

4、list 列表

5、tuple 元组

6、boor 布尔型

 

列表  list

字典  dict

元组  tuple

集合  set

表示

[1,'a',3,ture,5]

{"name":"zs","age":18,"city":"深圳"}

(1,'aa',ture)

{1,'aa',ture}

是否有序重复

有序、可重复

无序、键不可重复值可重复

有序、可重复

无序、不可重复

是否可读写

读写

读写

只读

读写

下标访问

list[i]、list[i:]

dict['key']

tuple[0]


查找元素

index、count、in

dict['key']

in

in

添加元素

appen()

extend()

insert()

dict['new_key']=value

不可添加

add /update

修改值

list[0]=2

dict['key']=value

不可修改

不可修改

删除元素

pop()/del/remove/clear

del

不可删除

pop/remove/clear

二、提高python运行效率的方法

1、使用生成器,因为可以节约大量内存

2、循环代码优化,避免过多重复代码的执行

3、核心模块用Cython PyPy等,提高效率

4、多进程、多线程、协程

5、多个if elif条件判断,可以把最有可能先发生的条件放到前面写,这样可以减少程序判断的次数,提高效率

 

三、python2和python3区别?列举5个

1、Python3 使用 print 必须要以小括号包裹打印内容,比如 print('hi')

Python2 既可以使用带小括号的方式,也可以使用一个空格来分隔打印内容,比 如 print 'hi'

2、python2 range(1,10)返回列表,python3中返回迭代器,节约内存

3、python2中使用ascii编码,python中使用utf-8编码

4、python2中unicode表示字符串序列,str表示字节序列

python3中str表示字符串序列,byte表示字节序列

5、python2中为正常显示中文,引入coding声明,python3中不需要

6、python2中是raw_input()函数,python3中是input()函数

 

四、python2和python3的range(100)的区别

答:python2返回列表,python3返回迭代器,节约内存

 

五、Python的GIL

GIL是Python的全局解释器锁,同一进程中假如有多个线程运行,一个线程运行时会占用Python的解释器,该进程的其他线程则无法运行,只有这个线程运行完成或者长时间等待释放解释器,其他线程才可使用。多线程中,线程运行是有序的。

每个进程都会分配一个解释器,但消耗资源比较大。

 

六、一句话解释什么样的语言能够用装饰器?

函数可以作为参数传递的语言,可以使用装饰器

 

七、常见状态码

1、200  OK 正常请求处理返回

2、304  Not Modified 发送的附带条件请求未满足

3、307 Temporary Redirect  临时重定向,POST不会变成GET

4、400 Bad Request 请求报文语法错误或参数错误

5、401.x 未授权(登录失败 、服务器的配置导致登录失败 、由于资源中的 ACL 而未授权 、授权服务被筛选程序拒绝 等)

6、403.x Forbidden 请求资源被拒绝(禁止访问)

7、404 Not Found  服务器找不到您所请求的文件或脚本,检查ual地址

8、414 Request-URI 太长,请求的ual地址太长

9、500 Internal Server Error   服务器的内部错误

10、502  网关出错

11、503 Service Unavailable   服务器超负载或停机维护

 

八、同源策略

1、协议相同   http与https不同源

2、域名相同   www.baidu.com和www.biying.com不同源

3、端口相同   13018与8888不同源

以上任意一个不满足,都不满足同源策略

 

九、简述cookie、session、token、ticket的区别

cookice:保存在本地终端的数据。浏览器第一次请求时,服务器会产生一个cookice传给浏览器,浏览器再以kv形式保存在硬盘中(也可设置不保存到硬盘,关闭浏览器cookice失效),下一次请求同一个网站时,把cookice传给服务器。安全性较差,且只能存储少量的数据,一般不超过4KB。

session:保存在服务器上的数据,浏览器第一次请求时,服务器后产生一个session列表和sessionID,服务器将sessionID传给浏览器,浏览器第二次请求时,将sessionID传给服务器,从而匹配用户信息。比session更安全,由于存在服务器,所以一般会设置多久失效,保存时长5-30分钟,负载均衡时会导致session失效,可进行session复制或存储到一个地方

token:是服务器生成的一个身份令牌,由算法+秘钥组成,用户第一次登录成功,服务器会生成一个token传给浏览器,但是服务器不保存token,浏览器下次请求会携带这个token,服务器会根据token信息校验用户身份,校验通过才可访问

ticket:

cookice存储在本地,安全性太差。session存储在服务器太占用资源,还会存在负载均衡session失效的问题,token不需要存储,节省资源,同时通过令牌校验,加强了安全性


 

十、多线程、多进程

多进程:操作系统的最小单位,每个进程都会分配资源,不同进程之间的数据很难共享,比较耗内存,也浪费多核CPU的优点,进程中断,应用就无法访问,一般情况下,IO操作不密集的时使用

多线程:CPU的最小单位,一个进程可包含多个线程,同一进程中的多个线程共用一个解释器锁,数据也能共享,一个线程等待或中断时,不会影响另一个线程的运行,IO操作频繁时使用

十一、简述any()和all()方法

 

十二、python中什么元素为假?

 

十三、异常类型有哪些?


十四、TCP/IP协议