1.编程语言的区别
解释性语言和编译型语言
编译型语言比解释性语言运行速度快
2.python3和python2区别
python2 python3
除法 返回整数 返回小数
input 数据本身 str
int 整形和long 整形
默认编码 ascii unicode
3.
v1 = 1 or 2 :1
v2 = 3 and 7 or 9 and 0 :7
4.
v1=[1,2,3]
v2=[(1),(2),(3)]
v3 = [(1,),(2,),(3,)]
v1和v2都是列表 v3是列表套元组
5
a=1 ,b=2
a,b=b,a
6python 中单引号、双引号、三引号的区别
都是字符串和具有转义的功能 三引号可已显示多行
7.is和==区别
==是判断的两端的值是否相等
is是判断两侧的地址是否一致
8.python实现tuple和list的转化
list(tuple)
tuple(list)
9.字符串翻转
name="老男孩儿"
name[::-1]
10.set交集、并集、差集
交集:set1 & set2
并集:set1 | set2
差集:set1 - set2
11.y!=x-(x-y)成立
x和y是两个不相等的非空集合
12如何拷贝一个对象
a[:]
a.copy()
13
赋值:将多个变量指向同一个内存地址
浅拷贝:只拷贝第一层元素的地址,只有修改数据第一层的时候源数据不受影响,给可变数据类型进行添
加的时候源数据会受影响
深拷贝:不可变数据类型内存地址共用,可变数据类型新开辟一个地址
14
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(a) # [1,2,4,5,["b","c","d"],5]
print(c) # [1,2,4,5,["b","c","d"]]
print(b) # [1,2,4,5,["b","c","d"],5]
16. 99 乘法表
for i in range(1,9):
for j in range(1,i+1):
print(str(i) + "*" + str(i) + "=" + str(i*j),end=" ")
print("")
17.斐波那契
lst = []
for i in range(20):
if i == 0 or i == 1:
lst.append(1)
else:
lst.append(lst[i-2] + lst[i-1])
print(lst)
18.删除列表重复值
list(tuple(list))
19.读取100g文件
with open(etl_log.txt,mode="r",encoding=utf-8"") as f:
for i in f:
print(i)
20 a = dict(zip(("a","b","c","d","e"),(1,2,3,4,5)))
{a:1,b:2,c:3,d:4,e:5}
21
lamdba 匿名函数
22
*args聚合参数
**kwargs聚合关键字参数
23 如何在函数中设置一个全局变量
global
24filter,map,reduce的作用
filter : 过滤
map : 映射 每个原色都执行方法
reduce : 累计算
25.什么是匿名函数.作用
lambda
作为内置函数的参数传递
26.Python递归的最大层数?
1000
27.什么是迭代器?什么是可迭代对象?
具有iter()和next()方法就是一个迭代器
只要具有__iter__() 方法就是一个迭代对象
28.什么是生成器
生成器程序员自己写的一种迭代器
29.什么是装饰器及应用场景?
不修改源代码及原调用方式的前提下,额外增加新功能
30.什么是反射及应用场景?
通过字符串操作对象的属性和方法
31.写一个普通的装饰器
def wrapper(f):
def inner(*args,**kwargs):
print(2)
f(*args,**kwargs)
return inner
@wrapper
def func():
print(1)
func()
32.写一个带参数的装饰器。
def auth(argv):
def wrapper(f):
def inner(*args,**kwargs):
print(2)
f(*args,**kwargs)
return inner
return wrapper
@auth("...")
def func():
print(1)
func()
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=[])这种写法有什么陷阱?
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)
v1 = [1,3]
v2 = [10,20,2]
v3 = [1,3]
36.看代码写结果
def func(a,b=[]):
b.append(a)
return b
v1 = func(1)
print(v1) :[1]
v2 = func(2,[10,20])
print(v2) :[10,20,2]
v3 = func(3)
print(v3) :[1,3]
37.请编写一个函数实现将IP地址转换成一个整数。
def func(a):
return int(a, 2)
func("00001010")
38.请查找一个目录下的所有文件(可能存在文件嵌套)。
os.listdir()
39.求结果
import math
print (math.floor(5.5))
5
40.是否使用过functools中的函数?其作用是什么?
functools用于高阶函数:指那些作用于函数或者返回其他函数的函数。
41.re的match和search区别?
match:从头开始匹配
search:从任意位置开始查找
42.用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别?
贪婪模式和懒惰模式
43.如何生成一个随机数?
import random
random.random()
44.super的作用?
按照mro的查找顺序进行查找,从当前mro中查找类名的下一个类
45.双下划线和单下划线的区别?
单下划线:(程序员之间约定俗成)类私有的属性
双下划线:(程序级别)类私有的属性
46.@staticmethod和@classmethod的区别?
@staticmethod : 不依赖对象和类 就是一个普通的函数
@classmethod : 依赖类 被classmethod装饰器装饰的方法参数是cls
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
time.sleep(0.1)
cls.instance = obj.__new__(cls)
return cls.instance
48.栈和队列的区别?
栈:后进先出
队列:先进先出
49.以下代码输出是什么? 请给出答案并解释。
class Parent(object):
x = 1
class Child1(Parent):
pass
class Child2(Parent):
pass
print Parent.x, Child1.x, Child2.x
1 1 1
Child1.x = 2
print Parent.x, Child1.x, Child2.x
1 2 1
Parent.x = 3
print Parent.x, Child1.x, Child2.x
3 2 3
50.参考下面代码片段
class Context:
pass
with Content() as ctx:
ctx.do_something()
请在Context类下添加代码完成该类的实现
class Context:
def __init__(self,file,mode,encoding=‘utf-8‘):
self.file = file
self.mode = mode
self.encoding = encoding
def __enter__(self):
self.f = open(self.file,self.mode,encoding=self.encoding)
return self.f
def __exit__(self,exc_type, exc_val, exc_tb):
print(exc_type, exc_val, exc_tb)
self.f.close()
with Context("0","r") as ctx:
ctx.do_something()
二
1.如何获取列表中第二大的值?
lst = [1,4,3,8,1,5]
lst.sort()
lst[-2]
原文:https://www.cnblogs.com/Ndfour/p/12366104.html