-
Python 是一个解释型的脚本语言,运行速度慢,代码简洁,学习时间短,开发速度快
-
Java 编译型语言,运行速度适中,开发效率适中,目前最流行的语言
-
c/c++ 现存的编程语言的老祖,执行速度最快,代码复杂,开发难度大
-
go 编程界的小鲜肉,高并发能力最高,代码像Python一样简洁,运行速度和c一样快
-
列举Python2和Python3的区别
-
Python2:
-
源码不统一,源码重复
-
input接受到的是数据本身
-
整除返回的是整数(向下取整)
-
打印range(10) 是一个列表,内容是[0-9]
-
整形型,长整型
-
默认编码是ascll,不支持中文名
-
-
Python3:
-
源码统一,源码不重复
-
input接收到的是字符串
-
整除返回的是浮点数(小数)
-
打印range(10)就是本身
-
全是整型
-
默认编码是Unicode,支持中文
-
-
-
看代码写结果
-
1
-
0
-
-
比较下值有啥不同
-
v1和v2都是一个列表里面有3个元素
-
v3是一个列表里面有三个元租
-
-
a,b=b,a
-
引号的区别
-
单引号和双引号基本没什么区别,有时需要单引号里面套双引号或双引号套单引号
-
三引号是多行注释,注释的代码不会执行
-
三引号也可以是多行代码,会按照原始代码输出
-
-
is和==的区别
-
is 表示判断对象的id是否相同
-
== 表示判断对象的值是否相同
-
-
tuple和list的转化
-
tuple-->list list(tuple)
-
list -->tuple tuple(list)
-
-
s=s[::-1]
-
..
-
交集 s&s1
-
并集 s|s1
-
差集 s-s1
-
-
x,y不是int数据类型
-
Python中如何拷贝一个对象
-
复制
-
深浅拷贝
-
-
赋值,深浅拷贝的区别
-
赋值,相当于给一个东西起了两个名字
-
浅拷贝 只拷贝第一层元素,只修改第一层不可变数据的时候不进行改变,给可变数据类型添加数据的时候源数据会改变
-
深拷贝 不可变数据类型共用,可变数据类型新开辟空间也共用
-
-
pass的作用
-
占位,让代码能继续执行下去
-
-
。。
-
b=[1,2,4,5,['b','c','d'],5]
-
c = [1,2,4,5,['b','c','d']]
-
d = [1,2,4,5,['b','c','d'],5]
-
-
99乘法表
for i in range(10):
for j in range(i):
j = j+1
print(f'{j}x{i}={j*i}',end=' ')
print('') -
斐波那契数列
def fib_loop(n):
a, b = 0, 1
for i in range(n + 1):
a, b = b, a + b
return a
for i in range(20):
print(fib_loop(i), end=' ') -
去除列表中的重复值
a=[1,2,3,3,4,5,5]
a=list(set(a))
print(a) -
读取大文件
def read_line(path):
with open(path, 'r', encoding='utf-8') as f:
line = f.readline()
while line:
line = f.readline()
print(line) -
a = dict(zip(("a","b","c","d","e"),(1,2,3,4,5))) a是什么
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
-
lambda关键字的作用
-
匿名函数,这个函数没有名字,不能在别的地方调用
-
-
*args和**kwargs
-
*args 接收多余的位置参数转化为元祖
-
*kwargs 接收多余的关键字参会素转化为字典
-
-
如何在函数中声明一个全局变量
-
在函数的内部,通过global声明,使在函数内部中设置一个全局变量,这个全局变量可以在任意的函数中进行调用
-
-
filter,map,reduce的作用
-
filter 过滤函数 指定过滤的规则 要过滤的数据
-
map 映射函数 将可迭代对象中每一个元素都执行指定的函数
-
reduce (函数,可迭代对象)累计算
-
-
。。
-
匿名函数也叫一行函数,就是没有名字的函数
-
lambda==def
-
不能在别的地方调用
-
省去定义的过程,代码简洁
-
-
Python中递归的最大层数
-
windows中最大的998
-
-
。。
-
迭代器:具有iter()和next()两个方法
-
迭代对象:只要具有iter()方法
-
-
生成器
-
生成器的本质就是迭代器
-
生成器是程序员自己写的一个迭代器
-
在函数体中出现yield就表明这是一个生成器
-
-
装饰器
-
开放封闭原则
-
在不修改原始代码和调用代码的前提下对待吗进行添加功能和装饰
-
-
反射
-
通过字符串操作对象的属性个方法
-
-
普通装饰器
def warp(func):
def inner(*args,**kwargs):
print('222')
func()
print('333')
return inner
@warp
def foo():
print('11111')
foo() -
有参装饰器
def auth(hh):
def warp(func):
def inner(*args,**kwargs):
if hh:
print('222')
func()
print('333')
else:
print('heihei')
return inner
return warp
@auth(0)
def foo():
print('11111')
foo() -
...
-
[6,6,6,6]
-
-
def func(a,b=[]) 这种写法有什么坑?
-
第一次执行的时候实例化了一个列表,第二次执行的时候用的还是第一次实例的列表,以此类推
-
-
。。
-
v1=[1]
-
v2 = [10,20,2]
-
v3 = [1,3]
-
-
..
-
v1=[1]
-
v2 = [10,20,2]
-
v3 = [1,3]
-
-
..
-
-
5
-
reduce (函数,可迭代对象)累计算
-
.
-
match 从开头位置查找,找不到就返回none
-
-