2019年 python 爬虫面试题 参考答案不对的请指出 持续更新 7/7 更新题号11-18

1.import 导入模块
import xxx,xxx,xxx 可以同时导入多个库
建议每次导入一个。

	from xxx  import  xx  从模块中导入指定方法
	xx()导入的方法就直接用

2.python基本数据类型
数字(int float long complex(复数)) 字符串 列表 字典 元组 集合 py3去除long了,拥抱py3吧
其中complex是高中数学知识,不知道的就直接百度。

3.区分可变数据类型和不可变数据类型
就是变量的内存地址变不变的问题
可变数据类型:字典dict,列表list
不可变数据类型:整型int 浮点数float 字符串str 元组tuple
比较拗口,地址不能变的叫可变数据,地址能变到叫不可变数据,完全相反的。。。。。。。。。。。

4.将"hello world"转换为首字母大写"Hello World"
我开始是这么写的,这里有个map函数,功能是把方法映射到后面的列表中每一位。map(方法,列表)=>2个参数

def q(n):

	"""转换大小写方法,没有用for,
	因为for遇到return就结束了,
	那时候的 b = ["H","W"],自己试一下就知道了 """
	
    return n[:1].upper() + n[1:].lower()

if __name__ == '__main__':
    a = ['hello', 'world']
    b = list(map(q, a)) # q是方法,a是列表
    print(b[0]+" "+b[1])
    
    结果是 Hello World

后来知道有个函数 capitalize() 专门干这个首字母大写的

def q(n):
	""" 实现capitalize()方法"""
    return name.capitalize()


a = 'hello world'
a1 = a.split(" ")
b = list(map(q, a1))
print(b)

  结果是 Hello World

5.如何检测字符串中只含有数字?

import re

res = str(input("输入一个字符串:"))# 确保输入是字符串
value = re.findall(r'\d+', res) 
# 返回一个列表

if len(value) == 0:
 # 假如输入都不是数字,那value必然是空列表
    print("字符串不是全数字")
    
elif len(value[0]) == len(res):
 # 捕获到全部输入是数字,
#那么一定是在第一个value[0]的位置,然后长度和输入相同就OK了
    print("字符串全部是数字")
    
else:
    print("字符串不是全数字")

6.将字符串"ilovechina"进行反转

#切片法,还可以用 reversed()方法 ,递归,或者其他
	value = "ilovechina"  
	res = value[::-1]
	print(res)

 reversed()方法 
	value = "ilovechina"
	res = reversed(value)
	print(res)
	 #这里的返回值是一个地址,原因是reversed返回的是一个迭代器
	 #print(”“.join(res)) 就可以把结果显示出来了

一个函数的输出是print(xxx),把print(xxx)换成 yeild xxx 就变成了生成器函数。结果是一个迭代器,迭代器是一个变量,就是xxx这个变量叫迭代器。效果就是节约内存。

7.Python 中的字符串格式化方式你知道哪些?

百分号%
format

8.有一个字符串开头和末尾都有空格,比如“ adabdw ”,要求写一个函数把这个字符串的前后空格都去掉。

str = ' adabdw '
newstr = str.split(' ')
print(newstr)
print(newstr[1])
结果
['', 'adabdw', '']
adabdw

9.获取字符串”123456“最后的两个字符。

str = '123456'
ns = str.split('4')
print(ns[1])
结果 56

10.一个编码为 GBK 的字符串 S,要将其转成 UTF-8 编码的字符串,应如何操作?

UTF-8=>GBK
import sys
print(sys.getdefaultencoding())
str = "s"                   #默认是utf-8
str_gbk = str.encode("gbk")     #utf-8转成gbk
print(str_gbk)
print(str.encode())
结果
utf-8
b'\xc4\xe3\xb9\xfe'
b'\xe4\xbd\xa0\xe5\x93\x88'
  1. s=“info:xiaoZhang 33 shandong”,用正则切分字符串输出[‘info’, ‘xiaoZhang’, ‘33’, ‘shandong’]
import re
list = []
s = "info:xiaoZhang 33 shandong"
for i in range(1,5):
    res = re.match('(\w+):(\w+)\s(\d+)\s(\w+)', s)
    ress = res.group(i)
    list.append(ress)
print(list)
结果['info', 'xiaoZhang', '33', 'shandong']
这里说一下group,他是单独取正则表达式括号里的值,然后range是1-5,不是0-5,原因是group是1开始的,写0-5会多加一个变量S
我写的是参考答案

12.已知 AList = [1,2,3,1,2],对 AList 列表元素去重,写出具体过程。

不看过程写法
AList = [1,2,3,1,2]
print(set(AList))
结果{1, 2, 3}      变成集合了

AList = [1,2,3,1,2]
BList = []
for i in AList:
    a1 = i
    if a1 not in BList:
        BList.append(a1)
print(BList)
结果[1, 2, 3]

13.如何实现 “1,2,3” 变成 [“1”,“2”,“3”]

a = list("1,2,3")
b = []
for i in range(3):
    b.append(a[i * 2])
print(b)
结果 ['1', '2', '3']

14.给定两个 list,A 和 B,找出相同元素和不同元素

A = [1, 6, 8, 9, "iii", 95]
B = [6, 85, 64]
C = []  不同值放这里
D = []  相同值放这里
for i in A:
    for m in B:
        if i == m:
            D.append(i)
print(D)
  结果  相同值  [6]
  
new_c = A+B
a = list(set(new_c))
for i in a:
    if i not in D:
        C.append(i)
print(C)
结果   不同值  [64, 1, 'iii', 8, 9, 85, 95]

15.[[1,2],[3,4],[5,6]]一行代码展开该列表,得出[1,2,3,4,5,6]

a = [[1,2],[3,4],[5,6]]
for x in a:
    for y in x:
        print(y)
  来大佬教一下,一行我也不会,
  list = [lambda x,y:x for x in a for y in x]
  然后输出结果是
  [. at 0x0000020287E5CE18>, . at 0x0000020287E612F0>, . at 0x0000020287E61378>, . at 0x0000020287E61400>, . at 0x0000020287E61488>, . at 0x0000020287E61510>]
 怎么整啊求留言!!!!!!!!!!!!!

16.合并列表[1,5,7,9]和[2,2,6,8]

a = [1,5,7,9]
b = [2,2,6,8]
c = a+b
print(c)
结果   

[1, 5, 7, 9, 2, 2, 6, 8]

17.如何打乱一个列表的元素?

import random
x = [i for i in range(10)]
print(x)
random.shuffle(x)
print(x)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 2, 4, 7, 5, 8, 6, 1, 0, 3]
这个我也是百度的,知识盲区,绝了

18.字典操作中 del 和 pop 有什么区别
del删除整个字典,变量都给你删了
pop指定删除给键的那个数据
a = {‘a’:‘1’,‘b’:‘2’}
print(a.pop(‘a’))
print(a)
结果
1
{‘b’: ‘2’}

del a
print(a)
结果直接报错说 a不是定义变量 NameError: name ‘a’ is not defined

你可能感兴趣的:(python)