略
python2:
- 默认编码是ascii
- input获取的是数据本身
- bytes类型是字符串,unicode是字节
- 没有打印range(10)获取的是列表1-9
- 除法向下取整
python3:
- 默认编码unicode
- input获取的是字符串
- str是字符串,bytes是字节
- 打印range(10)是range(0,10)
- 除法返回小数
1
0
v1:list内三个int
v2:list内三个int
v3:list内三个tuple
a = 1
b = 2
a, b = b, a
单引号:字符串
双引号:字符串
三引号:多行注释
is:判断两边的内存地址是否相同
==:判断两边数值是否相同
tuple(),list()
name = "老男孩"
name[::-1]
交集:&
并集:|
差集:-
y不等于0的情况下都成立
import copy
copy.copy(obj)
赋值:只是将一个变量赋予了不同的变量名,相当于别名
浅拷贝:只拷贝源数据的最外层数据,共用源数据的内层数据
深拷贝:将源数据全部拷贝一份新的
占位,后续添加逻辑
[1, 2, 4, 5, ['b', 'c', 'd'], 5]
[1, 2, 4, 5, ['b', 'c', 'd']]
[1, 2, 4, 5, ['b', 'c']]
for i in range(10):
for j in range(1, i+1):
print('{}x{}={}'.format(i, j, i * j), end = ' ')
print('\n', end = '')
a, b = 0, 1
while b < 100:
print (b, end = " ")
a, b = b, a + b
set()
with open('etl_log.txt', encoding = 'utf-8') as f:
for i in f:
print(i.strip())
字典
匿名函数
*args 和 **kwargs在函数定义阶段形参的位置代表聚合,接收任意参数,在函数体内代表打散
global
都为高阶函数
filter:过滤
map:映射
reduce:累加
名为lambda的函数就是匿名函数,方便
官方说明最大深度1000,实际测试997/998
迭代器:具有__iter__()和__next__()方法的对象称为迭代器
可迭代对象:具有__next__()方法的对象称为可迭代对象
生成器:生成器就是程序员自己写的迭代器
装饰器:在不改变原函数的代码及其调方式的情况下,为其添加新的功能,为装饰器
反射:使用字符串来操作对象的属性和方法
def warpper(f):
def inner(*args, **kwargs):
print('1')
ret = f(*args, **kwargs)
print('2')
return ret
return inner
@warpper
def func():
print('a')
func()
def auth(argv):
def warpper(f):
def inner(*args, **kwargs):
if argv:
print('1')
else:
print('2')
ret = f(*args, **kwargs)
return ret
return inner
return warpper
@auth(True)
def func():
print('a')
func()
[6, 6, 6, 6]