python面试题汇总
时间:2019-03-13 22:50:16
收藏:0
阅读:175
1、and或or
v= 1 and 3 and 2 print(v) 2 v= 1 and 3 and 0 print(v) 0 v = 1 or 2 or 0 print(v) 1 v = 1 and 2 or 0 print(v) 2
Python中的and从左到右计算表达式,若所有的值均为真,则返回最后一个值,若存在假,返回第一个假值
or也是从左到右计算表达式,返回第一个为真的值
2、GIL锁
全局解释器锁,同一时刻只能有一个线程访问CPU,锁的是线程,线程本身可以在同一时间使用多个CPU,Cpython解释器防止在解释代码的过程中产生数据不安全问题。
3、is和==的区别
Python中包含三个基本元素:ID(身份标识),type(数据类型),value(值)
其中ID用来唯一标识一个对象,type标识对象类型,value标识对象的一个值
is判断的是a对象是否就是b对象,是通过ID来判断
==判断的是a对象的值是否和b对象的值相等,是通过value来判断,,所以is
就是判断两个对象的id是否相同, 而 ==
判断的则是内容是否相同。
4、 Python中的可变对象和不可变对象
不可变对象:对象所指向的内存中的值不能被改变,当改变这个变量的时候,原来指向的内存中的值不变,变量不再指向原来的值,而是开辟一块新的内存,变量指向新的内存。
通俗来讲变量值改变,id值也改变,例如:
a = ‘hello‘ print(id(a)) a = a+‘hi‘ print(id(a)) 1579546360552 1579547940488
数值类型int 、float、 字符串str 、元祖tuple、boole 都是不可变对象
可变对象:对象指向的内存中的值会改变,当更改这个变量的时候,还是指向原来内存中的值,并且在原来的内存值进行原地修改,并没有开辟新的内存。
dic = { ‘name‘:‘alex‘, ‘age‘:18 } print(id(dic)) dic[‘hobby‘]=‘lanqiu ‘ print(id(dic)) 1579542439176 1579542439176
列表list、集合set、字典dict都是可变对象
5、osi七层协议复习总结
6、TCP与UDP的复习总结
原文:https://www.cnblogs.com/weidaijie/p/10526972.html
评论(0)