概述
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面试题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复