python基础语法4
字符串需要了解的方法
1.find,rfind,index,rindex,count
find:查看字符串在一个长字符串中的第一个相同字符串位置,会返回第一个字符的索引。
rfind:作用一样,不过是从右边开始查找。
index:查看字符串在一个长字符串中的第一个相同字符串位置,会返回第一个字符的索引。
rindex:作用一样,不过是从右边开始查找。
find和index的区别:find在找不到时会返回-1,但是index会报错。
count:查看字符串在一个长字符串的个数。
2.center,ljust,rjust,zfill
center:把字符串居中,设置字符串的个数,不够用指定字符填充。
ljust:字符串居左。
rjust:字符串居右。
zfill:字符串居右,但是不够的会用0来填充。
3.captalize,swapcase,title
captalize:字符串第一个字母大写。
swapcase:英文字符大小写反转。
title:相邻的英文字符首字母大写,其他小写。
4.is数字系列
num1=b'4' #bytes
num2='4' # 阿拉伯数字
num3='四' #中文数字
num4='Ⅳ' #罗马数字
# 1、变量值是字节串或字符串类型并且包含的阿拉伯数字,isdigit()结果才为真
# print(num1.isdigit())
# print(num2.isdigit())
# print(num3.isdigit())
# print(num4.isdigit())
# 2、变量值是字符串类型并且包含的阿拉伯数字,isdecimal()结果才为真
# print(num2.isdecimal())
# print(num3.isdecimal())
# print(num4.isdecimal())
# 3、变量值是字符串类型并且包含的阿拉伯数字\中文数字\罗马数字,isnumeric()结果才为真
print(num2.isnumeric())
print(num3.isnumeric())
print(num4.isnumeric())
5.is其他
isalnum:字符串由字母或数字组成
isalpha:字符串只由字母组成
islower:判断英文字符是否全为小写
isupper:判断英文字符是否全为大写
isspace:判断字符串是否全由空格组成
istitle:判断相邻英文的首字母是否大写,其他是否小写
列表类型
1、用途:按位置存放多个值
2、定义方式:在[]内用逗号分割开多个任意类型的元素
3、常用操作+内置的方法
优先掌握的操作:
#1、按索引存取值(正向存取+反向存取):即可存也可以取
# list1 = [111,222,333,444,555]
# print(list1[0])
# print(list1[-1])
# print(id(list1))
# list1[0] = 666
# print(id(list1))
# list1[5] = 777 # 不可以用不存在的索引赋值
#2、切片(顾头不顾尾,步长)
# list1 = [111,222,333,444,555]
# print(list1[0:3])
# print(list1)
# print(list1[::-1])
#3、长度
# list1 = [111,222,333,444,555]
# print(len(list1))
#4、成员运算in和not in
# list1 = [111,222,333,444,555]
# print(222 in list1)
#5、追加
# list1 = [111,222,333,444,555]
# list1.append(666)
# x = list1.append(777)
# print(list1)
# print(x)
# list1.insert(2,666)
# print(list1)
append会加在列表最后,insert会根据索引插入
#6、删除
list1 = [111,222,333,444,555]
(1)单纯的删除没有返回值
del list1[0] 根据索引删除
list1.remove(333) 根据值删除
(2)取走,由返回值
list1.pop(1) 根据索引取走值
7.循环
# list1 = [111,222,333,444,555]
# for x in list1:
# print(x)
需要掌握的操作
1.count:
# list1 = [111,222,333,333,333,444,555]
# print(list1.count(333))
查看333在列表中的数量
2.reverse:
# list1= [99,33,22,11,-3,87]
# list1.reverse()
# print(list1)
使列表顺序反转。
3.clear():清空列表
4.extend:添加多个值
5.index:查看元素是否在列表中,如果在则返回索引值,不在则报错
6.soft:使列表中的值由小到大排列,如果存在不可比较的值,则报错
soft(reverse=True):使列表中的值由大到小排列,如果存在不可比较的值,则报错
元组类型tuple、
定义方式:在()内用逗号分隔开多个任意类型的元素
tuple数据类型转换:任意能够被for循环遍历的类型都可以交给tuple转成元组
常用操作+内置的方法
优先掌握的操作:
#1、按索引取值(正向取+反向取):只能取
# t = (111,222,333,[44,555])
# print(t[0])
# t[0]=6666
#2、切片(顾头不顾尾,步长)
# t = (111,222,333,[44,555])
# print(t[0:3])
#3、长度
# t = (111,222,333,[44,555])
# print(len(t))
#4、成员运算in和not in
# t = (111,222,333,[44,555])
# print([44,555] in t)
#5、循环
# t = (111,222,333,[44,555])
# for x in t:
# print(x)
需要掌握的操作:
# t = (111,222,333,[44,555])
# t.index()
# t.count()
字典类型dict
1、用途:根据key值来存放多个值
2、定义方式:在{}内用逗号分隔开多个元素,每个元素都是key:value的格式,其中value可以是任意类型而key必须是不可变类型,通常是str类型,而且key不能重复
3.dict数据类型转换
# info = [('k1',111),('k2',222),('k3',3333)]
# dic=dict(info)
# print(dic)
# print(dict(x=1,y=2,z=3))
4.常用操作+内置的方法
优先掌握的操作:
#1、按key存取值:可存可取
# dic = {"name":"egon","age":18}
# dic['gender'] = "male"
# dic['name'] = "xxxx"
# print(dic)
#2、长度len
# dic = {"name":"egon","age":18}
# print(len(dic))
#3、成员运算in和not in: 以key为准
# dic = {"name":"egon","age":18}
# print('name' in dic)
#4、删除
dic = {"name": "egon", "age": 18}
# 单纯的删除
# del dic['name']
# print(dic)
# 取走
# v=dic.pop("name")根据key值来取到value值
# print(v)
# v = dic.popitem()随机删除一个键对值
# print(v)
#5、键keys(),值values(),键值对items()
dic = {"name": "egon", "age": 18}
# >>> dic.keys()
# ['age', 'name']
# >>> dic.values()
# [18, 'egon']
# >>>
# >>> dic.items()以列表的方式拿出
# [('age', 18), ('name', 'egon')]
#6、循环
# for k in dic.keys():
# print(k)
#
# for k in dic:
# print(k)
# for v in dic.values():
# print(v)
# for k,v in dic.items():
# print(k,v)
# 7、get()
# dic = {"name": "egon", "age": 18}
# print(dic['name'])如果key不存在,则会报错
# print(dic.get("name"))但是get就不会报错,会返回None
# 需要掌握的操作
updata:用新字典更新旧字典,如果新字典中的key,旧字典中没有,则会添加,如果有,会以新字典为标准修改旧字典。
formkeys:快速的初始化一个新字典
# dic = {}.fromkeys(["name","age","gender"],None)
setdefault:如果字典中有值不做任何事,没有就添加
v = dic.setdefault('name',"xxx")返回的v值是‘name’的value值,没有添加就是原来的值,添加了就是添加之后的值
集合set的基本使用
1.用途:
关系运算
去重
2.定义方式:在{}内用逗号分割开多个元素,需要注意的是集合的元素必须满足
1、集合的元素必须是不可变类型
2、集合的元素无序
3、集合的元素没有重复
s = {} # 定义空字典
s = set() # 定义空集合
# set数据类型转换
# res = set("hello")
# res = set([111,222,333,111,[666,777]])
# print(res)
3、常用操作+内置的方法
3.1 去重
students = [
{'name':'yx','age':18,'gender':'male'},
{'name':'fdw','age':18,'gender':'male'},
{'name':'qx','age':18,'gender':'male'},
{'name':'yx','age':18,'gender':'male'},
{'name':'yx','age':18,'gender':'male'}
]
new_l = []
for info in students:
if info not in new_l:
new_l.append(info)
print(new_l)
3.2 关系运算
pythons = {"egon",'lxx',"张全蛋","李铁蛋",'刘金蛋',"赵银弹"}
linuxs = {'lili','jack','egon','lxx','tom','kkk'}
(1)交集:求既报名pyton又报名linux的学员姓名
pythons & linuxs
pythons.intersection(linuxs)
(2)并集:求所有学生姓名
pythons | linuxs
pythons.union(linuxs)
(3)差集: 求只报名python的学员姓名
pythons - linuxs
pythons.differece(linuxs)
(4)对称差集:求没有同时报名两门课程的学员
pythons ^ linuxs
pythons.symmetric_differece(linuxs)
(5) 父子集:父子指的包含与被包含的关系
父集:>= .issuperset
子集:<= .issubset
# 了解的内置方法
pop()随机删除一个
remove()指定删除一个,没有就会报错
discard()指定删除一个,没有不会报错
add()添加一个值
updata()添加多个值
differece_updata()删除两个集合中都有的值
isdisjoint()两个集合为空交集时返回True
字典可以存放多个值,但是是无序的
set集合可变,frozenset是不可变集合
深浅copy
1. 默认情况下都是浅copy
浅copy中,如果有可变类型,那么原来的变量改变了,被copy的变量也会跟着改变
2、深copy
from copy import deepcopy
deepcopy(‘要copy的值’)
深copy会把copy的元素和之前完全区分开,即使之前的元素怎么改变不会影响copy的值

浙公网安备 33010602011771号