python学习笔记 day16 内置函数(四)
复习
python中有哪些数据类型:int str bool list tuple dict set
python中有哪些数据结构: list,tuple,dict,set
reversed()---返回一个新的list,把原来的列表元素反转,并且是一个迭代器(节省内存)
L=[1,2,3,4] L_new=reversed(L) #返回的是一个迭代器,并不会改变原有列表,会把原来列表中的元素反转,产生一个新的 print(L) print(L_new) #返回的是一个新的列表 print(L_new.__next__()) #可以使用.__next__()方法依次取得迭代器中元素的值 print("*******************") for i in L_new: #由于这个迭代器已经使用.__next__()取得一个值了,所以后续在使用for循环时也只能接着取了~ print(i)
运行结果:
还记得之前学的reverse方法:是在原列表基础上进行操作,并不是返回一个新的列表
L=[1,2,3,4] L.reverse() #该方法于append()方法类似,没有返回值,只是一个操作而已 print(L)
运行i结果:
slice():其实也是完成切片功能(只不过这里是一个函数封装了list[start:end:step]功能)
L=[1,2,3,4,5,6] sli=slice(1,5,2) #只是产生了一个切片规则 print(L[sli])
运行结果:
format():格式化输出
print("{},{}!".format('Hello','xuanxuan')) #格式化输出,{}相当于占位符 print(format(3.16),type(format(3.16))) #可以将数字转化为字符串 print(format('xuanxuan','<30')) #将字符串左对齐,长度30 print(format('xuanxuan','>30')) #将字符串右对齐,长度30 print(format('xuanxuan','^30')) #将字符串居中对齐,长度30
运行结果:
bytes():将字符串转化为bytesl类型
文件中的内容一般都是str类型,但是str类型的编码是unicode(万国码),我们传输一般都是用utf-8或者gbk 而bytes类型就是utf-8或者gbk编码的,所以有时候需要进行str---->bytes类型的转换
print(bytes('你好,璇璇',encoding='utf-8')) #将str 类型转换为utf_8的bytes类型 print(bytes('你好,璇璇',encoding='gbk')) #将str类型转换为gbk的bytes类型 print(bytes(bytes('你好,璇璇',encoding='gbk').decode('gbk'),encoding='utf-8')) #如果需要进行gbk--->utf-8的转换时,就可以先把按照gbkdecode 一下decode('gbk'),变为str,unicode编码的,然后再bytes('',encoding='utf-8')类型转换为utf_8
运行结果:
使用范围:
1.网络编程时需要转化为二进制;
2.照片和视频文件使用二进制存储;
3.html爬取到的网页需要使用二进制
ord()----将字符按照Unicode转换为数字;chr()----将数字按照unicode转化为字符
print(ord('a')) #将字符a按照unicode转化为数字97 print(ord('A')) #将字符A按照unicode转化为数字65 print(ord('1')) #将字符‘1’按照unicode转化为数字 print(chr(97)) #将数字97按照unicode转化为字符
运行结果:
repr():将字符串类型的原封不动的输出,用于%r格式化输出
先来感受一下:
print('你好,%s'%'璇璇') # %s就是原来我们学的将字符串格式化输出(输出结果不带引号) print('你好,%r'%'璇璇') # %r 可以格式化输出,输出结果保留引号
运行结果:
其实,%s 对应的时str; %r对应的是repr
print(repr('xuanxuan')) print('字符1:'+ repr('1')) #repr()会原封不动的将字符带有引号的输出 print(repr(1)) print('**********************') print('1') print(1)
运行结果: