In [4]: num_str
Out[4]: '0123456789'
In [5]: num_str[1:4]
Out[5]: '123'
字符串[起点索引:终点索引]
注,终点索引对应的值,不包含在内。如希望包进去,索引值+1
In [10]: name
Out[10]: '迅雷下载_流浪地球_720P高清'
In [11]: name[5:9]
Out[11]: '流浪地球'
字符串[起点:]
IIn [12]: name = "迅雷下载_流浪地球"
In [13]: name2 = "迅雷下载_流浪地球英文版"
In [14]: name2[5:]
Out[14]: '流浪地球英文版'
In [15]: name[5:]
Out[15]: '流浪地球'
字符串[起点索引:终点索引:步长]
In [7]: num_str[1:9:2]
Out[7]: '1357'
In [7]: num_str[1:9:2]
Out[7]: '1357'
In [8]: num_str
Out[8]: '0123456789'
In [9]: num_str[::3]
Out[9]: '0369'
In [10]: num_str[1::4]
Out[10]: '159'
作为终点:
从右边向左边数数
从-1开始,到-n
不包含-n下标所在的数据
字符串[起点索引:负终点的序号]
负数对应的序号,不包含
主要通过步长进行方向的控制
首先明确切片的一个过程
In [35]: p[:]
Out[35]: 'python'
In [36]: p[::1]
Out[36]: 'python'
步长不仅仅控制跳几个,而且,步长还控制方向
In [41]: p
Out[41]: 'python'
In [42]: p[起点:终点:步长]
In [42]: p[::-1]
Out[42]: 'nohtyp'
在python字符串中取hty
1,步长控制方向,负值表示从右向左的方向
2,在切片的格式中,起始索引是会包含在取值内容中的
3,终点的索引所对应的值是不包含在取值内容中的
p[3:0:-1]
第一步,实现逆序切
In [46]: n = "0123456789"
In [47]: n[::-1]
Out[47]: '9876543210'
第二步,逆序,确定起点
In [46]: n = "0123456789"
In [47]: n[::-1]
Out[47]: '9876543210'
In [48]: n[6::-1]
Out[48]: '6543210'
In [49]: n[4::-1]
Out[49]: '43210'
In [50]: n[3::-1]
Out[50]: '3210'
小结
起点的下标对应的数据,是会被包含进来的
---> 终点的下标对应的数据,是不包含进来的
n[:5:-1]
1,确定方向
从右向左,步长为-1
2,确定起点
起点是字符串的最未尾
最未尾的索引值是多少,不确定,因为不同字符串,最未尾的索引也是不一样
不确定,我们不填写,让电脑自己去找
因为有了方向,电脑能够自己找到起点
起点,我们不填,让电脑自己去找
3,确定终点
明确一个知识点
注,终点索引对应的值,不包含在内。
如果希望把终点索引对应的数据包进来
索引与方向进行一个加法运算
6 -1
索引+步长
6 -1 = 5
切片操作
1,起点包含
2,终点不包含
3,步长控制步数和方向
对列表进行切片
name_list = [“张三”,“李四”,“王五”,“赵六”]
len(非数据类型)
In [4]: name_list
Out[4]: ['张三', '李四', '王五', '赵六']
In [5]: name_list[1:3]
Out[5]: ['李四', '王五']
In [6]: len(name_list)
Out[6]: 4
In [7]: name_tuple = tuple(name_list)
In [8]: name_tuple
Out[8]: ('张三', '李四', '王五', '赵六')
In [9]: len(name_tuple)
Out[9]: 4
In [10]: len("abc")
Out[10]: 3
In [11]: len({"a":1,"b":2})
Out[11]: 2
del(要删除的东西)
In [23]: stu = {'name': 'zs', 'age':18}
In [24]: del(stu['age'])
In [25]: stu
Out[25]: {'name': 'zs'}
In [26]: del(stu)
In [27]: stu
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
in
----> 1 stu
NameError: name 'stu' is not defined
In [29]: max("abcdez")
Out[29]: 'z'
In [30]: min('abcdez')
Out[30]: 'a'
in
not in
In [33]: name = "abc"
In [34]: "b" in name
Out[34]: True
In [35]: "c" not "aabbcc"
File "", line 1
"c" not "aabbcc"
^
SyntaxError: invalid syntax
In [36]: "c" not in "aabbcc"
Out[36]: False
for 变量 in 容器:
循环体代码
else:
没有通过 break 退出循环,循环结束后,会执行的代码
for val in [1,2,3,4]:
print(val)
else:
print('循环正常走完')
字典1.update(字典2)
字典1[‘键’] = 值
In [39]: stu_dict = {"name":"张三"}
In [40]: stu_dict.update({'age':18})
In [41]: stu_dict
Out[41]: {'name': '张三', 'age': 18}
In [42]: stu_dict['gender'] = True
In [43]: stu_dict
Out[43]: {'name': '张三', 'age': 18, 'gender': True}
num_list = [0,1,2,3]
列表的运算符操作
使用+号,可以往列表中添加数据,不改列表本身,新列表通过返回值的方式出现。
可以定义一个新的变量来接收新的列表
列表1.extend(列表2),会对自身造成影响
列表1+ 列表2,会产生一个新列表
In [51]: num_list
Out[51]: [0, 1, 2, 3, 4]
In [52]: num_list.extend([7,4,6])
In [53]: num_list
Out[53]: [0, 1, 2, 3, 4, 7, 4, 6]
In [54]: num_list + [77,88]
Out[54]: [0, 1, 2, 3, 4, 7, 4, 6, 77, 88]
In [55]: num_list
Out[55]: [0, 1, 2, 3, 4, 7, 4, 6]
列表的* 乘法
效果同字符串的,会产生一个新的列表,通过返回值的方式出现
有一组用户数据,存在列表中
忘了记录添加时间
因此需要补上
成员运算符就可以派上用场了
stu_list = [
{'name':'张三'},
{'name':'李四'},
{'name':'王五', 'add_time':'20190318'}
]
界面
主要是print函数,input函数
输入1,有功能
提示输入姓名等等,input
功能1操作结束后
又一次回到欢迎界面
输入2,有新的显示了
打印了一串内容
考虑,
数据如何存储,数据如何出现的
输入3,查询名片
输入姓名
通过姓名查找,找到后
再格式化输出数据
1,修改
2,删除
0 ,返回上级菜单
else。。。
回车不修改
搜索后点2,对数据进行一个删除