Python爬虫面试题整理(一)

0.python是什么东西,简单介绍一下

Python是一种解释型语言,类似于JS,c++,Rudy

Python的应用面非常广,电子智能,建模,网络编程,爬虫等等都能用的的上,是“胶水性语言”

Python书写方式非常的自由,没有java的条条框框。或者说他好似一种动态性语言,声明变量时,即便没有说明变量的类型也可以继续书写和使用。

Python非常适合面向对象编程,通过组合和集成来定义类,不过他没有访问说明符。

 

 

1.python 常用数据结构有哪些?请简要介绍一下。

共有四个,分别是列表,元组,字典,集合

列表[],简单的数据,无序,可以通过索引来检查使用,可修改

元组(),将数据当做整体来使用,通过索引来使用,不可修改

字典{},通过key值来查找使用,不可修改

集合([]),数据的集合,通过set([])去重

 

    2.简要描述 Python 中单引号、双引号、三引号的区别。

简单来说区别不大,单引号中可以用双引号,双引号中也可以用单引号,不用转义,他们的字符串都必须书写在同一行,而三引号一般在书写多行字符串的时候使用。

 

    3.如何在一个 function 里面设置一个全局的变量?

def function(a):

return a=123

print(function(a))

 

    4.Python 里面如何拷贝一个对象?(赋值、浅拷贝、深拷贝的区别)

赋值只是简单的对象引用

浅拷贝copy模块内的copy函数,是生成新对象,并不包含原对象内的所有内容,仅仅只是其内部第一层对象的内容。其工作模式大体是:切片操作,工厂函数,copy模块内的copy函数。

深拷贝和浅拷贝对应,拷贝乐园对象内的所有元素,甚至包括多层嵌套元素。

 

    5.如果 custname 字符串的内容为 utf-8 的字符,如何将 custname 的内容转为 gb18030 的字符串?

Custname.encode(‘gb18030’)

 

    6.请写出一段 Python 代码实现删除一个 list 里面的重复元素。

List=[1,2,3,4,3]

b=set(list)

Ptint(b)

 

    7.这两个参数是什么意思:args,*kwargs?

Args是多个无名参数,他是一个参数元祖。Kwargs是指关键字参数,他是参数字典。如果一起使用的话,args必须放在kwargs之前。

 

    8.统计如下 list 单词及其出现次数。

 

a=['apple', 'banana', 'apple', 'tomato', 'orange', 'apple', 'banana', 'watermeton']

dict={}

For key in a:

dict[key]=dict.get[key,0]+1

print(dict)

 

    9.给列表中的字典排序:假设有如下 list 对象

 

alist=[{"name":"a", "age":20}, {"name":"b", "age":30}, {"name":"c", "age":25}]

 

10.将 alist 中的元素按照 age 从大到小排序。

Age=[]

Age.sort(resever=true)

Print(age)

 

    11.写出下列代码的运行结果

 

    a = 1

    def fun(a):

      a = 2

    fun(a)

print(a)

 

答案:1

 

    a = []

    def fun(a):

      a.append(1)

    fun(a)

print(a)

 

答案a=[1]

 

    class Person:

        name = 'Lily'

     

    p1 = Person()

    p2 = Person()

    p1.name = 'Bob'

    print(p1.name)

    print(p2.name)

print(Person.name)

答案Bob

Lily

Lily

 

 

    12.假设有如下两个 list:a = ['a', 'b', 'c', 'd', 'e'],b = [1, 2, 3, 4, 5],将 a 中的元素作为 key,b 中元素作为 value,将 a,b 合并为字典。

a = ['a', 'b', 'c', 'd', 'e']

b = [1, 2, 3, 4, 5]

C=dict(zip(a,b))

Print(c)

 

    13.使用 python 已有的数据结构,简单的实现一个栈结构。

 

面试官提的问题

 

    项目上遇到了哪些难点?如何解决?

 

    数据如何去重,清洗,存入数据库?

 

    有一个升序后又降序的数组,比如 1356742,如何查找到 2 的位置。

 

    如何查找到二叉树两个节点的最低公共祖节点?

 

    mysql 的序列都有哪些?

 

    遇到哪些反爬机制?如何解决?

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值