其他内置函数

1.abs函数,取绝对值

print(abs(-1))

2.all函数,判断可迭代对象是否全为真,有假直接假

假:0,'',None

print(all([1,2,'1']))
print(all([1,2,'1',0]))
print(all([1,2,'1','']))

3.any函数,判断可迭代对象是否有真,有一个真直接真

4.bin函数,将十进制转换成二进制

print(bin(3))

5.bytes函数,把一个字符串转换成字节(二进制的一个单位)的形式

name='你好'
print(bytes(name,encoding='utf-8'))
print(bytes(name,encoding='gbk'))
print(b'\xc4\xe3\xba\xc3'.decode('gbk'))

6.chr可以打印ascil码数

7.dir打印某个对象下的所有方法

print(dir(dict))

8.相除取商并取余数

可以用于做网页,总共多少页还有每页显示多少个内容,结果可以得出能分多少页还有剩多少个
print(divmod(10,3))

9.eval可以提取出字符串内的数据结构(字典)转换成字典,也可以把字符串内的数学运算做一遍

dic="{'name':'alex','abc':'cdf'}"
print(eval(dic))
d1=eval(dic)
print(d1['name'])
express='1+2*5-3'
print(eval(express))

10.hash用于进行哈希运算,可hash的数据类型即是不可变数据类型

不可hash的数据类型即是可变数据类型

print(hash('shit'))
print(hash('shit'))
print(hash('youfuckingshit'))

哈希特性:
哈希运算是不同长度的字符串都只能弄出一串相同长度的哈希值
每次运行的哈希值是不同的
相同的字符串的哈希值相同
不能从哈希值反推出原来的字符串

11.hex用于十进制转成16进制

print(hex(12))
补充:十进制转二进制用bin
十进制转八进制用oct

12.isinstance判断数据类型

print(isinstance(1,int))
print(isinstance('abc',str))
print(isinstance('abc',list))
print(isinstance('abc',dict))

13.locals当前级别的局部变量

name='dsadwtges'
def test():
age='111111111'
print(locals())
test()

14.max,min最大最小值

l=[1,3,100,-1]
print(max(l))
print(min(l))

max和min的高级用法
找出年龄最大或者最小的人和名字

age_dic={'ca_age':18,'sb2_age':20,'ddk3_age3':21}
print(max(age_dic.values()))
print(max(zip(age_dic.values(),age_dic.keys()))) #此处先放value在前面比较完,后面的就不比了

注意:max和min比较的时候,字符串按第一位的来比再到第二位再到后面
比如说a10<c1

15.zip()拉链函数,用于取出字典中的多个项目

一一对应,第一个序列和第二个序列一一对应
序列类型:列表,元组,字符串
示例1
print(list(zip(('a','b','c'),(1,2,3))))
示例2

p={'name':'alex','age':'18','gender':'none'}
print(list(zip(p.keys(),p.values())))

还有一个更高级的例子见上面的14

16.ord显示在asc码中的数字是多少

print(ord('a'))

17.pow用于取次方

print(pow(3,4))   #3的四次方

18.reversed反转列表

print(list(reversed([1,2,3,4])))

19.round四舍五入

print(round(3.5))

20.slice进行切片处理

l='hellodddd'
s1=slice(1,4,2) #从第一位到达第四位,步长是2
print(l[s1])

21.排序功能sorted

不同类型之间不能比较大小

people=[
{'name':'alex','age':1000},
{'name':'wupeiqi','age':10000},
{'name':'yuanhao','age':9000},
{'name':'zqh','age':18}
]
print(sorted(people,key=lambda dic:dic['age'])) #按照年龄来进行排序

22.sum求和函数

23.vars查看某个对象的下面的所有的方法,并把所有的方法显示成字典的格式

print(vars(int))

24.import导入模块,相当于导入py文件

首先准备好一个py文件名字叫做importtest

def sayhello():
print('hello')

两种方式导入
第一种是直接导入名字

import importtest
importtest.sayhello()

第二种是导入字符串形式的模块名

md=__import__('importtest')
md.sayhello()

文件处理open

文件处理流程:打开文件,得到文件句柄并赋值给一个变量
通过句柄对文件进行操作
关闭文件
示例:
首先准备好一个utf8编码的txt文件
接着可以按照以下的代码来进行调用

fil=open('文件','r',encoding='utf8')     #r代表读操作,且打开时按utf8
print(fil.readable()) #判断文件是否可以读
data=fil.read()
print(data)
fil.close() #用完要关闭文件,不然会一直占用内存
一次读一行readline
fil=open('文件','r',encoding='utf8')   #r代表读操作,且打开时按utf8
print(fil.readline())
print(fil.readline()) #每次读完一行光标会跟进到下一行,下次读取时会从光标位置开始而不是从头
print(fil.read())
fil.close() #用完要关闭文件,不然会一直占用内存
写操作,会把原来的删除掉然后重新覆盖写的内容
fil=open('文件1','w',encoding='utf8')   #w代表写操作,且打开时按utf8
fil.write('1111\n')
fil.write('1221\n')
fil.write('33333333333333\n')#注意,写入的内容必须是字符串
fil.close() #用完要关闭文件,不然会一直占用内存
追加操作,直接写到文件的最后
fil=open('文件1','a',encoding='utf8')   #w代表写操作,且打开时按utf8
fil.write('写到文件的最后')
fil.close() #用完要关闭文件,不然会一直占用内存
读写模式'r+'

原文件为:
abcde
啊比西递一
修改和显示要求:替换c为sssss,并在最后加上修改完成

fil=open('文件3','r+',encoding='utf8')   #w代表写操作,且打开时按utf8
di1=fil.readline()
di2=fil.readline()
fil.close() #用完要关闭文件,不然会一直占用内存
data1=str(di1)
data1=data1[0:2]+'sssss'+data1[2:4]
fil=open('文件3','r+',encoding='utf8') #w代表写操作,且打开时按utf8
fil.write(data1)
fil.write("\n")
fil.write(di2)
fil.write("\n")
fil.write("修改完成")
fil.close() #用完要关闭文件,不然会一直占用内存

文件处理b模式,rb指的是读取原生的二进制文件

原理:字符串—>编码encoding—>二进制bytes
二进制bytes—>解码decoding—>字符串

1.二进制读取

importtest里面的内容

def sayhello():
print('hello')
#本函数用于输出hello

程序
f=open('importtest.py','rb')
data=f.read()
print(data)
f.close()
#上面是用二进制来显示出上面的那个文件
#如果要正常显示,首先要注意到那个文件的编码方式是utf8
#因此在解码的时候也应该来使用utf8
print('\n',data.decode('utf8'))

2.二进制写入

f=open('test22.py','wb')  #wb指的是需要用二进制来写入
f.write(bytes('我是谢特',encoding='utf8'))

3.刷新做出的操作flush()

4.读取当前的光标位置tell()

f=open('importtest.py','rb')
f.readline()
print(f.tell()) #注意最后还有换行符也占据两个字节
f.close()

5.控制光标移动seek()

f=open('importtest.py','r',encoding='utf8')
f.seek(12) #seek(12)将光标移动到12的位置
print(f.tell()) #注意最后还有换行符也占据两个字节
print(f.read(5)) #read后面加数字可以控制读几个字节
f.close()

6.截取切片操作truncate()

f=open('truncat.py','w',encoding='utf8')
f.seek(3) #seek(12)将光标移动到12的位置
f.truncate(10)
f.close()

7.seek的高阶用法

seek文本文件
123
323
asdsad

默认模式(按绝对位置seek)

f=open('seek','w',encoding='utf8')
print(f.tell())
f.seek(10)
print(f.tell())
f.seek(3)
print(f.tell())
f.close()

相对模式(按相对位置seek)

f=open('seek','rb')    #注意要是使用相对模式,必须用'rb',不能用其他
print(f.tell())
f.seek(10,1)
print(f.tell())
f.seek(3,1)
print(f.tell())
f.close()

倒序模式(按相对位置seek)

f=open('seek','rb')    #注意要是使用相对模式,必须用'rb',不能用其他
print(f.tell())
f.seek(10,2)
print(f.read())
f.close()

8.将文件内所有内容按换行符来形成一个列表readlines

日志文件
xiaoming  sb
axi  sb1
msudias  nt
以下内容可以取出日志文件的最后一节

f=open('日志文件','rb')
data=f.readlines()
print(data[-1].decode('utf8'))

Py其他内置函数,文件修改的更多相关文章

  1. 第三天 函数 三元运算 lambda表达式 内置函数 文件操作

    面向过程: 直接一行一行写代码,遇到重复的内容复制黏贴. 不利于代码阅读 代码没有复用 面向对象 将代码块定义为函数,以后直接调用函数 增强了复用性 函数的定义方法 def 函数名(传递参数): 函数 ...

  2. python基础(内置函数+文件操作+lambda)

    一.内置函数 注:查看详细猛击这里 常用内置函数代码说明: # abs绝对值 # i = abs(-123) # print(i) #返回123,绝对值 # #all,循环参数,如果每个元素为真,那么 ...

  3. python匿名函数 高阶函数 内置函数 文件操作

    1.匿名函数 匿名就是没有名字 def func(x,y,z=1): return x+y+z 匿名 lambda x,y,z=1:x+y+z #与函数有相同的作用域,但是匿名意味着引用计数为0,使用 ...

  4. 跟着ALEX 学python day3集合 文件操作 函数和函数式编程 内置函数

    声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/  一. 集合 集合是一个无序的,不重复的数据组合,主要作用如下 1.去重 把一个列表变成集合 ,就自动去重 ...

  5. lambda表达式、内置函数、进制和文件操作

    lambda表达式 定义函数(普通方式)def f1(): return 123 f2 = lambda : 123 def f3(a1,a2): return a1+a2 定义函数(lambda表达 ...

  6. Python之路第三天,基础(3)-set,函数,内置函数,文件,三元运算,lambda

    set集合 集合是一个无序的,不重复的元素集合. 集合的创建: name_set = {'tom','jerry','alex','rose'} 或 name_set = set(['tom','je ...

  7. python内置函数,lambda表达式,文件读写

    Lambda表达式: lambda是个匿名函数,自动加return返回 a={ 6:2,8:0, 1:4,-5:6,99:11,4:22} print(sorted(a.items()))#按key排 ...

  8. py基础3--函数,递归,内置函数

    本节内容 函数基本语法及特性 参数与局部变量 返回值 嵌套函数 递归 匿名函数 函数式编程介绍 高阶函数 内置函数 1. 函数基本语法及特性 背景提要 现在老板让你写一个监控程序,监控服务器的系统状况 ...

  9. python基础-4 函数参数引用、lambda 匿名函数、内置函数、处理文件

    上节课总结 1.三元运算 name=“name1”if 条件 else “name2” 2.深浅拷贝 数字.字符串 深浅,都一样 2.其他 浅拷贝:只拷贝第一层 深拷贝:不拷贝最后一层 3.set集合 ...

随机推荐

  1. 快速理解Python异步编程的基本原理

    第一个例子 假设你需要用电饭煲煮饭,用洗衣机洗衣服,给朋友打电话让他过来吃饭.其中,电饭煲需要30分钟才能把饭煮好,洗衣机需要40分钟才能把衣服洗好,朋友需要50分钟才能到你家.那么,是不是你需要在这 ...

  2. 歌曲网站,教你爬取 mp3 和 lyric

    从歌曲网站,获取音频和歌词的流程: 1, 输入歌曲名,查找网站中存在的歌曲 id 2, 拿歌曲 id 下载歌词 lyric 简单的 url 拼接 3, 拿歌曲 id 下载音频 mp3 先用一个 POS ...

  3. Java基础进阶:APi使用,Math,Arrarys,Objects工具类,自动拆装箱,字符串与基本数据类型互转,递归算法源码,冒泡排序源码实现,快排实现源码,附重难点,代码实现源码,课堂笔记,课后扩展及答案

    要点摘要 Math: 类中么有构造方法,内部方法是静态的,可以直接类名.方式调用 常用: Math.abs(int a):返回参数绝对值 Math.ceil(double a):返回大于或等于参数的最 ...

  4. net core 3.1使用ElasticSearch 全文搜索引擎

    ElasticSearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene 基础之上. Lucene 可以说是当下最先进.高性能.全功能的搜索引擎库,无论是开源还是私有. ...

  5. APK 的前世今生:从 Android 源码到 apk 的编译打包流程

    最近想要研究热修复的原理,并自己实现一套简单的热修复框架(音视频的坑刚挖好就又挖另一个坑了2333),已经在看书入门 c++,方便后续查看业内一些知名热修复框架的源码,另外在涉及编译期/运行时修改代码 ...

  6. mac 清理磁盘空间

    128G mac真的用的很崩溃,发现系统占用80G ,肯定是有问题的,发现了是缓存的原因,删除后好多了,记录一下. 从管理里进入之后,从文稿中选择"文件浏览器"可以看到每一个文件夹 ...

  7. javap使用

    在反编译前你当然需要先编译这个类了进入当前目录下:javac -g SynchronizedTest.java(使用-g参数是因为要得到下面javap -l时的输出需要使用此选项) 编译完成后,我们在 ...

  8. 80%的学校还在给新生上C语言,它们OUT了吗?

    大家好,最近有小伙伴在后台问我,大一新生学校在教C语言,是不是已经过时了?第一门语言应该学什么比较好?大学期间什么课程对于毕业之后的从业帮助比较大呢? 今天这篇文章就和大家简单聊聊这个问题. 关于我 ...

  9. Fragment学习

    利用Fragment可以动态的加载页面,减少Activity的数量. 便于开发 类似与html中FragmentSet一样 嵌套在一起,使每个页面为独立的 代码如下: package com.exam ...

  10. Spark UDAF实现举例 -- average pooling

    目录 1.UDAF定义 2.向量平均(average pooling) 2.1 average的并行化 2.2 代码实现 2.3 使用 参考 1.UDAF定义 spark中的UDF(UserDefin ...