代码编写

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: '蔡依林'

字符串的处理及切片

字符串的处理

python data_list 倒着遍历 python list 反向遍历_打开文件

切片

切片格式:字符串名[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()