字符串 str
注:
若想要保持单引号和双引号为字符串的一部分
1)单双引号交替使用,
2)使用转义字符\
3)成对三个引号被存在变量里
二、字符串详细用法
字符串的单个取值例 p_1=”hello”
字符串元素定位置,通过索引 正序(→) 反序(←)开始值从0开始,反序从-1开始
取值方式 字符串名[索引值] 例print(p_1[-1]) 取o
①字符串切片:字符串名[m:n:k]m:索引起始位置,n:索引结束位置+1,k:步长 默认值为1,取左不取右
例
1,print(p_1[2:4:10])取ll
2,print(p_1[:])#k=1 m=0 n=到末尾+1取hello
3,print(p_1[0:]) 取hello
②字符串的进阶操作:python内置函数的调用
切换大小写upper() lower()
例子
s='get'
k='GET'
s_1=s.upper()/k.lower() #大/小写函数
print(s_1) 结果GET/get
2.字符串拼接
例子
a="GET"
a1=a[0]+a[1].lower()+a[2]
print(a1) 结果GeT
3.查找字符串 字符串变量名.find(字符串)
例子
a='easier said than done!'
print(a.find('!')) 结果21
#結果返回字符所在的索引,從左側到右側0開始包括空格,返回-1說明查找的字符不存在
4.字符串的替换 字符串变量名.replace(目标,替换的值,替换次数)替换次数不写默认全部替换,只能先替换在进行其他操作
例子:
a='easier said than done!'
a_1=a.replace('a','@',2)
print(a_1) 结果[email protected] [email protected] than done!
5.split() 根据传入指定的字符去进行切割
例子
a='easier said than done!'
a_1=a.split("a")
print(a_1) 结果['e', 'sier s', 'id th', 'n done!'] #以a为挡板进行切割,结果是列表类型的
指定切割次数
a_1=a.split("a",1)
print(a_1) 结果['e', 'sier said than done!']
空格切割
a='easier said than done!'
a_1=a.split(" ")
print(a_1)
结果['easier', 'said', 'than', 'done!']
特殊切割
a='easier said than done!!!!!'
a_1=a.split("!",5)
print(a_1) 结果['easier said than done', '', '', '', '', '']
6.strip()去除指定元素的头和尾指定的字符,不傳字符時默認去除頭尾的空格
a='easier said than done'
a_1=a.strip("e")
print(a_1) 结果asier said than don
尾部的内容相同一直去除
a='eeeeeasier said than doneeeeee'
a_1=a.strip("e")
print(a_1) 结果asier said than don
字符串的拼接(+)只能是字符串,格式相同类型相同时用+
a='hello'
a_1='world'
a_2=a+" "+a_1
print(a_2) 结果hello world
附加知识
1、字符串转换
①整数利用str()可以转换为字符数,但是字符串不能变为数值型
print(a+str(8888)+a_1) 结果hello8888world
②字符串的值为数字的可以利用int()转成字符串
print(type(int("6777"))) 结果
③str(数据值或者是变量名)函数直接强制转换为字符串
2、格式化输出
①%s输出一个字符串 占坑%d数字
按顺序赋值
name="jack"
age=18
print("2019年%s參加體育比賽,那年他只有%d歲!"%(name,age))
结果 2019年jack參加體育比賽,那年他只有18歲!
②format用{}来占坑,如果不指定顺序就按顺序赋值,少赋值的坑就会报错
name="张三"
date="10月1日"
age=18
print("2019年{1}{0}參加體育比賽,那年他只有{2}歲!".format(name,date,age))
结果2019年10月1日张三參加體育比賽,那年他只有18歲!
三、列表 关键字 list 标志[]
S=[] #空列表
特点:
1、空列表[],关键字list
2、列表里面可以放任何类型的数据 元素与元素直接用逗号隔开
3、列表里面的元素都有索引,从0开始和字符串的索引方式是一致的
4、列表取值方式:列表名[索引值]
5、切片;列表名[m,n,k]跟字符串一样
s=[20,"hello",2.0,[1,2,3]]
print(s[0:4:2]) 结果[20, 2.0]
进阶操作:列表 增删改
增加元素:
1、列表名.append(value)直接追加内容到列表的最后面
s=[20,"hello",2.0,[1,2,3]]
s.append("ok")
print(s) 结果[20, 'hello', 2.0, [1, 2, 3], 'ok']
2、列表名.insert(指定索引值的位置,value)把value插入到指定的位置
s=[20,"hello",2.0,[1,2,3]]
s.insert(1,"ok")
print(s) 结果[20, 'ok', 'hello', 2.0, [1, 2, 3]]
3、extend 扩张列表
s=[20,"hello",2.0,[1,2,3]]
s1=["合理",12,"world"]
s.extend(s1)
print(s) 结果[20, 'hello', 2.0, [1, 2, 3], '合理', 12, 'world']
删除元素
1、删除最后一个元素,列表名.pop()
s=[20,"hello",2.0,[1,2,3]]
s.pop()
print(s) 结果[20, 'hello', 2.0]
2、指定删除元素 列表名.pop(指定的索引位置)
s=[20,"hello",2.0,[1,2,3]]
s.pop(1)
print(s) 结果[20, 2.0, [1, 2, 3]]
3、删除所有元素 列表名.clear()
s=[20,"hello",2.0,[1,2,3]]
s.clear()
print(s) 结果[]
4、修改元素 修改列表里面元素的value
列表名[指定索引]=新值 修改指定的索引值
s=[20,"hello",2.0,[1,2,3]]
s[1]=2019
print(s) 结果[20, 2019, 2.0, [1, 2, 3]]
四、元组 关键字 tuple 标志()
t=() 空元组
特点
1、标志是()关键字tuple
2、元组里面可以放任何类型的数据,元素与元素之间用逗号隔开
3、元组里面的元素也都有索引从0开始跟字符串的索引方式是一致的
4、元组取值方式:元组名[索引值]正序 反序
5、切片:元组名[m:n:k]和字符串一样的操作
注:
①与列表的区别:
1、标志不同
2、元组的值不能进行任何的增删改操作,可以修改元组内部的数据但是不能改外部的数据
例如
第一种
s=(1,"hell0",2.0,[1,2,3],(1,2,3))
s[3]=6666
print(s) 结果 报错TypeError: 'tuple' object does not support item assignment
s=(1,"hell0",2.0,[1,2,3],(1,2,3))
s[3][2]=6666
print(s) 结果(1, 'hell0', 2.0, [1, 2, 6666], (1, 2, 3))
第二种
s=[1,"hell0",2.0,[1,2,3],(1,2,3)]
s[4]=6666
print(s) 结果[1, 'hell0', 2.0, [1, 2, 3], 6666]
s=[1,"hell0",2.0,[1,2,3],(1,2,3)]
s[-1][1]=6666
print(s) 结果报错TypeError: 'tuple' object does not support item assignment
②元组单个元素时加逗号称为元组
a=(1)
a=(1,)
a=(“hello”)
a=(“hello”,)
a=([2,4,6])
a=([2,4,6],)
五、字典 关键字 dict 标志{}
特点
1、关键字dict {}
2、值的特点是 键值对 key_value
3、a={}空字典
4、元组列表都是有序的的数据类型,字典是无序的数据类型
5、取值,按照key取值字典名[key],取所有值 字典名.values(),所有的key值 字典名.keys()
例子
a={"age":18,"name":"張三","address":"上海"}
print(a["age"])
print(a.values())
print(a.keys())
结果
18
dict_values([18, '上海', '張三'])
dict_keys(['age', 'address', 'name'])
6、增删改
增加值:a[新key]=value
修改值:a[已存在的key]=新value
删除值:字典名.pop(key)
例如
a={"age":18,"name":"張三","address":"上海"}
a["sex"]="男"
a["address"]="廣東"
a.pop("age")
print(a) 结果{'sex': '男', 'address': '廣東', 'name': '張三'}
字典嵌套
例如
a={"age":18,"name":"張三","address":"上海","info":{"name":"李四","age":20,"add":"浙江","score":100}}
a_1=a['info']['score']
print(a_1) 结果100
注:key的值时唯一的,value可以不唯一
例子
a={"age":18,"name":"張三","address":"上海","name":"王五"}
print(a) 结果{'name': '王五', 'age': 18, 'address': '上海'}张三被覆盖
a={"age":18,"name":"張三","address":"上海","name2":"張三"}
print(a) 结果{'name': '張三', 'name2': '張三', 'address': '上海', 'age': 18}