使用双引号或者单引号中的数据就是字符串。三引号允许一个字符串跨多行。
所谓“下标”,就是编号,通过这个编号就能找到相应的存储空间。(Python中下标从0开始)
列表与元组支持下标索引, 字符串实际上就是字符的数组,所以也支持下标索引。
name = 'abcdef' print(name[0]) #取下标为0的字符(a) print(name[2]) #取下标为2的字符(c)
切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
切片的语法:[起始:结束:步长]
注意:选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。
name = 'abcdef' print(name[0:3]) ?#取下标0~2 的字符 print(name[3:5]) ?#取下标为3、4 的字符 print(name[2:]) ?#取下标为2开始到最后的字符 print(name[1:-1]) ?#取下标为1开始到最后第2个之间的字符 print(name[:3]) ?#取下标为0~2的字符 print(name[::2]) ?#取全部字符,间隔为2 print(name[5:1:-2]) #反向取下标5到1的字符间隔为2 print(name[1:5:2]) #取下标1到5的字符间隔为2
+:相当于拼接
*:相当于倍数
in:在...里面,返回值是布尔类型
not in:不在...里面,返回值是布尔类型
s1 = 'asd' s2 = 'asd' print(s1 == s2) # ==比较的是内容 print(s1 is s2) # is比较的是地址 # 但是,当使用input()输入时,由于input函数底层做了处理 # 所以,此时s1,s2的地址是不一样的 s1 = input('请输入:') s2 = input('请输入:') print(s1 == s2) print(s1 is s2)
# 查找替换 find() # 查找字符在字符串中出现的位置,若没找到则返回-1,如果可以找到则返回字符第一次出现的位置,也可以指定查找范围 s.find('a', 1, 6) # 在1~6内查找a rfind() # 从字符串的右侧开始查找 lfind() # 从字符串的左侧开始查找 index() # 跟find方法一样,只不过如果str不在字符串中会报一个异常 rindex() ?# 类似于index,不过是从右边开始 replace(old,new[,max]) # 将字符串中的old替换成new,如果指定max,则替换不超过max次 # 大小写 capitalize() # 将字符串的第一个字符大写 title() # 返回标题化的字符串,即所有单词首字母大写 upper() # 将字符串全部转换成大写 lower() # 将字符串全部转换成小写 # 其他 startswith() # 判断是否以...开头,返回值是布尔类型 endswith() # 判断是否以...结尾,返回值是布尔类型 # 应用:文件上传时判断文件类型是否匹配 isalpha() # 判断是否是字母 isdigit() # 判断是否是数字 join(seq) # 以指定的字符作为分隔符,将seq中的所有元素合并为一个新的字符串 new_str = '-'.join('abc') # --> 'a-b-c' strip() # 去除字符串两端的空格 lstrip() # 去除字符串左侧的空格 rstrip() # 去除字符串右侧的空格 split() # 分割字符串,遇到参数分割一次,将分割后的字符串保存到列表中 partition(str) # 以str分割成三部分,str前,str和str后 rpartition() # 类似于partition,不过从右边开始 count() # 求字符串中指定参数的个数 ljust(x) # 返回一个原字符串左对齐,并使用空格填充至长度x的新字符串 rjust(x) # 返回一个原字符串右对齐,并使用空格填充至长度x的新字符串 center(x) # 返回一个原字符串居中,并使用空格填充至长度x的新字符串
列表的定义和遍历
# 定义 ? ?namesList = ['xiaoWang','xiaoZhang','xiaoHua'] namelist=list() # 打印列表 ? ?namesList = ['xiaoWang','xiaoZhang','xiaoHua'] ? ?print(namesList[0]) ? ?print(namesList[1]) ? ?print(namesList[2]) # 遍历 使用for循环 ? ?namesList = ['xiaoWang','xiaoZhang','xiaoHua'] ? ?for name in namesList: ? ? ? ?print(name) 使用while循环 namesList = ['xiaoWang','xiaoZhang','xiaoHua'] length = len(namesList) i = 0 while i<length: ? ? ? ?print(namesList[i]) ? ? ? ?i+=1
列表中存放的数据可以进行修改,比如增、删、改等
# 添加元素 append() # 在末尾添加 extend() # 可以将另一个集合中的元素逐一添加到列表中,类似于合并 insert() # 在指定的位置前加入元素 # 修改元素(通过下标确定修改) A = ['xiaoWang','xiaoZhang','xiaoHua'] A[1] = 'xiaoLu' # 查找元素 in(存在),如果存在那么结果为True,否则为False not in(不存在),如果不存在那么结果为true,否则false index和count与字符串中的用法相同 # 删除元素 del:根据下标进行删除 del list[index] remove(e) # 删除列表中第一次出现的元素e,返回值是None,如果没有找到要删除的元素,则报出异常 pop() # 移除列表中的最后一个元素,返回值是删除的元素,默认删除最后一个,但是也可以指定下标删除 clear() # 清除列表,里面所有元素全部删除,没有返回值 # 元素排序 sort() # 默认为由小到大 reverse() # 反转 sorted(list) # 排序,类似于sort count() # 列表中指定参数的个数
列表的嵌套
a=[[1,2,3],[4,5,6],[7,8,9]] # while循环遍历 i=0 while i<len(a): ? ?n=0 ? ?while n<len(a[i]) : ? ? ? ?print(a[i][n]) ? ? ? ?n+=1 i+=1 # for循环遍历 for i in a: ? ?for k in i: ? ? ? ?print(k)
集合(set)是一个无序不重复元素的序列。输出集合时重复的元素被自动去掉,基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
# 增加元素 add(): 添加一个元素 update(): 可以添加多个元素(将'abc'分为a,b,c添加) # 删除元素 remove(): 如果元素存在则删除,否则报错keyerror pop(): 随机删除,一般删除第一个元素 clear(): 清空集合 discard(): 类似remove(),在移除不存在的元素时不会报错 # 集合运算 差集: set1 - set2 set2.difference(set1) 交集: set1 & set2 set2.intersection(set1) 并集: set1 | set2 set2.union(set1)
元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号,列表使用方括号。
# 访问元组 tuple = ('hello',10,3.14) print(tuple[0]) print(tuple[1]) # 修改元组 元组中的元素值是不允许修改的,但可以对元组进行连接组合 ?+ tup1 = (12, 34.56) tup2 = ('abc', 'xyz') tup3 = tup1 + tup2 >>> (12, 34.56, 'abc', 'xyz') # 删除元组 元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组 del tuple;
当变量个数与元组内的元素个数不一致时,可以进行拆装包:
t1 = (2,5,8,9,7) a,*b,c = t1 ?# --> a = 2,b = [5,8,9],c = 7 装包 print(*b) # --> 5,8,9 拆包 t1 = (9,) a,*b = t1 # --> a = 9,b = []
元组使用sorted进行排序,返回结果为列表。
字典和列表一样,也能够存储多个数据。
字典的每个元素以键值对的形式存在,键:值 key:value
根据键访问值
# 增加元素 dict[key] = value key在字典中是唯一的,如果按上述格式,若key在原字典中存在,则修改其值为value,若没有则实现添加功能。 # 查询元素 字典中找元素根据key去找相应的value,单独遍历字典,只能取出字典的key 函数: items():其结果为一个列表,列表中每个元素为一个元组,元组为键值对 此时,遍历:for key,value in dict.items() values():取出字典中的所有value,保存到列表中 key():取出字典中的所有key,保存到列表中 其中,in也可以用于字典操作,用于判断元素有没有在字典的key中出现 get():dict.get(key),取当前key所对应的value,若取不到则返回None,get(key,default):如果取不到则返回default的值 # 删除元素 del:删除指定元素 del dict[key] del dict #删除整个字典 pop(key[,default]): 根据key删除字典中的键值对,若删除成功则返回该值,否则返回default popitem(): 随机删除字典中的键值对,一般从末尾删除 clear():清空字典