我是靠谱客的博主 丰富小馒头,最近开发中收集的这篇文章主要介绍大数据Python面试题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1 如何在Python中管理内存?
引入计数,分代回收,标记清除

2 什么是python模块?Python中有哪些常用的内置模块?
模块:在python中,一个.py文件就是一个模块(xxx.py)
常用的内置模块 random os re time

3 Python中的局部变量和全局变量是什么?
局部变量,就是在函数内部定义的变量,其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用的
全局变量,在函数外边定义的变量叫做全局变量,全局变量能够在所有的函数中进行访问

4 什么是Python中的类型转换?
类型转换是指将一种数据类型转换为另一种数据类型。
建包用到,告诉这个文件夹是包

5 什么是__init__?
它是一个特殊的函数——构造函数,用于告诉编译器相关函数或变量仅用于初始化

6 什么是lambda函数?
ambda函数也叫匿名函数,lambda和普通的函数相比,就是省去了函数名称。
使用lambda可以省去定义函数的过程,让代码更加精简。

7 Python中的self是什么?
self的意思是“自身”,python中代表类的实例,而非类

8 区分break,continue和pass?

pass是个占位符
def hello():
    pass
hello()
# break跳出当前循环
for i in range(1,10):
    print(i)
    break
    print(12345)

# continue跳出当次循环
for i in range(1,10):
    print(i)
    continue
    print(12345)
9 [:: - 1]表示什么?
倒叙
a[起始值:终止值:步长]

10 如何在Python中随机化列表中的元素?
引入取随机值的包
import random
lists = [1,2,3,4,5,6,7]
# 打乱列表顺序的方法
random.shuffle(lists)
print(lists)

11 什么是python迭代器?
迭代器(能被next函数不断调用返回下一个值)

12 python中的生成器是什么?
生成器(特殊的迭代器,用——iter,——yield函数返回的才是生成器)
(x for x in range(10)) 用yield返回函数

13 什么是可迭代对象?
可迭代对象(所有能被for循环遍历的对象)

14 为什么使用* args,** kwargs?
*args是非关键字参数,用于元组, ** kwargs是关键字参数(字典)
也就是说args表示任何多个无名参数,然而kwags表示一个一个有着对应关系的关键字参数

15 如何将值添加到python列表?

list(列表)
增
lists = [1,2,3,4]
第一种
lists.append(5)
print(lists)
第二种
lists.insert(1,'hello')
print(lists)
第三种
x = lists+[5]
print(x)
第四种
lists.extend([5])
print(lists)
lists.extend([6,7,8])
print(lists)
16 如何删除python列表的值?

list
lists = [1,2,3,4]
第一种方法
pop默认弹出最后一个值
lists.pop()
print(lists)
根据下标删除元素
a = lists.pop(2)
print(lists)
print(a)

第二种
lists.remove(lists[1])
print(lists)

第三种
del lists[1]
print(lists)
17 深拷贝和浅拷贝有什么区别?
首先深拷贝和浅拷贝都是对象的拷贝,都会生成一个看起来相同的对象,他们本质的区别是拷贝出来的对象的地址是否和原对象一样
(1)、深拷贝:拷贝了一份与原对象不同地址的对象,修改对象中的任何值,都不会改变深拷贝的对象的值。
(2)、浅拷贝:对原对象值的拷贝,地址仍然指向原对象的地址,原对象的值发生变化,拷贝对象的值也会随着改变。
import copy
from copy import deepcopy
l = [1,2,[3,4,5]]
l1 = l.copy()#
l2 = deepcopy(l)#这里值拷贝后添加了元素,但是赋值时看的依旧是原本的空间
l[-1].append(123)
l.append(456)#原本的函数中是添加了的
print(l1,l2,l)
18 如何在Python中实现多线程?
通过threading.Thread () 方法创建线程
通过继承 threading.Thread 类的继承重写run方法

19 一行代码实现1--100之和

# 方法一
print(sum(range(1,101)))
# 方法二
print((1+100)*100//2)
# 方法三
n = 1
m = 0
while n<101:
    # print(n)
    m = m + n
    n = n+1
print(m)
20 字典如何删除键和合并两个字典

dict
d = {'hello':'world'}
print(d['hello'])
# 删除
# d.pop('hello')
# print(d)

# 合并
d.update({'nihao':'lalala'})
print(d)
21 列表[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数

def f(x):
    return x ** 2
res = map(f, [1, 2, 3, 4, 5])
print([i for i in res if i > 10])

lists = [y for y in map(lambda x:x**2,[1, 2, 3, 4, 5]) if y>10]
print(lists)
22 python中生成随机整数、随机小数、

import random
# 随机整数
print(random.randrange(1,100))
0-1之间的随机小数
print(random.random())
# 随机小数
print(random.randrange(1,100)+random.random())0--1之间小数方法
23 <div class="nam">中国</div>,用正则匹配出标签里面的内容(“中国”),其中class的类名是不确定的

import re
str = '<div class="nam">中国</div>'
res = re.findall(r'<div class=".*">(.*?)</div>', str)
print(res)
24 python中断言方法举例
assertEqual(first,second,msg)#前两比较,相等则通过,msg为失败时的打印信息
assertTrue:判断bool值为True,则pass,
assertFalse:判断bool值为False,则pass,

25 列出python中可变数据类型和不可变数据类型,并简述原理
可变数据类型:可以直接对原内存空间的值进行修改
列表,字典,集合{}
不可变数据类型:不可以对原内存空间的值进行修改,如果要添加,必须开创新的内存空间存储
整型,浮点型,字符串,元组(),布尔型true,false

26 s = "ajldjlajfdljfddd",去重并从小到大排序输出"adfjl"

再转回列表方便排序,再拼接回字符串
s = "ajldjlajfdljfddd"
# 转集合去重
a = set(s)
# 再转回列表方便排序
b = list(a)
# 用sorted排序
c = sorted(b)
# 再用join方法拼接转回字符串
print(''.join(c))
# ''.join(sorted(list(set(s))))
27 字典根据键从小到大排序

dic={"name":"zs","age":18,"city":"深圳","tel":"1362626627"}
# 先用keys()取键,再进行排序
a = sorted(dic.keys())
d = {}
# 再遍历排好序的键,根据键取到排好序的值
for i in a:
    # i就是键,dic[i]就是根据键取到的值
    d[i] = dic[i]
print(d)
28 字符串a = "not 404 found 张三 99 深圳",每个词中间是空格,用正则过滤掉英文和数字,最终输出"张三 深圳"

import re
str = "not 404 found 张三 99 深圳"
res = " ".join(re.sub(r"[0-9a-zA-Z]", "", str).split())
print(res)
29 filter方法求出列表所有奇数并构造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

a =  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
res = [x for x in a if x%2==1]
print(res)
方法二
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
l = [y for y in filter(lambda x:x%2==1,a)]
30 两个列表[1,5,7,9]和[2,2,6,8]合并为[1,2,2,5,6,7,8,9]

a = [1,5,7,9]
b = [2,2,6,8]
# lists=[1,2,2,5,6,7,8,9]
for i in range(4):
    if a[i]<b[i]:
        lists.append(a[i])
        lists.append(b[i])
    else:
        lists.append(b[i])
        lists.append(a[i])
print(lists)
31 举例说明异常模块中try except else finally的相关意义

try:正常情况下,程序计划执行的语句。
except:程序异常是执行的语句。
else:程序无异常即try段代码正常执行后会执行该语句。
finally:不管有没有异常,都会执行的语句。
try…except…else 没有捕获到异常,执行 else 语句;try…except…finally 不管是否捕获到异常,都执行 finally 语句。
try :
    a = 5.0 / 0.0
    print('输出:我是try')
except :
    print('输出:我是except')
else :
    print('输出:我是else')
finally :
    print('输出:finally')

def test():
    try :
        a = 5.0 / 0.0
        print('输出:我是try')
        return 0
    except :
        print('输出:我是except')
        return 1
    else :
        print('输出:我是else')
        return 2
    finally :
        print('输出:finally')
        return 3
32 举例说明zip()函数用法
zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)

a = [1,2,3]
b = [4,5,6]
c = [4,5,6,7,8]
zipped = zip(a,b)
zip(a,c)
zip(*zipped)
[(1, 2, 3), (4, 5, 6)]
33 写5条常用sql语句

Select <columns> From <table> Where Group by Having Order by
insert  into  table1 (id,name,age,sex) values ('23900001','Allen',19,'Man');
update employees a set a.salary = a.salary * 1.1 where a.department_id = '1001' ;
delete  from  table  where ……
 merge into table1 a
       using  table2 b
       on (a.id = b. id)
       when matched then update   set a.column = b.column
                                        delete ……
       when not matched then insert ……
34 list=[2,3,5,4,9,6],从小到大排序,不许用sort,输出[2,3,4,5,6,9]

list1=[2,3,5,4,9,6]
list2=[]
for i in range(0,100):
    if i in list1:
        list2.append(i)
print(list2)
35 请将[i for i in range(3)]改成生成器

a = (i for i in range(3))
print(type(a))
36 举例sort和sorted对列表排序,list=[0,-1,3,-10,5,9]

list=[0,-1,3,-10,5,9]
list.sort()
print(list)
print(sorted(list))#创建一个新的
37 对list排序foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],使用lambda函数从小到大排序

foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4]
h = lambda x:sorted(x)
print(h(foo))
38 递归求和 1到100的数和

def get_num(n):
    if n ==1:
        return 1
    else:
        return n + get_num(n-1)
print(get_num(100))
39 python字典和json字符串相互转化方法

import json
dict = {'hello':123}
jsons = json.dumps(dict)
print(jsons)
print(jsons.loads(jsons))
40 统计字符串中某字符出现次数
a = "etatweagawergweragw"
for i in set(a):
    print(i,a.count(i))

最后

以上就是丰富小馒头为你收集整理的大数据Python面试题的全部内容,希望文章能够帮你解决大数据Python面试题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(98)

评论列表共有 0 条评论

立即
投稿
返回
顶部