有java c语言 GO语言 python
2.列举python2和python3的区别?
1、Python2 既可以使用带小括号的方式,也可以使用一个空格来分隔打印内容,比如 print 'hi'
Python3 使用 print 必须要以小括号包括打印内容,比如 print('hi')
2、python2 range(1,10)返回列表,python3中返回迭代器,节约内存
3、python2中使用ascii编码,python3中使用utf-8编码
4、python2中unicode表示字符串序列,str表示字节序列
python3中str表示字符串序列,byte表示字节序列
5、python2中为正常显示中文,引入coding声明,python3中不需要
6、python2中是raw_input()函数,python3中是input()函数
3.看代码写结果
1:1
2:flase
.比较以下值有什么不同?
1.列表里面放了三个数字
2.列表里面放了三个数字用括号包起来了
3.列表里面放了三个元组,每个元组里的元素分别是1,2,3,
5.用一行代码实现数值交换。
a,b=b,a
6.Python中的单引号 双引号 三引号的区别?
单引号和双引号都可以用来表示一个字符串,三引号可以用来多行注释
7.is和==的区别?
is是用来判断内存地址是否相同,==用来判断两边的值是否相同
8.python中如何实现tuple和list的转化?
tuple转list >>> tu = (1,2,3,4) print(list(tu))
list转tuple >>> ls = (1,2,3,4) print(tuple(ls))
9.如何实现字符串 name='老男孩的反转'
ls = name.split('')
1.
ls = name.split('')
ls.reverse()
name=''.join(ls)
2.
ls[-1::-1]
ls.reversr()
10.两个set如何获取交集,并集,差集?
交集:s1 & s2
并集:s1 | s2
差集:s1 - s2
11.那些情况下,y!= x -(x-y)会成立?
12.python中如何拷贝一个对象?
浅拷贝
a = [1,2,3]
b = a.copy
深拷贝
import copy
a = [1,2,3,4,5,[6,7]]
b = deepcopy(a)
13.简述赋值 浅拷贝 深拷贝的区别?
赋值是将同一个内存地址指向不同的变量
浅拷贝是只拷贝第一层元素的内存地址,修改第一层不可变元素的时候源数据不受影响,
给可变元素进行添加的时候源数据受影响
深拷贝是不可变元素内存地址共用,可变元素另开辟空间
14.pass的作用?
在定义函数或者类的时候不想写下面的代码可以用pass代替防止报错
15.阅读代码写结果。
import copy
a = [1,2,4,5,['b','c']]
b = a
c = copy.copy(a)
d = copy.deepcopy(a)
a.append(5)
a[4].append('d')
print(b)
print(c)
print(a)
b: [1,2,4,5,['b','c'],5]
c: [1,2,4,5,['b','c',[1,2,4,5,['b','c']]
a: [1,2,4,5,['b','c',[1,2,4,5,['b','c']]
16.用python实现9*9乘法表
17.用python显示一个斐波那契数列。
a=0
b=1
while b<1000:
print(b,end=',')
a,b = b,a+b
def func(n):
if n==1 or n==2:
return 1
else:
return func(n-1) + func(n-2)
res = func(20)
print(res)
18.如何删除列表中重复的值?
将列表转化为集合,然后在转化为列表
19.一个大小为100G的文件etl_log.txt, 要读取文件中的内容, 写出具体过程代码?
f = open('etl_log.txt','r',encoding='utf-8')
for i in f:
print(i)
20.a = dict(zip(("a","b","c","d","e"),(1,2,3,4,5))) 请问a是什么?
字典
21.lambda关键字的作用?
定义匿名函数
22.*arg
和**kwarg
作用?
*arg用来接收多余的位置参数
**kwarg 用来接收多余的关键字参数
23.如何在函数中设置一个全局变量 ?
使用globa
24.filter、map、reduce的作用?
filter是过滤 map映射将可迭代对象中的每个元素执行指定的函数 reduce是累加
25.什么是匿名函数?匿名函数有什么作用?
匿名函数也叫一行函数 匿名函数一般和高阶函数配合使用
26.Python递归的最大层数?
理论上递归的最大深度是1000层 实际中一般是996-998
27.什么是迭代器?什么是可迭代对象?
具有iter()和next()方法的是迭代器
具有iter()方法的是可迭代对象
28.什么是生成器?
本质是一个迭代器
生成器是程序员自己写的迭代器
29.什么是装饰器及应用场景?
装饰器就是在不改变源代码及调用方式的情况下给函数添加新的功能
30.什么是反射及应用场景?
反射用字符串的方法调用函数
31.写一个普通的装饰器。
def warpper(f):
def inner(*args,**kwargs):
print('执行前')
ret = f()
print('执行后')
return ret
return inner
@warpper
def func():
print(111)
func()
32.写一个带参数的装饰器。
def auth(x):
def warpper(func):
def inner(*args,**kwargs):
if x:
print(11)
func()
else:
func()
return inner
@auth(Ture)
def ppp(*args,**kwsrgs):
print(222)
ppp()
33.求结果
def num():
return [lambda x:i*x for i in range(4)]
print([m(2) for m in num()])
[6,6,6,6]
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],[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)
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))
40.是否使用过functools中的函数?其作用是什么?
41.用Python匹配HTML tag的时候,<.>和<.?>有什么区别?
<.> 匹配一次 <.?匹配多次>
43.如何生成一个随机数?
使用random模块
import random
print(random.randint(1,50))
44.super的作用?
super按照指定的参数执行父类的方法
45.双下划线和单下划线的区别?
46.@staticmethod和@classmethod的区别?
静态方法不依赖于对象和类
类方法可以自动变换类名
使用类方法可以获取到类地址进行实例化
可以通过类名修改类属性
47.实现一个单例模式(加锁)。
import threading
import time
class Singleton:
instance = None
lock = threading.RLock()
def __init__(self,name):
self.name = name
def __new__(cls,*args,**kwargs):
if cls.instance:
return cls.instance
with cls.lock:
if cls.instance:
return cls.instance
cls.instance = object.__new__(cls)
return cls.instance
def task():
obj =Singleton("宗介")
print(obj)
for i in range(10):
t = threading.Thread(target=task)
t.start()
48.栈和队列的区别?
栈先进先出 队列先进后出
49.以下代码输出是什么? 请给出答案并解释。
class Parent(object):
x = 1
class Child1(Parent):
pass
class Child2(Parent):
pass
print Parent.x, Child1.x, Child2.x
111
Child1.x = 2
print Parent.x, Child1.x, Child2.x
1,2,1
Parent.x = 3
print Parent.x, Child1.x, Child2.x
3,3,3
50.参考下面代码片段
class Context:
pass
with Content() as ctx:
ctx.do_something()
请在Context类下添加代码完成该类的实现
第二部分 可选题
-
-
简述Python内存管理机制。
-
简述Python的垃圾回收机制。
-
请用两个队列来实现一个栈。
-
请用Python实现一个链表。
-
请用Python实现链表的逆转。
-