Python【day 13】内置函数02

巧了我就是萌 提交于 2019-12-03 06:09:23
一、作用域相关-2个    1、locals()        参数是空        返回当前位置作用域的所有变量,返回的是字典        当前位置:函数内,返回局部变量        当前位置:函数外,返回全局变量    2、globals()        参数是空        返回全局变量,返回的是字典二、迭代器-生成器相关--3个    1、range()       生成数字数据,例如:等差数列       参数是数字    2、next()        参数是迭代器-Iterator,返回的是迭代器的一个取值,只能向下取值,不能后退        和迭代器.__next__()等效--内部原理    3、iter()        用于把Iterable转换成迭代器        参数是Iterable,返回的是迭代器,内部调用的是Iterable.__iter__()        可迭代类型的(可迭代的):Iterable            包括:str list tuple dict set range() open()        迭代器:Iterator            Iterator = iter(Iterable)  或者            Iterator = Iterable.__iter__()        注意:列表是Iterable,而不是Iterator三、其他-12个    1、字符串类型代码的执行--3个        1、eval()            作用:用于实现计算器,字符串表达式的执行            参数:字符串表达式 比如:'1+3'            返回:int--计算结果            应用场景:有返回值的字符串形式的代码-                      比如:计算器、'[1,2]'或者"{'name':'jack'}"去掉引号,json字符串转成字典        2、exec()            作用:执行字符串中的代码            参数:字符串代码            返回:None,没有返回值            应用场景:没有返回值的字符串形式的代码-比如:函数、for循环等        3、compile()            作用:将字符串中的代码进行编译,将编译后的结果存入变量,然后把变量交给eval()或者exec()执行            参数:                参数1:字符串形式的代码                参数2:py文件-如果参数1传了,参数2是空字符串""即可                参数3:模式有3个                    1、'eval' 计算字符串表达式                    2、'exec' 循环或者if语句或者函数                    3、'single' 有交互的时候,包含input                    注意:single这个模式只能用于input,不能在input之外加上其他任何语句,                          比如:有print不行,否则报错            返回:            应用场景:            1、有返回值的字符串形式的代码-用eval()            2、没有返回值的字符串形式的代码-用exec()            3、compile()用的较少    2、输入输出--2个        1、input()            作用:获取用户键盘输入的内容            参数:字符串,比如:用于提示用户输入            返回:字符串                  注意:用户输入的是数字1,返回的是字符串'1'                        这里的字符串'1'如果需要用于计算,就需要先转换成int,否则报错            应用场景:有交互的时候        2、print()            作用:打印输出            参数:变量-必选参数            返回:变量的值            应用场景:一步步调试程序,打印变量    3、内存相关-2个        1、id()            作用:获取到对象的内存地址            参数:对象、变量            返回:内存地址            应用场景:可以用于确定两个变量是否指向同一个对象                      a1 is a2 如果返回的是True                      a1和a2都指向了同一个内存空间,a1和a2分别是同一个内存空间的不同别名                      a1和a2并没有在内存中开辟2个不同的内存空间        2、hash()            作用:获取到对象的哈希值            参数:不可变对象(int str bool tuple)            返回:int(19位数字或者19位数字前面加一个-)            应用场景:                可变对象(不可哈希的):list dict set                不可变对象(可哈希的):int str bool tuple frozenset                只有不可变对象才有哈希值,可变对象是没有哈希值的                字典的key必须是不可变对象(可哈希的)    4、文件操作相关-1个        open()            作用:获取文件对象-文件句柄(类比:锅上的锅炳,锅炳可以控制锅;文件句柄可以操作文件)            参数:                参数1:文件全路径(包括文件名字)                参数2:模式mode,默认是只读r                参数3:编码方式,默认是None(即和操作系统保持一致,中文操作系统是gbk),                      一般需要指定utf-8            返回:文件对象            应用场景:                读写操作文件(包括文本文件txt csv和二进制文件excel)        相对路径小结        ..\ 表示上一级目录     例如:path1 = r'..\code1.py'        ..\..\表示上上级目录   例如:path2 = r'..\..\test.py'   这里的r是去掉转义        ..\..\..\表示上3级目录 例如:path3 = r'..\..\..\zuoye.py'    5、模块相关--1个        __import__()        用于动态加载类和函数        常用的是:import 导包    6、帮助--1个        help()        用于查看函数或者模块用途的详细说明    7、调用--1个        callable()        作用:用于检查一个对象是否是可以被调用的              如果是可以被调用的,比如:函数、类,就返回True              如果不是可以被调用的,比如:str int 类的对象,就返回False        参数:str int 类的对象、函数名、类名        返回:bool值 True或者False        应用场景:    8、查看内置属性--1个        dir()        作用:获取参数的属性、方法列表        参数:列表、字典等任意对象        返回:            返回的是一个列表            列表中是该参数的属性、方法列表        应用场景:            可以用于查看列表、字典等对象的属性和方法列表            比如:想查看列表中有多少内置方法,可以被使用四、基础数据类型相关--38个    1、和数字相关        1、数字类型            1、bool()                作用:将给定的参数,转换成布尔值,True或者False                参数:                    False:None 0 '' [] () {}                           数字0、空字符串、空列表、空元组、空字典                    True:1或者其他所有非空的(包含空格 '\r' '\n' '\t'等)                返回:                    True                    False                应用场景:                备注:                    1、bool是int的子类                    2、如果不给参数,返回的是False            2、int()                作用:将给定的参数(小数或者字符串)转换成int值                参数:                    小数:小数会直接取整,而不是四舍五入                    字符串:只能将字符串形式的数字,转换成数字,比如:'12'转成12                            而不能把'a'转成int,会报错                返回:                    int值                应用场景:                备注:                    1、如果不给参数,返回的是0                    2、参数2不写,默认是base=10;还可以按照其他进制,比如base=8            3、float()                作用:将给定的参数(整数int或者字符串形式的小数)转换成小数                参数:                    整数int                    字符串形式的小数                返回:                    小数                应用场景:                备注:                    如果不给参数,返回的是0.0            4、complex()                作用:将给定的参数,转换成复数                参数:                    参数1:实部                    参数2:虚部                返回:                    复数                应用场景:                备注:                    如果不给参数,返回的是0j        2、进制转换            1、bin()                作用:将给定的参数,转换成二进制                参数:十进制数字,整数int,不能是小数                返回:二进制的字符串-0b开头,而不是二进制数字                应用场景:                备注:            2、oct()                作用:将给定的参数,转换成八进制                参数:十进制数字,整数int,不能是小数                返回:八进制的字符串-0o开头,而不是八进制数字                应用场景:                备注:            3、hex()                作用:将给定的参数,转换成十六进制                参数:十进制数字,整数int,不能是小数                返回:十六进制的字符串-0x开头,而不是十六进制数字                应用场景:                备注:        3、数学运算            1、abs()                作用:将给定的参数,转换成绝对值                参数:int或者float                返回:正数--去掉了负号                应用场景:                备注:            2、divmod()                作用:返回商和余数                参数:                    参数1:被除数                    参数2:除数                返回:商和余数组成的元组  (a//b,a%b)                应用场景:                备注:            3、round()                作用:返回小数的四舍五入                参数:                    参数1:小数                    参数2:保留几位小数                返回:小数                应用场景:小数点后位数较多,保留几位小数                备注:            4、pow()                作用:求幂                参数:                    参数1:a                    参数2:b                返回:返回a的b次幂,等效于a**b                应用场景:                备注:            5、sum()                作用:求和                参数:                    参数1:Iterable:列表、元组、字典等                    参数2:不写默认是0,                返回:返回Iterable中元素的和,如果参数2是3,最后的和还需要加3                应用场景:用于计算累加,列表中元素的和                备注:            6、min()                作用:求最小值                参数:                    1、多个参数:可以是多个数字                    2、一个参数:多个数字组成的列表                返回:最小值int或者float                应用场景:                备注:            7、max()                作用:求最大值                参数:                    1、多个参数:可以是多个数字                    2、一个参数:多个数字组成的列表                返回:最大值int或者float                应用场景:                备注:    2、和数据结构相关        1、数据集合            1、字典                dict()                作用:创建一个字典                参数:                    方式1:关键字                    方式2:Iterable                    方式3:映射函数                返回:字典                备注:            2、集合                1 set()                    作用:创建一个集合,把参数转换成集合                    参数:                        Iterable                    返回:集合(无序,去重)                    备注:集合的本质是没有value,只有key的字典                    例子:                        s1 = 'bob'                        s2 = 'alexab'                        set1 = set(s1)  #把字符串转换成集合                        print(set1)  #{'b', 'o'}  #去重和无序                        set2 = set(s2)                        print(set2)  #{'b', 'x', 'l', 'e', 'a'}                        print(set1 & set2)   #{'b'}  求交集 (并且,两个集合都有的)                        print(set1 | set2)  #{'x', 'o', 'e', 'a', 'l', 'b'}  求并集(合集)                        print(set2 - set1)  #{'l', 'e', 'a', 'x'}  求差集                2 frozenset()                    作用:创建一个不可变(冻结)的集合                    参数:                        Iterable:列表、元组、字典                    返回:                        不可变的集合                    备注:冻结的意思是:元素不能添加和删除                    例子:                        s1 = 'bob'                        print(frozenset(s1))  #创建一个不可变的集合(不能添加或者删除元素)                        #类比:set和frozenset list和tuple                        #frozenset({'b', 'o'})        2、相关内置函数            1 len()                作用:返回一个对象中元素的个数                参数:                    列表、元组、字符串等Iterable                返回:                    个数int                备注:                例子:                    li1 = [1,2]                    print(len(li1)) #2  列表中元素的个数            2 sorted()                作用:对可迭代对象进行排序                参数:                    可迭代的对象Iterable                返回:                    排序后的可迭代对象                备注:                    sort()和sorted()的区别                    1 sort()是列表的内置方法,排序的同时,将原列表修改了                    2 sorted()的参数不仅仅是列表,还可以是字符串等其他Iterable的对象                      排序的同时,新产生了一个新的排序后的对象,原对象没有任何改变                例子:                    li2 = [1,3,2]                    li3 = sorted(li2)  #reverse不写默认是False 升序                    print(li3)  #[1, 2, 3]                    li4 = sorted(li2,reverse = True) #倒序                    print(li4)  #[3, 2, 1]                    li2 = [1,3,2]                    li5 = sorted(li2,key=lambda x:x*-1)  #通过参数key 进行倒序                    #key参数还可以用于指定对象中的一个元素进行排序                    print(li5)  #[3, 2, 1]                    li6 = sorted(li2,key=lambda x:x)                    print(li6)  #[1, 2, 3]  #通过参数key 进行升序                    li2 = [1,3,2]                    li2.sort()  #这里返回值是None  注意                    print(li2)  #[1, 2, 3]            3 enumerate()                作用:将一个可迭代对象中元素的索引号和元素本身作为一个元组,元组作为新列表的元素                参数:                    iterable                返回:                    枚举对象                备注:            4 all()                作用:可迭代对象中元素全部是True,结果才是True                参数:                    Iterable                    元素中含有0 空字符串'' None Fasle ,结果就是False                    注意:列表或者元组的元素是空白,结果是True                返回:                    布尔值 bool True或者False                备注:            5 any()                作用:可迭代对象中元素有一个是True,结果就是True                参数:                    Iterable                    元素中:0 空字符串'' None Fasle ,上述4个元素是False,其余都是True                返回:                    布尔值 bool True或者False                备注:            all()和any()的区别            1 前者是iterable中的元素全部是True,结果才是True            2 后者是iterable中的元素只要有一个是True,结果就是True            3、元素中0 '' None False是False,其余都是True            4、注意点                空列表(列表中的元素是空白)、空元组、空字符串,all()函数返回True--特殊点                空列表(列表中的元素是空白)、空元组、空字符串,any()函数返回False            6 zip()                作用:把iterable1和iterable2的第一个元素组成一个元组,                      把iterable1和iterable2的第2个元素组成一个元组,.。。元组作为列表的元素                      以iterable中最少的元素为准                参数:                    参数1:可迭代对象                    参数2:可迭代对象                返回:                    迭代器                备注:                例子:                    li1 = [1,2]                    li2 = [3,4]                    ret1 = zip(li1,li2)                    print(ret1)  #<zip object at 0x00000021A24E4788>                    print(list(ret1))  #[(1, 3), (2, 4)]            7 filter()            8 map()        3、序列            1、列表和元组--2个                1 list()                    作用:将可迭代对象-iterable转换成列表                    参数:                        可迭代对象-iterable                    返回:                        列表                    备注:                2 tuple()                    作用:将可迭代对象-iterable转换成元组                    参数:                        可迭代对象-iterable                    返回:                        元组                    备注:            2、相关内置函数--2个                1 reversed()                    作用:将一个序列(iterable)反转,返回一个迭代器                    参数:                        iterable:str list tuple range()等  dict set open()                    返回:                        迭代器                    备注:                        li1 = [1,3,2]                        it1 = reversed(li1)  #将可迭代对象-iterable的元素进行反转(注意:反转不是倒序)                        print(it1)  #                        print(list(it1))  #[2, 3, 1]  #迭代器转换成列表                2 slice()                    作用:用于切片,用的较少                    推荐:s1[1:5:2] li1[1:5:2]                    备注:                        字符串或者列表反转                        方法1:  最简洁                            s1[::-1]                            li1[::-1]                        方法2:                            reversed(li1)                            reversed(s1)            3、字符串--9个                1 str()                    作用:将数据转换成字符串                    参数:                        任意对象                    返回:                        字符串                    备注:                2 format()                    作用:进行格式化                    参数:                        参数1:可以是字符串、数字、小数                    返回:                        字符串                    备注:                        #01 字符串                        print(format('jack','<20')) #字符串左对齐,一共是20个字符                        print(format('jack','>20')) #字符串右对齐,一共是20个字符                        print(format('jack','^20')) #字符串居中对齐,一共是20个字符,jack左右各8个字符                        print('----------------------6-1 format() 字符串')                        #02 数值--进制转换                        print(format(3,'b'))  #11 十进制数字3转换成二进制数字11的字符串形式                        print(type(format(3,'b'))) #<class 'str'>                        print(format(8,'o'))  #10 十进制数字8转换成八进制数字10的字符串形式                        print(format(16,'x')) #10 十进制数字16转换成十六进制数字10的字符串形式                        print(format(15,'X')) #F 十进制数字15转换成十六进制数字F(大写的)                        print(format(97,'c')) #a  十进制数字97转换成ascii码表(ascii属于unicode)中的字母                        print('----------------------6-2 format() 进制转换')                        #03 浮点数--小数                        print(format(1.2354,'0.2f'))  #1.24  保留2位小数,四舍五入                        print(type(format(1.2354,'0.2f')))  #<class 'str'>                        print(format(12345678,'e'))  #1.234568e+07 科学计数法(默认保留6位小数)                        print(format(1235567,'0.2e'))  #1.24e+06 科学计数法(保留2位小数,e小写)                        print(format(1235567,'0.2E'))  #1.24E+06 科学计数法(保留2位小数,e大写)                        print('----------------------6-3 format() 小数')                3 bytes()                    作用:把字符串转换成bytes类型(字节)                    参数:                        字符串、整数、iterable                    返回:                        字节                    备注:                        #把字符串转换成字节(utf-8编码)                        s1 = '你好'                        s2 = 'jack'                        li1 = [1,2,3]                        print(bytes(s1,encoding='utf-8'))  #b'\xe4\xbd\xa0\xe5\xa5\xbd' b开头表示字节                        #一个汉字(中文字符)是3个字节--utf-8中                        print(bytes(s2,encoding='utf-8')) #b'jack'                        #一个英文字母是一个字节--utf-8中                        print(bytes(li1))  #b'\x01\x02\x03'                        print('----------------------7-1 bytes()')                        b1 = s1.encode()  #这里参数不写,默认是'utf-8'                        print(b1)  #b'\xe4\xbd\xa0\xe5\xa5\xbd'                        #将中文字符串转换(编码-压缩-加密)成字节(utf-8)                        #中文字符串就是明文,字节就是密文                        s11 = b1.decode() #这里参数不写,默认是'utf-8'                        print(s11)  #你好                        #将字节(utf-8)转换(解码-解压缩-解密)成中文字符串                        print('----------------------7-2 bytes()')                4 bytearray()                    备注:和bytes有类似,用的较少                5 memoryview()                    作用:查询字符串对应的字节(utf-8)在内存的地址                    参数:                        字符串对应的字节                    返回:                        内存的地址                    备注:                        s1 = 'jack'                        print(memoryview(s1.encode('utf-8')))                        # print(memoryview(s1)) #报错 TypeError: memoryview: a bytes-like object is required, not 'str'                        #<memory at 0x0000003D28B881C8>                6 ord()                    作用:输入字符,找到字符编码的位置-ascii,输出数字                    参数:                        字符                    返回:                        数字                    备注:                        print(ord('a')) #97  #字母a的ascii是97                        print(ord('一')) #19968  #中文字符‘一’对应的utf-8的字符编码的位置是19968                        # print(ord('一期')) #报错 TypeError: ord() expected a character, but string of length 2 found                7 chr()                    作用:把数字(字符编码的位置)转换成字符                    参数:                        数字                    返回:                        字符                    备注:                        print(chr(65))  #A  ascii中65对应的字符是'A'                        print(chr(19968))  #一 字符编码位置是19968对应的字符是'一'                8 ascii()                    作用:用于判断字符是否在ascii中                    参数:                        参数是ascii表中的字符,就返回参数本身;参数不是ascii表中的字符,就返回\u开头                    返回:                    备注:                        print(ascii('a'))  #'a'                        print(ascii('ab'))  #'ab'                        print(ascii('一')) #'\u4e00'                9 repr()                    作用:引号等原封不动的输出,转义符不起作用,取字面的意思                    参数:                    返回:                    备注:                        s1 = '祖国'                        print('我爱%s' % s1)  #我爱祖国  占位符                        print('我爱%r' % s1) #我爱'祖国' 原封不动的输出                        print('大家好,\n \t 我是jack')                        # 大家好,                        #       我是jack                        print(repr('大家好,\n \t 我是jack'))                        #'大家好,\n \t 我是jack'   原封不动的输出,引号和转义符都原样输出                        s1 ='jack'   #字符串                        print(s1) #jack  不带引号                        print(repr(s1)) #'jack'  带引号
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!