• 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'xe4xbdxa0xe5xa5xbd'
    # 
    # #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
    ')   #写入内容
    # f.writelines(['alex
    ','zhaolei皮一下','zhoujielun
    ','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('第二行前面皮一下
    ')    #为什么只读取了一行,补充书写就到了最后面呢
    #                                      #写入方式为直接覆盖的方式
    # 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,出现了指针地址

    睡觉喽。。。

  • 相关阅读:
    不懂不可耻,可耻的是每当遇到不懂的东西不是想办法去学去了解而是极力掩饰。
    在咱学校的论坛上看到的一句话,觉得……我们都在等待某个人,等到累了,就随便牵起某人的手,默默地走进礼...
    在Linux下用Virtualbox虚拟机安装Windows XP
    大学里的挂科是对考前三天不用功的惩罚.这是教算法的赵PZ讲的,窃以为很有道理。可是接下来的十一天里我...
    壮哥!才发现你博客里这么多好东西,慢慢欣赏了,哈哈~~~~~~~~~~
    哥们现在用的什么?ghs不是又被封了吗
    提取字符串中的数字并分别保存
    十一天八考之路
    WPF使ListBox支持手势多选功能
    动手实现扩展属性为对象动态添加获取数据(续)
  • 原文地址:https://www.cnblogs.com/xiaoyaotx/p/12399153.html
Copyright © 2020-2023  润新知