PythonClassChy/python27Class/pythonLearningNotes/flora_0222_notes.txt

221 lines
6.9 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

=================================
Notes
Author: Flora Chen
-_- -_- -_- -_- -_- -_- -_- -_-
=================================
******内置函数*****
1. min()获取最小值;只能对一组数据进行操作,不能对字符串进行操作。
示例:
tu = (11, 22, 33)
print('获取元组中的最小值:', min(tu))
li = [345, 789, 890]
print('获取列表中的最小值:', min(li))
dic = {'a': 1, 'b': 9}
print(min(dic.values()))
2. max()获取最大值;只能对一组数据进行操作,不能对字符串进行操作。
示例:
tu = (11, 22, 33)
print('获取元组中的最大值:', max(tu))
li = [345, 789, 890]
print('获取列表中的最大值:', max(li))
dic = {'a': 1, 'b': 9}
print(max(dic.values()))
3. sum()求和;只能对一组数据进行操作,不能对字符串进行操作。
示例:
tu = (11, 22, 33)
print('获取元组中元素之和:', sum(tu))
li = [345, 789, 890]
print('获取列表中元素之和:', sum(li))
dic = {'a': 1, 'b': 9}
print(sum(dic.values()))
4. enumerate()获取数据的索引和值
示例:
dic = {'a': 1, 'b': 9}
li = [345, 789, 890]
tu = (11, 22, 33)
print(list(enumerate(tu)))
# 输出结果:[(0, 11), (1, 22), (2, 33)]
print(list(enumerate(li)))
# 输出结果:[(0, 345), (1, 789), (2, 890)]
print(list(enumerate(dic)))
# 输出结果:[(0, 'a'), (1, 'b')]
5. filter(参数1 参数2)
参数1函数过滤的规则
参数2需要过滤的数据
filter会根据参数-函数的返回值是True还是False来决定数据要不要过滤
示例:
li = [11, 22, 34, 6, 345, 789, 890]
def fun(x):
return x > 50
res = filter(fun, li)
print(list(res))
6. 匿名函数lambda 函数参数: 返回值
应用场景:一般用于非常简单的函数(函数内部只有一行代码)
比如结合过滤器filter()使用(当成别的函数的参数)
示例:
li = [11, 22, 34, 6, 345, 789, 890]
res = filter(lambda x: x>50, li)
print(list(res))
li1 = [11, 22, 34, 6, 345, 789, 890]
li2 = [11, 22, 33, 44, 565, 890, 789, 5, 6, 7, 8]
print(list(filter(lambda x: x in li1, li2)))
print(list(filter(lambda x: x % 5 == 0, range(101))))
7. eval()能够识别字符串中的有效python表达式
示例:
str1 = "{'a': 1, 'b': 2, 'c': 3}"
print(type(str1))
# 输出结果:<class 'str'>
print(type(eval(str1)))
# 输出结果:<class 'dict'>
str2 = "[11, 22, 33, 44]"
print(type(eval(str2)))
# 输出结果:<class 'list'>
# 如果eval需要识别的字符串里面是个变量名会打印出变量对应的值
b = 111
str3 = 'b'
print(eval(str3))
# 输出结果111
# 注意点:只能去掉一层引号
str4 = "'bcd'"
print(eval(str4))
# 输出结果bcd
8. zip()聚合打包
注意zip对象只能进行一次强制转换
示例:
li1 = ['name', 'age', 'gender']
li2 = ['flora', 18, 'female']
res = zip(li1, li2)
print(dict(res))
# 输出结果:{'name': 'flora', 'age': 18, 'gender': 'female'}
res1 = zip(li1, li2)
print(list(res1))
# 输出结果:[('name', 'flora'), ('age', 18), ('gender', 'female')]
# 按照顺序一一对应,长度不一致的情况下,只取最短的
li3 = ['name', 'age', 'gender', 'info']
li4 = ['flora', 18, 'female']
res2 = zip(li3, li4)
print(dict(res2))
# 输出结果:{'name': 'flora', 'age': 18, 'gender': 'female'}
res3 = zip(li3, li4)
print(list(res3))
# 输出结果:[('name', 'flora'), ('age', 18), ('gender', 'female')]
# zip扩展使用
示例:
li1 = [11, 22, 33, 44]
li2 = [1, 2, 3, 4, 5]
li3 = [111, 222, 333, 444, 555]
li4 = [11, 12, 13, 14, 15]
res1 = zip(li1, li2, li3, li4)
print(tuple(res1)) # 输出结果:[(11, 1, 111, 11), (22, 2, 222, 12), (33, 3, 333, 13), (44, 4, 444, 14)]
res2 = zip(li1, li2, li3, li4)
print(list(res2)) # 输出结果:((11, 1, 111, 11), (22, 2, 222, 12), (33, 3, 333, 13), (44, 4, 444, 14))
res3 = zip(li1, li2, li3, li4)
print(dict(res3)) # 报错ValueError: dictionary update sequence element #0 has length 4; 2 is required
******文件的操作*****
1. 打开文件
open(参数1 参数2, encoding='utf8')
参数1文件名/文件路径
参数2文件打开的模式
文件打开的模式:
r读取文件文件不存在会报错。
a追加写入 在文件后面写入新的内容,原有内容不变;文件不存在会新建一个。
w覆盖写入, 覆盖原有文件内容,写入新的内容;文件不存在会新建一个。
# 以下三种模式是以二进制的模式打开文件(常用于图片视频等文件的操作)
rb读取文件文件不存在会报错。
ab追加写入 在文件后面写入新的内容,原有内容不变;文件不存在会新建一个。
wb覆盖写入, 覆盖原有文件内容,写入新的内容;文件不存在会新建一个。
文件读写操作的模式(扩展):
r+:读取文件并写入内容;文件不存在会报错。
a+:读取文件并追加写入, 在文件后面写入新的内容,原有内容不变;文件不存在会新建一个。
w+:读取文件并覆盖写入, 覆盖原有文件内容,写入新的内容;文件不存在会新建一个。
# 以下三种模式是以二进制的模式打开文件并写入内容(常用于图片视频等文件的操作)
rb+:读取文件并写入内容;文件不存在会报错。
ab+:读取文件并追加写入, 在文件后面写入新的内容,原有内容不变;文件不存在会新建一个。
wb+:读取文件并覆盖写入, 覆盖原有文件内容,写入新的内容;文件不存在会新建一个。
2. 读取文件
文件读取的方法:
read()读取文件中所有的内容
readline()读取一行内容
readlines()按行读取所有内容,返回一个列表
3. 关闭文件
关闭文件:
close()
4. 文件写入
文件写入的方法:
write()
# -------------- 基本读取操作 ---------------------
示例:
# 打开文件 encoding='utf8'是可选参数
# f = open(file='flora_0213_notes.txt', mode='r', encoding='utf8')
f = open('flora_0213_notes.txt', 'r', encoding='utf8')
# 读取文件
content = f.read()
# 打印文件内容
print(content)
# 关闭文件
f.close()
# -------------- 指定路径读取 ----------------------
示例:
f = open(r'E:\PycharmProject\ChyClass\UITest\Test.py', 'r', encoding='utf8')
print(f.readlines())
f.close()
# -------------- 写入文件 ----------------------
示例:
f = open('test4.txt', 'w', encoding='utf8')
f.write('4444' + '\n')
f.close()
# -------------- 读取写入图片----------------------
示例:
# 读取图片
f = open('picture.jpg', 'rb')
content = f.read()
print(content)
# 写入图片
f2=open('picture.jpg', 'wb')
f2.write(content)
f.close()
f2.close()
5. 文件上下文管理器对象
with 语句
语法格式:
with open(文件名,打开模式) as 接收文件句柄的变量:
# 文件的读写操作
使用with操作文件的优点不用自己关闭文件文件会自动关闭。
示例:
with open('test.txt', 'r', encoding='utf8') as f:
print(f.read())