python入门学习
一周掌握 python入门知识
学习目标:Day 3
1、 再次学习str 、list
2、班级分组小程序
3、数据类型—字典dict
学习时间:
1、 再次学习str 、list
- 字符串的几个特性
- 按照从左到右的顺序定义字符集合,下标从0开始顺序访问,所以有序
- 下标索引
- 可以进行切片操作;切得时候管前不管后
- 不可变,它不能像列表一样修改某个元素,所有元素必须是一改俱改
- 字符串常用操作
- center(self,width,fillchar=None) 填充给定长度字符的打印,内容在空间
- count(self,sub,strat=None,end=None) 字符串里子串出现的个数,默认全局范围查找,也可以指定范围进行局部搜索
- endswith(self,suffix,start=None,end=None) 判断结尾是否是以该子串结尾,返回true or false
- startsswith(self,suffix,start=None,end=None) 判断开头是否是以该子串开头,返回true or false
- find(self,sub,strat=None,end=None)找字串的下标,没找到返回-1
- isdigit(self) 判断是否是整数
- join(self,iterable) 字符串的拼接,e.g "-’.join(str) 将str里的内容用-拼接
- replace(self,old,new,count=None) 用新的替换旧的,count是个数(str是不能局部修改的,所以是再赋值式替换)
- split(self,sep=None,max=split=-1) 以指定分隔符,将str变成list,默认以空格分,默认-1全部分开
代码尝试:
#字符串的常用操作
s="I like rose."
print(s.center(20,"-")) #----I like rose.----
print(s.count('e')) #2
print(s.count('e',2,6)) #1
print( s.endswith('.')) #True
print(s.endswith('e',2,6)) #True
print(s.startswith('I')) #True
print(s.find('ss')) #-1,没找到
print(s.find('like')) #2
print(s.isdigit()) #False
print("-".join(s)) #'I- -l-i-k-e- -r-o-s-e-.'
s=s.replace('rose','jisoo')
print(s)
print(s.split(sep=' ')) #['I', 'like', 'jisoo.']
print(s.split(sep='i')) #['I l', 'ke j', 'soo.']
print(s.split(sep='i',maxsplit=1)) #['I l', 'ke jisoo.']
-
list的定义、特点
-
[]内以逗号分割,按照索引,存放各种数据类型,每个位置代表一个元素
-
特点:1.可存放多个值 2.按照从左到右的顺序定义列表元素,下标从0开始访问,有序 3.可修改,也就是可修改指定位置元素
-
list的常用操作
-
增添操作:
追加 append(“追加内容”)
插入 insert(插入位置下标,“插入内容”)
list的合并 extend(后面要合并的list)
ist的嵌套 insert(插入的位置下标,list2),取的时候也直接[ ][ ]即可 -
删除操作:
删除 del list[下标]
pop()默认删除最后一个值并返回,传参数就删掉指定索引,-2表示倒着数
remove(“指定值”) 删除第一个指定值
clear() 清空操作 -
修改操作:
index(“某个元素名”) 返回从左开始第一个指定元素的索引;一般先 item in list 判断在不在list里,再取索引,然后修改…
count(“指定元素”) 返回个数 -
切片操作:
切片操作 :可以同时取出元素的多个值;names[star_index:end_index] e.g list1.names[:4] 就是从0开始切四个,不包含下标4;end_index可以超标 names[4:] 就是切到最后一个
倒着切:names[-5:-1] ,start总是小于end的,因为总是默认从左往右的 -
步长(跳着切):names[start : end : step] 默认是1;
-
排序&反转操作:
sort() 按照元素首字母顺序,先看大写再小写;或者是按照数字大小
==纯列表才可以排序,嵌套的不行
reverse() 列表反转 -
循环列表
for i in list :
print(i) # 打印list全部元素
for i in enumerate(list)
print(i) #以元组的形式打印元素 (1,‘abc’)
代码尝试:
#列表的常用操作
lis=["rose","jisoo","jenne","lisa"]
lis.append("lily")
print(lis) #['rose', 'jisoo', 'jenne', 'lisa', 'lily']
lis.insert(2,"jack")
print(lis) #['rose', 'jisoo', 'jack', 'jenne', 'lisa', 'lily']
lis.insert(1,["abc","xyz"])
print(lis) #['rose', ['abc', 'xyz'], 'jisoo', 'jack', 'jenne', 'lisa', 'lily']
print(lis[1][1]) #'xyz'
del lis[1]
print(lis) #['rose', 'jisoo', 'jack', 'jenne', 'lisa', 'lily']
lis.pop() #'lily'
lis.pop(2) #'jack'
lis.append("lisa") #['rose', 'jisoo', 'jenne', 'lisa', 'lisa']
lis.remove("lisa") #['rose', 'jisoo', 'jenne', 'lisa']
print(lis.index("lisa")) #3
print(lis.count("lisa")) #1
lis[0:3] #['rose', 'jisoo', 'jenne']
lis[:5] #['rose', 'jisoo', 'jenne', 'lisa']
lis[-3:] #['jisoo', 'jenne', 'lisa']
lis[::2] #['rose', 'jenne']
lis.sort() #['jenne', 'jisoo', 'lisa', 'rose']
lis.reverse() #['rose', 'lisa', 'jisoo', 'jenne']
for i in lis:
print(i)
#rose
#lisa
#jisoo
#jenne
for i in enumerate(lis):
print(i)
#(0, 'rose')
#(1, 'lisa')
#(2, 'jisoo')
#(3, 'jenne')
2、数据类型—字典dict
- dict的定义
dic={ } 就是一个空字典了 - 特性
- key-value 结构
- key必须是不可变的数据类型(字符串、数字)、必须唯一
- 可以存放任意多个value、可修改、可以不唯一
- 无序的
- 查询速度快,且不受dict的大小影响(快是因为hash,后面学习)
- dict常用操作
- 增加操作:
dict1[“key”]=[“内容”] - 删除操作:
pop(“key”) 删除指定key
del dict1[“key”]
clear() 清空 - 修改操作:
dict1[“key”]=‘new_value’ 如果在就会以新替旧 - 查找操作:
dict1[“key”]
get(key,default=None) 返回key对应的值,若不存在就返回default的指定值
‘key’ in dict1 判断是否存在
keys() 返回一个包含所有的key的列表
values() 返回一个包含所有的values的列表
items() 返回一个包含所有(key,value)元组的列表 - 循环操作:
for k in dict1.keys()
for k,v in dict1.items()
for k in dict1 最好用这个,效率速度最快 - 求长度
- len(dict1) ,len()可以同时用于列表、字符串
字典也可以嵌套,同样的索引嵌套去访问
学习产出:
提示:这里统计学习计划的总量
例如:
1、 技术笔记 2 遍
2、CSDN 技术博客 3 篇
3、 学习的 vlog 视频 1 个