第八天日报

切片操作

In [4]: num_str
Out[4]: '0123456789'

In [5]: num_str[1:4]
Out[5]: '123'

1 普通切片

字符串[起点索引:终点索引]
注,终点索引对应的值,不包含在内。如希望包进去,索引值+1
In [10]: name
Out[10]: '迅雷下载_流浪地球_720P高清'

In [11]: name[5:9]
Out[11]: '流浪地球'

1552871733706

2 从指定的索引切到终点

字符串[起点:]
IIn [12]: name = "迅雷下载_流浪地球"

In [13]: name2 = "迅雷下载_流浪地球英文版"

In [14]: name2[5:]
Out[14]: '流浪地球英文版'

In [15]: name[5:]
Out[15]: '流浪地球'

3 步长

字符串[起点索引:终点索引:步长]
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'

4,倒着切的数法

作为终点:

从右边向左边数数

从-1开始,到-n

不包含-n下标所在的数据

字符串[起点索引:负终点的序号]
负数对应的序号,不包含

5,逆序切

主要通过步长进行方向的控制

首先明确切片的一个过程

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,步长控制步数和方向

1552877885736

对列表进行切片

name_list = [“张三”,“李四”,“王五”,“赵六”]

公共方法

len函数

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函数

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)
<ipython-input-27-ecd6c850b025> in <module>
----> 1 stu

NameError: name 'stu' is not defined

max与min函数

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 "<ipython-input-35-238d11b9a46f>", line 1
    "c" not "aabbcc"
                   ^
SyntaxError: invalid syntax


In [36]: "c" not in "aabbcc"
Out[36]: False

完整的For循环

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,对数据进行一个删除

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值