Python之旅的第3²天(内置函数文件基本打开关闭)
Posted 崆峒山肖大侠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之旅的第3²天(内置函数文件基本打开关闭)相关的知识,希望对你有一定的参考价值。
今天其实遇到了一些不顺心的事情,耽搁了学习进程,但最终来说,老天爷是懂你的,今天心情不好,内容不多,但是是真他妹的难啊,测试出来的东西又和看的不一样,但愿能和昨天一样,一觉睡醒,结果正常了,哈哈哈。
上干货,内置方法:
abs 取绝对值 # print(abs(-1)) #---->结果得:1 # # all 对可迭代对象中每个元素进行bool运算,全部为True或可迭代对象为空返回True # test = [\'alex\',\'10\'] # print(all(test)) #返回结果为True # test1 = [] # print(all(test1)) #返回结果为True # test2 = [\'\',18] # print(all(test2)) #返回结果为Flase # # any 对可迭代对象中每一个进行bool运算,只要其中一个为真,则返回True # 与上面的all正好相反 # test = [\'\',18] # print(any(test)) #返回结果为True # test1 = [\'\',{},0] # print(any(test1) #返回结果为Flase # # bin 十进制转为二进制 # hex 十进制转为十六进制 # oct 十进制转为八进制 # n = 2020 # # print(bin(n)) #0b11111100100 0b表示二进制数 # # print(hex(n)) #0x7e4 0x表示十六进制数 # # print(oct(n)) #0o3744 0o表示八进制数 # # #bytes 将字符串转换为字节形式 # name = \'你好\' # n = bytes(name,encoding = \'utf-8\') # print(n) #encoding表示转换为字节形式对应的码表 # #结果为b\'\\xe4\\xbd\\xa0\\xe5\\xa5\\xbd\' # # #decode 将字节转换为文字,与上面bytes正好相反,转码解码参考一定要一样哦 # test_name = n.decode(encoding = \'utf-8\') # print(test_name) # # chr 输出数字对应的ASCII码 # print(chr(98)) #输出结果为b # # dict 字典 # dir 显示某一对象下面的方法 # print(dir(tuple)) #---->输出元组对象下的所有方法 # # divmod 同时计算商和余数 # print(divmod(10,3)) #------>输出结果为(3, 1) # # eval 提取字符串中包含的数据结构 # test = "{\'name\':\'alex\',\'age\':\'18\'}" # print(eval(test)) #----->{\'age\': \'18\', \'name\': \'alex\'} # n = dict(eval(test)) #eval出来的是一个迭代器,稍微转一下才能正式调用方法 # for k , v in n.items(): # print(k,v) #此时n便成为一个可迭代的字典 # #获取了其中包含的字典数据类型 # str_test = \'1+2*(3/3-1)-2\' # n = eval(str_test) # print(n) #---->得到运算结果-1.0 # # float 返回浮点值 # # hash 对可哈希的不可变类型进行哈希运算 # hash值的特点:固定不可变,不随字符串长度增加而明显增加,无法根据hash值反推文本内容,内容不变hash不会改变(可用于文件检测) # # help 查看某一方法的详细使用解释 # print(help(map)) #输出内置函数map的解释,全是英文,我表示看不懂 # # isinstance 判断数据是否为对应数据类型 # print(isinstance(\'hello,world\',str)) #返回结果为True # # locals 显示当前所有的局部变量 # globals 显示当前所有的全局变量 # # zip 使两个可迭代对象一一对应,两个元素个数不同时,以少的为准,对应完了就结束了 # a = [\'a\',\'b\',\'c\',\'d\'] # b = [1,2,3] # print(list(zip(a,b))) #输出结果:[(\'a\', 1), (\'b\', 2), (\'c\', 3)] # 也可以使字典中k,v值一一对应 # test = {\'age\': \'18\', \'name\': \'alex\'} # print(list(zip(test.keys(),test.values()))) #输出结果:[(\'age\', \'18\'), (\'name\', \'alex\')] # # max 求出最大值的作用 # 两个特点:输入可迭代对象,不同类型不能进行比较,默认从第一个值开始比较,如分出结果就不继续比下去了 # 相当于做了一个for循环进行挨个比较 # # max的初级阶段使用 # list_test = [1,24,56,3,100] # print(max(list_test)) #输出结果100 # # max的中级使用 # list_test = [(\'a\', 1), (\'b\', 2), (\'c\', 1)] # print(max(list_test)) #输出结果为(\'c\', 1) # # 接下来是max的高阶模式,字典中比较数据 # pep_list = {\'alex\':18,\'zjl\':20,\'axin\':40,\'zhaolei\':18} # print(list(max((zip(pep_list.values(),pep_list.keys()))))) # 输出结果为[40,\'axin\'] # # max的最高级玩法,可以在后面输入方法 # 需求:求出下面字典中年龄最大的人 # list_test = [ # {\'name\':\'alex\',\'age\':18}, # {\'name\':\'zjl\' ,\'age\':28}, # {\'name\':\'zhao\',\'age\':33}, # {\'name\':\'kobe\',\'age\':40}, # ] # # print(max(list_test,key = lambda dic : dic[\'age\'])) # 输出结果为{\'name\': \'kobe\', \'age\': 40} # # 此处lambda dic : dic[\'age\']的作用是将list_test中每个元素(即字典)中age对应的数值取出来 # 和下面的循环是一个意思 # rec = [] # for item in list_test: # rec.append(item[\'age\']) # print(rec) #取出了list_test中所有age对应的值 # # reversed 反转序列 # test = [1,2,3,4] # print(list(reversed(test))) #输出结果:[4, 3, 2, 1] # print(test) #输出结果:[1, 2, 3, 4] # # ord 输出字符对应的ASCII码 # pow 可填写两个或三个参数 # print(pow(2,3)) #输出结果为8,等同于2的3次方 # print(pow(2,3,3)) #输出结果为2,等同于2的3次方,再除以3取余 # # round 对小数进行四舍五入 # print(round(4,436)) #输出结果为4 # # slice 切片保存 slice(起始,结束,步长) # l = \'hello\' # s1 = slice(3,5,1) #把切片保存到s1 # print(l[s1]) #输出结果为\'lo\',等同于l[3,5] # # sorted 排序,执行过程类似于max和min,默认从小到大排序,不同类型不能排序,其本质就是比大小 # sorted 也是可以导入方法的 # list_test = [ # {\'name\':\'alex\',\'age\':40}, # {\'name\':\'zjl\' ,\'age\':28}, # {\'name\':\'zhao\',\'age\':18}, # {\'name\':\'kobe\',\'age\':40}, # ] # print(list(sorted(list_test,key = lambda dic : dic[\'age\']))) # # sum 对可迭代对象进行求和 # type 查看数据对应的类型 # vars 没有参数时显示本地变量,或将所有方法对应为字典输出 # print(vars()) #用到的时候再详细补充 # __impot__ 导入文件,可导入字符串类型,import不能导入,但最终import都是引入了__import__
下面是介绍了几个简单的文件入门操作:
#文件的读取、书写、追加以及r+模式可读可写(建议浏览:https://www.cnblogs.com/linhaifeng/articles/5984922.html) #r:只读 w:只写 a:追加 r+:可读可写 # 读取文件测试 # f = open(\'test\',\'r\',encoding = \'utf-8\') #注意设置读取所参考的编码表 # test_r = f.read() #读取文件内容 # print(test_r) # print(f.readable()) #查看文件是否可读 返回True # #文件从前到后只读取一次,前面出现了f.read,则此处光标已经在文档最后了 # print(\'第一行的内容是:\',f.readline(),end = \'\') #只读取文件中的一行内容,同时光标下移 # print(\'第二行的内容是:\',f.readline(),end = \'\') # f.close() # 写入文件的测试 # 写入文件的内容必须都是字符串的形式,不然系统就会报错 # f = open(\'test\',\'w\',encoding = \'utf-8\') #此处所输入的文件名如果在本级列表存在,则覆盖掉原有文件 # #如果不存在则新创建一个文件 # print(f.writable()) #显示文件是否可写入 返回True # f.write(\'hello world\\n\') #写入内容 # f.writelines([\'alex\\n\',\'zhaolei皮一下\',\'zhoujielun\\n\',\'kobe\']) #貌似只有这个地方才可以传入列表 # f.close() # 追加模式的操作(常用来作为访问日志,可用于记录网站访问的日志) # f = open(\'test\',\'a\',encoding = \'utf-8\') # print(f.readable()) #返回值为False # f.write(\'第二行修改了\') #追加模式不能进行文件读取,将所输入的内容追加在文件最后 # f.close() # r+可读可写模式 # f = open(\'test\',\'r+\',encoding = \'utf-8\') # print(f.readable()) #可被读取,返回True # print(f.writable()) #可被写入,返回True # # print(\'第一行的内容:\',f.readline(),end = \'\') #此时读取光标已经移动到第二行 # f.writelines(\'第二行前面皮一下\\n\') #为什么只读取了一行,补充书写就到了最后面呢 # #写入方式为直接覆盖的方式 # f.close() #with自动打开和关闭 #书写格式 # with open(\'test\',\'r\',encoding = \'utf-8\') as f ,\\ # open(\'text_new\',\'w\',encoding = \'utf-8\') as d: # test_l = f.read() # print(test_l) #不能直接打印f.read,出现了指针地址
睡觉喽。。。
以上是关于Python之旅的第3²天(内置函数文件基本打开关闭)的主要内容,如果未能解决你的问题,请参考以下文章
Python之旅的第15天(osjsonsys模块,模块引入补充)