代码编写
List列表
List列表遍历
遍历方式:List列表遍历可以用for循环
user_id_list = [1, 4, 7, 2, 5, 8, 3, 6, 9]
for i in user_id_list:
print(i)
List列表排序
List列表反向输出:使用reverse直接作用于列表
user_id_list = [1, 4, 7, 2, 5, 8, 3, 6, 9]
user_id_list.reverse()
print(user_id_list)
List列表升序排列:使用sort作用于List
List列表降序排列:使用sort 的同时,需要判断reverse是否成立
user_id_list = [1, 4, 7, 2, 5, 8, 3, 6, 9]
user_id_list.sort()
print("升序排列为:", user_id_list)
user_id_list.sort(reverse=True) //注意True不可写成true
print("降序排列为:",user_id_list)
Dict字典
Dict命名方式:字典名 = {key: value}
唯一的key对应的value,称为键值对
scores = {'小明':98,'小王':78,'小红':80}
Dict字典使用
遍历提取dict的key和value
score = {
"1": ["小花", 99, 100, 98.5],
"2": ["小王", 90, 30.5, 95],
"3": ["小明", 67.5, 49.6, 88]
}
//提取key 将字典中的key转换为列表
key = list(score.keys())
//提取value 将字典中的value转换为列表
scores = list(score.values())
增加
对字典进行操作时候,需要先确认该数据类型为字典
格式:字典名[键] = 值 key一定为字符串格式
当key为编号时,可以用数字格式
//增加单个元素
user = {}
user['name'] = "小华"
user['age'] = 18
user['pet'] = ['dog','cat']
print(user)
//增加多个元素 如果key有重复 则直接覆盖
a = {'小明':95,'小红':90}
c = scores = {'小红':90,'小A':90,'小刚':90}
a.update(c)
print(a) //输出{'小明': 95, '小红': 90, '小A': 90, '小刚': 90}
删除
如果想要在字典删除元素,可以通过以下两种方式进行删除
//del方式
album = {'周杰伦':'七里香','王力宏':'心中的日月','SHE':'superstar'}
del album['周杰伦']
print(album) //输出{'王力宏': '心中的日月', 'SHE': 'superstar'}
album.pop('SHE')
print(album) //输出{'王力宏': '心中的日月'}
修改
字典没有偏移量,只能通过key找到元素位置
dict1 = {'小明':'男'}
dict1['小明'] = '女'
print(dict1) //输出 {'小明': '女'}
查找
字典没有偏移量,只能通过key找到元素位置
//已知key值,进行查询
album = {'周杰伦':'七里香','王力宏':'心中的日月','SHE':'superstar'}
print(album['周杰伦']) // 输出七里香
print(album['蔡依林']) //因为字典中没有对应的key,所以会报错KeyError: '蔡依林'
//不知道key的具体值时 查询
user ={'name':"xiaoming",'age':18,'address':'北京'}
print(user)
print("=========通过key遍历=============")
for i in user.keys():
print(user[i])
print("=========通过items遍历=============")
for i, v in user.items():
print(i, v)
遍历
遍历方式有以下几种
//通过keys遍历
album = {'周杰伦':'七里香','王力宏':'心中的日月','SHE':'superstar'}
print(album['周杰伦']) // 输出七里香
print(album['蔡依林']) //因为字典中没有对应的key,所以会报错KeyError: '蔡依林'
字符串的处理及切片
字符串的处理
切片
切片格式:字符串名[start: end: step]
1)若只有start没有end -->从起始位置到最后
2)若只有end没有start -->从零开始到结束点的前一个结束
3)若有start和end -->输出指定内容
4)如果设置step -->需要跳一位输出
5)如果end为负数 -->从起始点到倒数X位
s = ""
a = "1231231122012356"
l = [0, 9, 8, 7, 6, 5, 4, 3, 2, 1]
print("1) ", s[7:]) //输出1) /mp.csdn.net/console/article
print("2) ", s[:18]) //输出2)
print("3) ", s[7:18]) //输出3) /mp.csdn.ne
print("4) ", a[2:15:2]) //输出4) 3212025
print("5) ", a[2:-1]) //输出5) 123112201235
print(l[2: 6]) //输出[8, 7, 6, 5]
元组与集合
元组
元组 (元组(tuple):写法是把数据放在小括号()中,它的写法和列表写法类似,主要区别在于列表中的元素可以随时修改,但元组中的元素不可更改。
// 定义元组
t = (0, 1, 2, 2, 2, 3)
// 用法与列表相同,但元组的数据不能修改,即不能增,删,改
print(t.index(1)) //查询索引位置为1的数据 输出为:1
print(t.count(2)) //查询数字2在元组中出现的次数 输出为:3
集合
集合 (集合(set):写法是把数据放在大括号{}中,它的写法和列表写法类似,区别在于集合中的数据不能重复,并且集合的数据没有顺序。
// 定义集合
t1 = {0, 1, 4, 5, 2, 3}
t2 = {2, 5, 6, 7, 8, 9}
// 用法与列表相同,但集合没有顺序,也index和count的属性
print(t1) // 当没有对集合进行任何操作时,直接使用print输出,就会对集合进行自动排序,输出:{0, 1, 2, 3, 4, 5}
// 集合合并
t1.update(t2) //update方法没有返回值,因此要重新赋值后再进行输出
print(t1) //输出:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
// 集合交集
t1.intersection(t2)
print("交集:", t3) //输出:交集:{2, 5}
// 集合并集
t3 = t1.union(t2)
print("并集:", t3) //输出:并集: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
// 集合差集
t3 = t1 ^ t2
print("差集:", t3) //输出:差集: {0, 1, 3, 4, 6, 7, 8, 9}
非空即真
使用bool()函数可查看一个数据的布尔值,当数据不为空时,返回True
// 字符串
print(bool(None)) // 空字符串-->输出False
print(bool("")) // 长度为0的字符串-->输出False
print(bool("1")) // 输出True
// list
print(bool([])) // 空list-->输出False
print(bool([1])) // 输出True
// dict
print(bool({})) // 空dict-->输出False
print(bool({"name": "xiaoming"})) // 输出True
文件读写(i / o)
open()函数
open打开的文件,是一个数据流。
用法1:file1 = open(‘文件的保存地址’,‘mode’,encoding=‘utf-8’)
这种方式打开文件后,当对文件操作完毕,需要对文件进行关闭,即file1.close()
用法2:with open(‘文件地址’,‘读写模式’) as 变量名:
使用with open时,变量名后面的“:”不能丢,这种方式无需用close()关闭
文件的保存地址
地址分为两种,绝对路径和相对路径
绝对路径:最完整的路径
相对路径:“相对于当前文件夹”的路径,也就是你编写的这个py文件所放的文件夹路径
例如:./n.txt或n.txt --> 当前路径下的n.txt文件
…/day03/n.txt --> 返回上级目录,进入day03文件下打开n.txt文件
…/…/…/day03/n.txt --> 跳多级目录,进入day03文件下打开n.txt文件
mode
mode为打开文件时的模式
模式 | 含义 |
r | 打开只读文件,该文件必须存在 |
r+ | 打开可读写的文件,该文件必须存在 |
rb+ | 读写打开1个二进制文件,只允许读写数据 |
rt+ | 读写打开1个文本文件,允许读和写 |
w | 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在,则建立该文件 |
w+ | 打开可读写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在,则建立该文件 |
a | 以附加的方式打开只写文件,若文件不存在,则会建立该文件。如果文件存在,写入的数据会被加到文件尾部,即文件原有的内容会被保留 |
a+ | 以附加发方式打开可读写的文件,若文件不存在,则会建立该文件。如果文件存在,写入的数据会被加到文件尾部,即文件原有的内容会被保留 |
wb | 只写打开或新建一个二进制文件,只允许写数据 |
wb+ | 读写打开或新建一个二进制文件,允许读和写 |
wt+ | 读写打开或着建立一个文本文件,允许读写 |
at+ | 读写打开一个文本文件,允许读或者文本末尾追加数据 |
ab+ | 读写打开一个二进制文件,允许读或者文本末尾追加数据 |
encoding
encoding表示的是返回的数据采用何种编码,一般采用utf-8或者gbk
encode()和decode() 用法:
‘你想编码的内容’.encode(‘你使用的编码表’)
‘你想解码的内容’.decode(‘你使用的编码表’)
read()函数
用法:
file1 = open(’/Users/Ted/Desktop/test/abc.txt’, ‘r’,encoding=‘utf-8’)
filecontent = file1.read()
// 打开文件
file1 = open('/Users/Ted/Desktop/test/abc.txt','w',encoding='utf-8')
// 读取所有内容
f1 = file1.read()
// 读取一行内容
f2 = file1.readline()
// 读取多行内容,将数据转换成了一个list
f2 = file1.readlines()
遍历文件
file1 = open('D:/name.txt','r',encoding='utf-8')
// 方法1 全部读取并转化为list
f2 = file1.readlines()
for line in f2:
print("line",line.strip())
// 方法2 逐行读取
for line in file1:
print("line: ",line.strip())
读取文件
读取文件流程
读取文件步骤:打开文件–>读文件–>关闭文件
打开文件时,路径分为两种:绝对路径和相对路径
// 打开文件
file1 = open('/Users/Ted/Desktop/test/abc.txt','r',encoding='utf-8')
//如果要读取的文件与当前运行的Python文件在同一目录,则可以直接先文件名【如:file1 = open('abc.txt','r',encoding='utf-8')】
//如果不在同一目录下,则需要把文件所在的具体路径写下来
// 读文件
filecontent = file1.read()
print(filecontent)
// 关闭文件
file1.close()
写文件
写文件步骤:打开文件–>写文件–>关闭文件
// 打开文件
file1 = open('/Users/Ted/Desktop/test/abc.txt','w',encoding='utf-8')
// 写文件
// 方法1
file1.write('张无忌\n')
// 方法2
l1 = ["xiaoli", "xiaohong", "xiaoan"]
for j in l1:
file1.write(j)
file1.write("\n")
// 关闭文件
file1.close()