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
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!