很多python程序员在参加面试时,面对hr络绎不绝的问题,往往都会变得紧张,而这有可能就会导致一场面试的成败,今天小编给给各位程序员整理了五个面试时经常会被hr所问到的问题以及如何回答的技巧,赶快记起来!
一、常见的http方法有哪些?
1、get:请求特定的页面信息,返回实体主体;
2、head:类似于get请求,只不过返回的响应中没有具体的内容,用于捕获报头;
3、post:向特定资源提交数据进行处理请求(比如表单提交或者上传文件),。数据被包含在请求体中。
4、put:从客户端向服务端传送数据取代特定的文档的内容;
5、delete:请求删除特定的页面;
6、connnect:http1.1协议中预留给能够将连接方式改为管道方式的服务器;
7、options:允许客户端查看服务器的性能;
8、trace:回显服务器的请求,主要用于测试或者诊断。
二、描述一下scrapy框架的运行机制?
从start_urls里面获取url发送请求,请求由请求引擎给调度器入请求对列,获取完毕后,调度器将请求对列交给下载器去获取请求对应的响应资源,并将响应交给自己编写的解析方法做提取处理,如果提取出需要的数据,则交给管道处理,如果提取出url,则继续执行之前的步骤,直到多列里没有请求,程序结束。
三、 可变类型和不可变类型
1、可变类型有list,dict.不可变类型有string,number,tuple.
2、当进行修改操作时,可变类型传递的是内存中的地址,也就是说,直接修改内存中的值,并没有开辟新的内存。
3、不可变类型被改变时,并没有改变原内存地址中的值,而是开辟一块新的内存,将原地址中的值复制过去,对这块新开辟的内存中的值进行操作。
四、is和==有什么区别?
is:比较的是两个对象的id值是否相等,也就是比较俩对象是否为同一个实例对象。是否指向同一个内存地址
== : 比较的两个对象的内容/值是否相等,默认会调用对象的eq()方法
五、urllib 和 urllib2 的区别?
urllib 和urllib2都是接受url请求的相关模块,但是urllib2可以接受一个request类的实例来设置url请求的headers,urllib仅可以接受url。urllib不可以伪装你的user-agent字符串。
urllib提供urlencode()方法用来get查询字符串的产生,而urllib2没有。这是为何urllib常和urllib2一起使用的原因。
除了小编整理的这些案例之外还有很多问题也会被hr问到,相信以同学们的实力肯定会让hr甘拜下风。