之前内容回顾
1、python基础 2、基本数据类型:str、dict、list、tuple、set.. s = "alex" => str # s是创建的一个对象,所有功能被保存在其对应的str的类里 对象是类的实例 isinstance(s, str) ==> True 3、函数式编程 函数定义 内置函数 文件处理 注意: li = [11,22,33,44] def f1(arg): #此函数没有返回值,默认返回None arg.append(55) li = f1(li) # li被重新赋值了,而其返回值为None print(li)# 如果li没有被重新赋值,则li == [11,22,33,44,55] 4、其他 三目运算 lambda表达式 |
内置函数补充
callable() # 查询是否可以被调用 chr() # 将数字转换成对应的ascii码 ord() # 将ascii码转换成数字 abs() # 取绝对值 bool() # 取布尔值 # 0, None, "", [], {}, () # 以上布尔类型值都是False(注意双引号里面没有空格,列表跟字典里面无所谓) bin() #十进制转二进制 oct() #十进制转八进制 hex() #十进制转十六进制 utf-8 一个汉字:三个字节 gbk 一个汉字:两个字节 # 字符串转换成字节类型 # bytes("要转换的字符串",encoding="某种编码格式") |
python file.py 执行文件过程: 1、读取文件内容open,string(字符串形式)到内存 2、python,把字符串 -> 编译 =》特殊代码 3、执行代码 >>> s = "print(123)"#字符串 >>> r = compile(s, "<string>", "exec")#将字符串编译成python代码 #有几种模式single, eval ,exec >>> print(r) #code <code object <module> at 0x0000018F219D2660, file "<string>", line 1> >>> exec(r) #执行 123 >>> #将字符串编译成python代码 compile() #执行python代码,接收:代码(直接执行)或者字符串(先编译再执行);虽然很牛逼,但没有返回值 exec("7+8+9") #执行表达式,并且获取结果(有返回值) ret = eval("7+8+9") print(ret) |
dir(list) #快速查看对象提供了哪些功能 help(dir) #帮助读源码的 #共97条数据,每页显示10条,需要多少页 r = divmod(97, 10) print(r) # (9, 7) 商9余7 # r[0] == 9 && r[1] == 7 #可以这么写: n1, n2 = divmod(97, 10) s = "alex"#用于判断,对象是某个类的实例 isinstance(s, str) ==> True |
ret = filter(函数, 可迭代的对象) # filter内部会循环被迭代的对象,然后执行函数,符合条件的元素就被添加到ret中 # 函数返回值为True,将元素添加到结果中!!! >>> a = [11,22,33,44] >>> ret = filter(lambda x:x>33, a) >>> print(ret) <filter object at 0x000001CE9A862518> >>> print(list(ret)) [44] ret2 = map(函数,可迭代的对象) # map将函数的返回值添加到结果中!!! >>> a = [11,22,33,44] >>> ret2 = map(lambda x:x>11, a)#lambda返回值为bool类型 >>> print(list(ret2)) [False, True, True, True] >>> ret2 = map(lambda x:x+11, a)#lambda返回值为int类型 >>> print(list(ret2)) [22, 33, 44, 55] >>> |
len()在python2.7跟python3.0里面的不同: >>> li = "理解" #python3里面,中文默认是字符来算的 >>> len(li) 2 >>> b = bytes(li, encoding=‘utf-8‘) #可以显式的转换成字节 >>> len(b) 6 >>> |
sum([11,22,33,44]) max([11,22,33,44]) min([11,22,33,44]) pow(2, 10)#乘方 =》1024 round(1.2)#四舍五入 li = [11,22,3,4] li.reverse() 《===》reversed(li) #内部执行li.reverse()方法 li.sort() 《===》 sorted(li) |
zip(): #仅限于python3.. >>> l1 = ["Your", 11, 22] >>> l2 = ["are", 22, 33, 55] >>> l3 = ["beautiful", 33, 44] >>> r = zip(l1, l2, l3) >>> print(list(r)) #依次取出每个数组的元素进行组合;如果元素长度不一致会被砍到一样长 [(‘Your‘, ‘are‘, ‘beautiful‘), (11, 22, 33), (22, 33, 44)] >>> print(list(r)) #为啥第二此打印会变成空列表?? [] >>> a, b, c = zip(*[(‘Your‘, ‘are‘, ‘beautiful‘), (11, 22, 33), (22, 33, 44)]) >>> print(a, b, c) # zip(*list)也就是列表前面带个星号,是上述操作的逆操作 (‘Your‘, 11, 22) (‘are‘, 22, 33) (‘beautiful‘, 33, 44) >>> |
反射:(以后补充) delattr(), getattr(), setattr(), hasattr() 迭代器: iter(), next() |