-
继承类super用法
super(子类, self).父类方法(父类属性1,父类属性2)
查看全部 -
匿名函数使用lambda定义:lambda x: x * x,就可以完成原来显式定义的f(x)函数的功能,
冒号前面的x表示匿名函数的参数,
后面的是一个表达式,
匿名函数有个限制,就是只能有一个表达式,不写return,
返回值就是该表达式的结果。
查看全部 -
对字符串排序时,有时候忽略大小写排序更符合习惯。请利用sorted()高阶函数,实现忽略大小写排序的算法。
输入:['bob', 'about', 'Zoo', 'Credit']
输出:['about', 'bob', 'Credit', 'Zoo']
思路:将元素统一成小写或者大写,再排序
sorted接受key参数,用来指定排序的字段,key的值是一个函数,接受待排序列表的元素作为参数,并返回对应需要排序的字段。
sorted(需要排序的内容,key,reverse = True(降序)/False(升序))
用key的内容来排序,然后一一对应到需要排序的内容予以排序。
l5 = ['bob', 'about', 'Zoo', 'Credit']
def name1(item):
return item.upper()
print(sorted(l5,key = name1))
key的内容是l5经过函数后的内容['BOB', 'ABOUT', 'ZOO', 'CREDIT'],
对key进行排序,得到['ABOUT', 'BOB', 'CREDIT','ZOO'],
逐一对应给实际要排序的内容['bob', 'about', 'Zoo', 'Credit']进行排序。查看全部 -
filter函数
filter(函数1,list)把list传入函数1,得到结果,进行判断,输出True的值,去掉False的值
Python把0、空字符串和None看成False,其他数值和非空字符串都看成True
.strip()
删除首尾的空白字符(包括'\n', '\r', '\t', ' '),在字符串中间的不删除
加参数则删除首尾的对应参数查看全部 -
from functools import reduce
def a(x,y):
return x * y
l2 = [1,3,5,7,9]
print(reduce(a,l2))
reduce函数
reduce(函数1(参数1,参数2),list,初始值)
1、py3的reduce函数是在functools中,调用前需要先import
2、reduce函数要求调用的函数是接收2个参数
3、reduce可以设置初始值,可以不设置查看全部 -
map()函数
定义函数1
for item in map(函数1,要进行函数计算的list)查看全部 -
有必要注意的是,返回函数和返回函数值的语句是非常类似的,
返回函数时,不能带小括号,
返回函数值时,则需要带上小括号以调用函数。
查看全部 -
__slots__的目的是限制当前类所能拥有的属性,避免因为外部属性的操作导致类属性越来越难以管理查看全部
-
如果一个类表现得像一个list,想使用len()函数来获取元素个数时,则需要实现__len__()方法查看全部
-
在定义 Person 类时,可以为Person类添加一个特殊的__init__()方法,当创建实例时,__init__()方法被自动调用,我们就能在此为每个实例都统一加上以下属性查看全部
-
with关键字对资源进行访问的场合,会确保不管在使用过程中是否发生异常,都会执行必要的“清理”的操作,释放资源,比如文件使用后自动关闭等等。
with open(文件路径文件名,'r/w/a')as 变量名:
查看全部 -
with关键字,对资源访问后执行清理操作,释放资源
with open(文件路径文件名,'r/w/a')as 变量名:
查看全部 -
with关键字,对资源访问后执行清理操作,释放资源
with open(文件路径文件名,'r/w/a')as 变量名:
查看全部 -
追加内容:
a打开文件并在末尾追加内容
ab以二进制格式打开文件在末尾追加内容
a+打开文件并使用追加进行读写
追加内容后,游标是在内容末尾,此时使用readlines(),会返回空列表
文件名.seek()
移动文件的游标位置,它接受一个参数,表示文件的位置,
0:文件首部,
1:当前位置,
2:文件尾部
通过seek()可以把文件游标移动到文件首部但不删除文件的内容
查看全部 -
字符串反转可以使用切片实现: reverse = str_[::-1]
f = open('test.txt', 'r') #打开文件 lines = f.readlines() #读取文件内容,保存在lines变量中 f1 = open('test1.txt', 'w') #打开文件2 for line in lines: #对line内容进行遍历 line = line[::-1] #对遍历的内容进行反转 f1.write(line) #把反转的内容写入文件2 f1.close() f.close()
查看全部 -
可以把路径先定义到变量path内,后边直接调用path,文件名一定要带后缀
如果路径不存在,会先创建文件path = r'E:\unittest\text.txt' f = open(path,'w') f.write('hello,python') f.close() a = open(path,'r') b = a.read(2) #read()括号内的数字表示要读取的字符数量 print(b) #输出he a.close() #文件打开后一定要有关闭操作
readline() #括号内不填写是读取一行的内容,下次执行会读取到下一行
readlines()#读取多行的内容,返回一个list,不填写参数是返回所有行;有参数的下一次执行会顺着读取后行的内容
readlines(hint) #1、如果hint参数小于第一行字符数,返回第一行,大于第一行字符数小于(第一行+第二行)字符数,返回第一第二行,以此类推2、如果读取完最后一行后又调用带hint的readlines,会返回空列表
3、重复调用带hint的readlines时,同一行不会读取到两次,下一次的调用一定是从还未读取过的新的一行开始
eg.
文件内容
hello,python
hello,world
hello,boys and girlsa1 = open(path,'r') b1 = a1.readlines() #hint = 12,=>['hello,python\n'] #hint = 13,=>['hello,python\n', 'hello,world\n'] #hint = 0或者-1或者空,=>['hello,python\n', 'hello,world\n', 'hello,boys and girls'] print(b1) a1.close()
a1 = open(path,'r') b1 = a1.readlines(12) b2 = a1.readlines(12) print(b1) print(b2) a1.close() #输出结果: #['hello,python\n'] #['hello,world\n', 'hello,boys and girls'] #b2的hint=11,输出第二行,hint>11,输出第二第三行
如果readline和readlines同时存在
a1 = open(path,'r') b1 = a1.readlines(12) b2 = a1.readlines(11) b3 = a1.readline() print(b1) #=>['hello,python\n'] print(b2) #=>['hello,world\n'] print(b3) #=>hello,boys and girls a1.close()
如果read,readline,readlines同时存在
a1 = open(path,'r') b3 = a1.read(2) b1 = a1.readline(30) b2 = a1.readlines(11) print(b3) print(b1) print(b2) a1.close() 输出结果 he llo,python ['hello,world\n']
readline和readlines会从read读取后剩下的字符开始读取,readlines对字符的计数也是从剩下的开始
查看全部 -
while True: s = input('>>> ') if s == 'break': #不输入break,则会一直处于进行计算状态 break result = eval(s) print(result)
eval()
可以将字符串转化为等值结果
eval(expression[, globals[, locals]])
参数
expression -- 表达式。
globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
返回值
返回表达式计算结果。
查看全部
举报