1.简述列举了解的编程语言及语言间的区别?
我了解python,java和c和go
简单的说,python省去了java和c 的大括号,分号
python使用时更加简洁,方便,和易阅读
python是解释型语言,不需要编辑,java和c 需要编译,但是开发周期长,python使用起来效率比java和c低,但如果不是特别注重延迟的项目,用python更加合适
python是开源的,应用广泛,可移植性强,是可嵌入的解释型编程语言
2.列举Python2和Python3的区别?
python3不兼容python2,但是python2.7都兼容
首先python2不支持中文用的是ASCII,python3支持,用的是utf8
python2和python3的range不同,2中返回一个列表,3中返回一个迭代器,更加节省内存
2中print不加括号,3中加括号
2中的raw_input函数是3中的input函数
3.看代码写结果
v1 = 1 or 2v2 = 3 and 7 or 9 and 010
4.比较一下值有什么不同?
v1 = [1,2,3]v2 = [(1),(2),(3)]v3 = [(1,),(2,),(3,)]v1 = v2v3 是列表中套了三个元组
5.用一行代码实现数值交换
a = 1b = 2a,b = b,a
6.Python中单引号、双引号、三引号的区别?
单引号 == 双引号,里面写字符串内容
三引号里面写函数注释、文档注释
7.is和==的区别?
is代表的是两个比较的数据内存地址相同
==代表的两个数值相同
8.python里如何实现tuple和list的转化?
tuple(list列表)
list(tuple列表)
9.如何实现字符串name=老男孩
的反转?
print(name[::-1])
10.两个set如何获取交集、并集、差集?
set1 = {1,2,3}set2 = {3,4,5}# 交集set = set1 & set2# 并集set = set1|set2# 差集set = set1 ^ set2
11.哪些情况下,y != x-(x-y)
会成立?
没有情况
12.python中如何拷贝一个对象
import copyname = '老男孩'name1 = copy.deepcopy(name)
13.简述赋值、浅拷贝、深拷贝的区别?
赋值就是一个变量名对一个对象地址的引用
浅拷贝就是对一个对象的第一层的拷贝
深拷贝就是对一个对象的全部拷贝,独立于源数据
14.pass的作用
当写一个函数或者写一个类的时候,没有想好内部如何写,就用pass占位
15.阅读代码写结果
import copya = [1,2,4,5,['b','c']]b = ac = copy.copy(a)d = copy.deepcopy(a)a.append(5)a[4].append('b')print(b)print(c)print(a)a = [1,2,4,5,['b','c','b'],5]b = [1,2,4,5,['b','c','b'],5]c = [1,2,4,5,['b','c','b']]d = [1,2,4,5,['b','c']]
16.用python实现9*9乘法表
for i in range(1,10): for j in range(1,10): print('{}{}={}'.format(i,j,i*j))
17.用python显示一个斐波那契数列
def func(n): if n == 1: return 1 return func(n-1) + func(n-2)
18.如何删除列表中重复的值
list = [1,1,1,2]set_list = set(list)
19.一个大小为100G的文件etl_log.txt,要读取文件中的内容,写出具体过程代码?
with open('etl_log.txt',r,encoding='utf-8')as f: print(f.readline())
20.a = dict( zip( ('a','b','c','d','e') ,(1,2,3,4,5) ) )请问a是什么
字典中a对应的值为1
21.lambda关键字的作用?
almbda是匿名函数,用于一次性使用的函数
22.*args和**kwargs的作用?
*args用来接收剩余的位置参数
**kwargs用来接收剩余的关键字参数
23.如何在函数中设置一个全局变量
global 变量名
24.filter,map,reduce的作用
filter用于过滤数据
map是映射函数,将可迭代对象中的每个元素执行相应的操作
25.什么是匿名函数,匿名函数有什么作用?
匿名函数,顾名思义就是没有名字的函数,由于一些场景,只需要一次性使用函数,如果定义一个函数,会造成资源的浪费,所以需要使用一个匿名函数,用完之后就自动回收了
26.python递归的最大层数?
1000
27.什么是迭代器?什么是可迭代对象?
只要具有__iter__()方法的是就是一个可迭代对象具有__iter__()和__next__()两个方法的才是迭代器
28.什么是生成器?
迭代器python内置的
生成器是程序员写的一种迭代器
生成器有两种编写方式,一种是推导式方式和函数编写
29.什么是装饰器及应用场景?
开放封闭原则
-
1.对扩展是开放的
-
2.对修改是封闭的
在不修改源代码和调用方式的情况下,对函数进行扩展
30.什么是反射及应用场景?
反射通过字符串直接调用函数或者方法
31.写一个普通的装饰器
def times(func): def foo(): print('装饰001') func() print('装饰002') return foo@timesdef func1(): print("被装饰的函数1")
32.写一个带参数的装饰器
def func(func): def foo(*args, **kwargs): print('装饰001') func(*args, **kwargs) print('装饰002') return foo@funcdef func1(*args, **kwargs): print(args,kwargs) print('被装饰的函数1')
33.求结果
def num(): return [lambda x:i*x for i in range(4)]print([m(2) for m in num()])
34.def(a,b=[])这种写法有什么陷阱
开发中不这么写,如果没有特殊需求,这么写直接开掉
35.看代码写结果
def func(a,b=[]): b.append(a) return b v1 = func(1)v2 = func(2,[10,20])v3 = func(3)print(v1,v2,v3)[1][10,20,2][1,3]
36.看代码写结果
def func(a,b=[]): b.append(a) return b v1 = func(1)print(v1)v2 = func(2,[10,20])print(v2)v3 = func(3)print(v3)[1][10,20,2][1,3]
37.请编写一个函数实现将ip地址转换成一个整数
如 10.3.9.12 转换规则为: 10 00001010 3 00000011 9 00001001 12 00001100再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ?
38.请查找一个目录下的所有文件(可能存在文件嵌套)。
39.求结果
import math print(math.floor(5.5))5
40.是否使用过functools中的函数?其作用是什么?
41.re的math和search的区别?
search 从任意位置开始查找,查找到结束,没有则返回空列表
match 从头开始查看,如果不符合就不继续查找了
42.用python匹配html tag的时候,<.>和<.?>有 什么区别?
43.如何生成一个随机数?
import randomprint(random.ranint(0,100))
44.super的作用?
super用来调用父类的方法或属性
45.双下划线和单下划线的区别?
双下划线的是自定义的方法
单下划线的是私有变量
47.实现一个单例模式(加锁)
48.栈和队列的区别?
49.以下代码输出是什么?请给出答案和解释。
class Parent(object): x = 1class Child1(Parent): passclass Child2(Parent): passprint Parent.x, Child1.x, Child2.x1 1 1 Child1.x = 2print Parent.x, Child1.x, Child2.x1 2 1 Parent.x = 3print Parent.x, Child1.x, Child2.x3 2 3
50.参考下面代码片段
class Context: passwith Content() as ctx : ctx.do_something()请在Context类下添加代码完成该类的实现
进阶篇
1.如何获取列表中第二大的值?
2.简述python内容管理机制
3.简述python的垃圾回收机制
4.请用两个队列来实现一个栈
5.请用python实现一个链表
6.请用python实现链表的逆转
来源:https://www.cnblogs.com/xuyuwei/p/12366413.html