字符串详解
字符串独有功能
检测头尾字符
startwith检测开头返回值为bool类型
endwith检测结尾返回值为bool类型
str = "My name is Anduin" result1 = str.startwith("My") result2 = str.endwith("in") print(result1)#True print(result2)#True
判断输入结果是否为数字
isdecimal返回值为bool类型
str = "12332" print(str.isdecimel)#True
这里有一点需要注意的是有些文章上会让大家使用isdigit来判断,但是这个需要慎用。原因是因为如果输入为序号1(1外面一个圈的)isdigit也会判断为真返回true,这显然是我们不想看到的。
首尾删除
strip如果不填参数默认删除空格
lstrip删除开头指定内容
rstrip删除结尾指定内容
str = " Hello " print(str.strip())#Hello print(str.lstrip())#"Hello " print(str.rstrip())" Hello" str1 = str.strip() #此时str1 = "Hello" print(str1.strip("H"))#ello print(str1.strip("o"))#Hell print(str1.lstrip("H"))#ello print(str1.rstrip("o"))#Hell
字符串中的替换
replace(A, B)用B替换A
str = "My namw is Anduin" result = str.replace("Anduin", "AABB") print(result)#My name is AABB
字符串的分割
split按照指定的字符分割字符串
和上面的rstrip一样,加上r会从右边开始执行
str = "msg|res|val" result1 = str.split("|") #["msg", "res", "val"] result2 = str.split("|", 1) #["msg", "res|val"] result3 = str.rsplit("|", 1) #["msg|res", "val"]
字符串的连接
datalist = ["My", "name", "is", "Anduin"] v1 = "*".join(datalist) print(v1) #My*name*is*Anduin v2 = "".join(datalist) print(v2) #MynameisAnduin
字符串的居中
center居中
ljust居左
rjust居右
以上三个函数都会帮用指定的符号补齐空白部分
str = "Anduin" str1 = str.center(10, "*") #**ANduin** str1 = str.ljust(10, "*") #Anduin**** str1 = str.rjust(10, "*") #****Anduin
字符串的公共功能
加、乘功能
主要是字符串+字符串和整数*字符串
str = "Anduin" print(# * str) #AnduinAnduinAnduin print(str + "yyds") #Anduinyyds
索引功能(很重要)
str[a,b]表示取编号a<=x<b的值,且编号从0开始
str[a,b,c]表示取编号a<=x<b的间隔c值,且编号从0开始
在python中-1表示最后一个,相应的-2,-3,-4表示倒数第二,第三,第三个。
name = "anduin" print(name[0] + name[1]) #an print(name[-1], name[-2]) # 字符串只能通过索引取值,不能修改值 #ni print(name[0:2]) #an print(name[2:]) #duin print(name[:3]) #and # 步长 跳着取字符串内容 print(name[0::2]) #adi print(name[::-1]) #niudna可以用来将字符串倒置
求长度
len获取字符串长度
name = "Anduin" print(len(name)) #6
一个很重要的函数range()
#取0-n的值 range(10) # [0,1,2,3,4,5,6,7,8,9] #取1-10的值 range(1, 10) #间隔为2取1-10 range(1, 10, 2) #取一到10的值 range(10, 1, -1)
列表
定义
列表是有序可变的容器,可以存不同类型的元素。这里需要注意字符串是不可变的,列表是可变的。
我们可以发现,上面对字符串的操作都是生成了一个新的字符串而字符串本身不改变,但是对于列表的操作是改变其本身的。
独有功能
创建空列表和追加
append追加:在列表最后加入一个元素
#创建一个空列表 list = [] #列表的追加 list.append("锤子") list.append("钟无艳")
元素的指定位置插入
insert可以在指定位置插入,该位置原名来的元素及其以后的元素依次向后移动。
如果插入位置很离谱比如:-1000,999等越界插入,不会报错,会相应在开头或者末尾插入。
area = ["艾泽拉斯", "暴风城", "王宫"] area.insert(0, "冰冠堡垒")
追加一个列表
extend可以在指定列表后加上一个列表,将两个列表拼接起来(注意使用先后)
area = ["艾泽拉斯", "暴风城", "王宫"] charictor = ["巫妖王", "阿尔萨斯", "女王"] area.extend(charictor) print(area) #["艾泽拉斯", "暴风城", "王宫", "巫妖王", "阿尔萨斯", "女王"]
元素的两种删除方法
方法一:
使用remove删除列表中的指定元素
area = ["艾泽拉斯", "暴风城", "王宫"] area.remove("艾泽拉斯") #["暴风城", "王宫"]
方法二:
使用pop对指定位置进行删除。pop删除会返回删除的元素,效果如下:
area = ["艾泽拉斯", "暴风城", "王宫"] item = area.pop(1) #["艾泽拉斯", "王宫"] item = "暴风城" #如果没有指定删除位置,默认删除最后一个 area = ["艾泽拉斯", "暴风城", "王宫"] item = area.pop() #["艾泽拉斯", "暴风城"] item = "王宫"
清空列表
clear可以删除列表内所有的元素
area.clear() # 清空列表
排序功能
sort可以对列表内的元素进行排序(默认从小到大,想要倒序请看下一条)。注意此处有两点提醒:1.尽量对只含有数字的列表排序2.被排序的列表内所有元素必须类型一致。
#从小到大排序 num_lsit = [12, 42, 75, 94, 23, 25, 423] num_lsit.sort()
字符串倒置
reverse可以将列表颠倒,可以利用这个实现倒序
num_lsit = [12, 42, 75, 94, 23, 25, 423] num_lsit.reverse()#尾变头, 头变尾 num_lsit.sort(reverse=True)#倒序排序
公共功能
len获取长度
类比上文字符串
方括号索引、步长
类比上文字符串,规则一致,这里只举例增加的功能:del 删除
#从2开始删除后面的 del list[2:]
嵌套
嵌套顾名思义就是在一个列表里存一个列表(列表内的元素可以为任意类型),下面我们来存储一组用户名和密码
user_list = [] user1 = ["anduin", "123456"] user2 = ["alex", "654321"] user3 = ["Marry", "888888"] user_list.append(user1) user_list.insert(0, user2) user_list.insert(1000, user3) print(user_list)
运行结果如图:
有了对于字符串和列表索引的基础,对于嵌套列表的索引我们可以直接看代码:
user_list = [] user1 = ["anduin", "123456"] user2 = ["alex", "654321"] user3 = ["Marry", "888888"] user_list.append(user1) user_list.insert(0, user2) user_list.insert(1000, user3) print(user_list[1]) print(user_list[-1]) print(user_list[1][0]) print(user_list[1][-1]) print(user_list[::2])
for循环
昨天我们学了while循环。for循环和while循环的主要区别在于:while循环适合次数不知道的循环,for循环适合次数已知的循环。
例如用户输密码,不知道输入多少次才能对那我们就用while循环,遍历已知个数的列表就用for循环。
""" 这里提供两种for循环遍历列表来解释for循环 """ list = ["dog", "cat", "pig"] for item in list: print(item) for i in range(len(list)): print(list[i])
第一种是设置一个item变量,一次等于list中每一个元素,打印该元素的复制
第二种是获取长度列表[0, 1, 2],用索引的 方法输出列表对应位置的元素