双休或者放假期间,我就适合不工作然后学点自己想学的、感兴趣的。[捂脸]
1. map()
map()用于对容器中元素进行映射,省掉了遍历这一步,很方便。
def f(x):
return x * 2
data = [1, 2]
a = f(data)
print(a)
b = map(f, data)
print(b)
c = list(map(f, data))
print(c)
d = []
for i in data:
y = f(i)
d.append(y)
print(d)
- 如果直接用list相乘,是对list中的元素重复,而不是进行映射;
- map之后形成的是一个map object。如果要变为list还需要进行转换。
2. filter()
filter()用于对容器中的元素进行过滤处理,同样不用去遍历每个元素。
def f(x):
return x > 3
data = [2, 5, 6, 9, 3, 2, 1]
a = list(filter(f, data))
print(a)
3. 异常机制
所谓异常机制,就是指程序出现问题时依然可以正确的执行剩余的程序,而不会因为异常而终止程序执行。 我一般用try–except语句,但处理方式有很多,比如:
- try–多个except:
- try–except–else:
如果try没有异常,则执行else,如果try异常,则执行except,不再执行else。 - try–except–finally:
finally无论是否发生异常都会被执行,通常用来释放try中申请的资源。 with代码块执行完毕后自动还原进入该代码之前的状态,总能保证资源正常释放。
with open('test.txt', 'r') as f:
for line in f.readlines():
print(line)
- return语句
一般不要将return语句放到try、except、else、finally块中,可能会出错,建议放到最后。
4. 文件读写
我知道的不再赘述。
4.1 常见的打开方式
w:文件存在会重写内容;a:文件存在会在末尾追加内容。
4.2 中文乱码问题
如果有中文,打开文件时要加上 encoding = ‘utf-8’
4.3 f.write()与f.writelines()
- f.write()只能将字符串写到文件中
- f.writelines()把字符串列表写入,但是不会转行,如果需要换行,要添加换行符。
with open('school/bookcontent/result2/a.txt', 'w', encoding='utf-8') as f:
s = ['xiaoxi', 'xiaoming']
f.write(s)
with open('school/bookcontent/result2/a.txt', 'w', encoding='utf-8') as f:
s = ['xiaoxi', 'xiaoming']
f.writelines(s)
with open('school/bookcontent/result2/a.txt', 'w', encoding='utf-8') as f:
s = ['xiaoxi\n', 'xiaoming\n']
f.writelines(s)
>>> xiaoxi
xiaoming
4.4 f.read()、f.readline()和f.readlines()
- f.read()一次读取文件所有内容;
- f.readline()从文件中读取一行内容;
- f.readlines()把文件中每一行都作为独立的字符串对象,并将这些对象放入列表返回。
with open('school/bookcontent/result2/a.txt', 'r', encoding='utf-8') as f:
content = f.read()
print(content)
>>> xiaoxi
xiaoming
with open('school/bookcontent/result2/a.txt', 'r', encoding='utf-8') as f:
content = f.readline()
print(content)
>>> xiaoxi
with open('school/bookcontent/result2/a.txt', 'r', encoding='utf-8') as f:
content = f.readlines()
print(content)
>>>['xiaoxi\n', 'xiaoming\n']
现在知道为啥用f.readlines()读取文件内容后,要用strip(’\n’)去掉换行符了。
4.5 csv文件读写
我一般用pandas中的pd.read_csv(),但还可以用csv包。
5. os模块
os模块可以帮助我们直接对操作系统进行操作,调用文件、命令等。我总结一些我自己常用的吧。
6. 模块和包
常用库列表: Pypingyin: 汉字拼音转换工具 人类知识真真真浩如烟海,你绝对可以找到自己感兴趣的并且愿意主动去学习的东西!加油。最后万物归于一物,学思维比学知识重要。
|