python面试题No1

 最近每天都会抽出一点时间刷python面试题, 想通过博客一点一点的记录下来,加油!  面试题以及答案是在网上看的并加上了自己一些理解, 如有不足还望指点.
  1.常见的HTTP状态码有哪些?

200 请求成功

301 永久重定向

302 临时重定向

400 请求参数错误

403 没有权限

404 找不到请求页面

405 请求方式错误

500 服务器错误(代码出现bug)

502 nginx uwsgi 等服务挂了  

  2.解释说明赋值, 浅拷贝, 深拷贝?

赋值: 赋值只是对象简单的引用,不会创建新的对象,指向同一内存空间.简单的说赋值只是给原对象起了一个新的别名;

浅拷贝:浅拷贝不是对原对象的引用,会创建新的对象,不指向同一内存空间; 浅拷贝只拷贝了对象的第一层,对象里面的元素指向同一内存空间, 改变原对象里面的元素 拷贝的对象也会改变.

深拷贝:深拷贝会创建一个全新的对象,不指向同一内层空间,深拷贝拷贝了对象所有的元素,包括多层嵌套. so 对象里元素发生改变时 原对象元素不会发生改变.

 注: 对于非容器类型没有拷贝一说;如果元组变量只包括原子类型则没有深拷贝.

    import copy
   一层的情况:
# 浅拷贝 li1 = [1, 2, 3] li2 = li1.copy() li1.append(4) print(li1, li2) # [1, 2, 3, 4] [1, 2, 3] # 深拷贝 li1 = [1, 2, 3] li2 = copy.deepcopy(li1) li1.append(4) print(li1, li2) # [1, 2, 3, 4] [1, 2, 3]

多层的情况: import copy # 浅拷贝 li1 = [1, 2, 3, [4, 5], 6] li2 = li1.copy() li1[3].append(7) print(li1, li2) # [1, 2, 3, [4, 5, 7], 6] [1, 2, 3, [4, 5, 7], 6] # 深拷贝 li1 = [1, 2, 3, [4, 5], 6] li2 = copy.deepcopy(li1) li1[3].append(7) print(li1, li2) # [1, 2, 3, [4, 5, 7], 6] [1, 2, 3, [4, 5], 6]
  3.在python中有多少种运算符?并简单说明.

1.算术运算符:  + , - ,  * , / , // ,%,  **

2.赋值运算符:  =, +=, -=, *=, /=, **=, //=

3.逻辑运算符: and, or, not

4.关系运算符:  =,  !=,  >,  <,  >=,  <=,

5.成员运算符:in, not in

6.身份运算符:is, not is

7.位运算符:&, |, ~, ^

8.位运算符

  4.python中 is 和 ==的区别?

首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。

is判断的是两个对象是否为同一对象,通过id来判断 (是否指向同一内存空间)

==判断的是两个对象的值是否相等,通过value来判断

  5. HTTP 和 HTTPS的区别?

1.https协议需要到ca申请证, 一般免费证书较少.

2.http是超文本传输协议, 信息是明文传输, https则是具有安全性的ssl加密传输协议.

3.http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4.http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全.

原文地址:https://www.cnblogs.com/zhuyalong/p/11028369.html