python学习笔记day2(字符串、字典、元组、列表)
一.字符串介绍及常用操作方法
1.(1)字符串介绍:当打来浏览器登录某些网站的时候,需要输入密码,浏览器把密码传送到服务器后,服务器会对密码进行验证,其验证过程是把之前保存的密码与本次传递过去的密码进行对比,如果相等,那么就认为密码正确,否则就认为不对;服务器既然想要存储这些密码可以用数据库(比如MySQL),当然为了简单起见,咱们可以先找个变量把密码存储起来即可;那么怎样存储带有字母的密码呢?简而言之,这就是字符串。以下给出一个简单的例子作为说明:


(2)字符串只能相加或者相乘,不能进行减法及除法运算。以下给出例子说明:


(3)字符串的格式化输出:


如上就是字符串的格式化输出,%S其实就是占位符,先占下空间然后取数值。当然大家可能会有疑问,如果不用格式化输出,如何打印出%呢,其实很简单,在加一个%做下转译就好啦,这里不再举例说明。
(4)字符串的下标索引取值:


这里简要说明下:字符串的索引是从0开始取,0 1 2....这样来排序,因此想要取到哪个字符就需要先找到他的索引值,然后通过索引值来取字符;-1即为最后一个字符串的索引值(倒叙),当然也可以正序查找;当只有一个":"时,即为按照正序排列取所有的字符;然后就是切片的表示方法:[-1::-1],即为从后往前取值,并且取到开头,:中间就可以省略不写,最后一个-1表示步长为1,如果步长为-2则意思就是从后往前取值,每隔两个索引取一次值,正序查找也是一样,只不过步长为正数;这里还需要重要说明下,假如切片这样表示[0:8],意思为取01234567这几个字符,并不能取到索引 8所在的字符,这也就是所谓的顾头不顾尾。因此切片的语法规则可以这样表示:
[起始索引:结束索引+1:步长]
(5)字符串的常用方法:
首字母大写,其他字母小写(capitalize):


大小写翻转(swapcase):


非字母隔开的每个单词首字母大写(title):


设置总长度并居中展示(center):


将字母全部换成大写(upper):


将字母全部换成小写(lower):


小案例走一波:模仿用户输入一个四位数的验证码,大家都知道验证码一般是不区分大小写的,那么后台是怎么做到的呢,很简单就是用到上述的upper或者lower方法,将字母都统一转换成大写或者小写的,方便校验,否则如果不这样做,那么用户需要输入多次才能输对,用户体验非常不好,以下是程序说明:


判断字符串以什么开头(startswith):


判断字符串以什么结尾(endswith):


默认去除字符串的空格换行符等、可自定义(strip),lstrip和rstrip分别是从左右去除字符串的符号,这里不再举例说明:


小案例:用户输入账户密码登录(注意用户在输入时可能会输入空格等其他字符,如果不用strip方法,那将很难判断,因此这里用strip方法):


将字符串替换成其他字符(replace):

![]()
将字符串按照一定的规则分隔,即将字符串转换为列表(split):


将列表按照一定的规则分隔,即将列表转换为字符串(join):

![]()
通过元素找索引的方法(find/index):
find:找不到返回-1 index:找不到会报错


format格式化输出的用法,直接给出例子说明:


公共方法(len/count),len:测量字符串的长度,count计算某些元素出现的次数:


判断字符串的组成,isalnum:判断字符串是否由字母和数字组成;isalpha:判断字符串是否由纯字母组成;isdigit:判断字符串是否由纯数字组成。


数据类型的相互转换(了解即可):
str----->int int("123")
int----->str str(123)
int<---->bool 非0即为真,0就为False
str-----> bool 非空 True 空字符串 False
(6)运算符的优先级:() > not > and > or
'''0 是False 非0 都是True
x or y if x is True,return x'''
5 or 4: 5非0为真,则返回5
5 and 5:5非0为真,则返回4,只需记着与or的语法相反即可。
![]()
![]()
二.列表介绍及操作方法
1.列表的取值方法,按照索引取值与元素本身的数据类型一致;按照切片取值取出来的是最小列表:


2.列表的增加:
(1).append:在列表结尾追加:

![]()
(2).insert:根据索引添加:
![]()
![]()
(3).extend:以最小元素追加:
![]()
![]()
3.列表的删除:
(1)pop:按照索引删除:

![]()
(2)remove:按照元素删除:

![]()
(3)clear:清空列表但是表结构还在:

![]()
(4)del:清空列表所有,也可以按索引删除:


4.列表的修改:
(1)按照索引改:

![]()
(2)按照切片改:

![]()
(3)按照步长改(必须一一对应):

![]()
5.列表的查看:


6.操作列表的一些其他方法:


7.列表的嵌套:


三.元组的简单介绍及操作方法:
元组就是用()括起来的只读列表,不能进行写操作,例如:(1,2,3,"xiaoli",4),下面是一些简单操作方法举例:


range的简单用法:
相当于产生一个有范围的随机数字:


四.字典的增删改查操作:
1.字典的增加:


setdefault设置默认的属性之后不允许修改,eg:


2.字典的删除:
(1).按照键值删除,并且没有返回值(pop):


(2).随机删除,并且有返回值(popitem):


(3).清空字典,但保留字典的结构(clear):


(4).彻底删除字典,并且不保留字典的结构;或者按照键去删除键值对(del):




3.字典的修改:
(1).按照键值去改,有则修改,无则添加:


(2).字典与字典的合并更新(update):


4.字典的查找:
(1).按照键去查找:


此种方法有个弊端就是:当字典中没有此键时就会报错。当然还有另外一种方法查找不会报错(get):


(2).遍历字典的进行查找:


(3).小技巧--分别赋值:


5.字典的嵌套使用及数据类型的补充:
(1).字典的嵌套操作:


(2).小案例:将索引为奇数的元素删除[11,22,33,44,55]:


接下来我们试着用for循环来实现这个:


观察以上结果大家可能会发现:结果并不是我们想要的,那是为什么呢?,这是因为,列表中的元素在迭代过程中不能删除操作,也就是说当前边的元素被删除之后,后边的元素会前移占位,所以你在循环这个列表删除时可能就删不掉那个位置原来的元素了,想要解决这个问题其实也很简单,就是我们通过倒叙删除,这样前边的元素就不会移动了,下面给出例子说明。


(3).再循环一个字典时,不能改变一个字典的大小:




上例说到我们在循环一个列表时,不能改变一个列表的大小,那应该怎样做才能循环删除呢?我们可以重新定义一个列表用来存放要删除列表中的key,然后根据这个列表进行删除,具体操作如下:


(4).fromkeys的简单用法:



浙公网安备 33010602011771号