一、字符串(string)
1.1字符串定义
①定义单行字符串:一对引号字符串(单引号,双引号)
name1 = 'Tom'
name2 = "Rose"
②定义多行字符串:三对单引号或双引号
name1 = '''Tom'''
name2 = """Rose"""
a = '''
i am Tom,
nice to meet you
'''
b = """
i am Rose,
nice to meet you,too
"""
③转换字符串:使用str()方法强制转换;如 print(str(10))
④使用input() 方法输入字符串;如 name = input(‘请输入用户名:’)
⑤字符串拼接
var1 = '字符串'
var2 = str(1)
print(var1 + var2)
print(type(var1 + var2))
1.2字符串操作
①字符串的访问:1).索引访问;2).正序访问:索引从0开始;3).倒序访问:索引从-1开始
#取到不同下标对应的数据
name = 'testfan'
print(name[0])
print(name[1])
print(name[2])
#下标也可以写负数
print(name[-1])
print(name[-2])
②字符串切片:
切片是指对操作的对象截取其中一部分的操作,字符串,列表,元组都支持切片
语法:字符串[开始位置下标:结束位置下标:步长] 步长是控制方向的,正数从左往右取,负数是从右到左取
注意:选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身),如果不写步长默认是1.
name = 'testqiepian'
print(name[2:5:1]) # 下标2到5,步长是1
print(name[2:5]) # 默认步长是1
print(name[:5]) # 不写起始,则认为是从头开始
print(name[2:5:2]) # 步长为2就后面元素的索引-前面的索引=步长
print(name[::]) # testfan
print(name[:]) # testfan
print(name[-5:-1]) # 倒叙截取,从-5个字符(重点)
print(name[-5:])
print(name[:-1])
print(name[::-1])
print(name[-3:])
print(name[2:-3])
小结:
1).[:]提取从开头(默认位置0)到结尾(默认位置-1)的整个字符串
2).[start:]从start提取到结尾
3).[:end]从开头提取到end-1
4).[start:end]从start提取到end-1
5).[start🔚step]从start提取到end-1,每step个字符提取一个
6).[::-1]逆序
1.3 字符串方法
① 对字符串遍历
for i in str:
print(i)
②获取字符串的长度,字符个数
lenth = len(str)
print(lenth)
③获取字符串索引
for i in range(lenth):
print(str[i])
④查询字符串中的字符是否存在
for i in str:
if i == 't':
print('ture')
⑤find 查找字符串索引:返回第一个找到的字符索引,如果没有找到返回-1
语法:字符串序列.find(子串,开始位置下标,结束位置下标)
str = 'dfadfasdfasd'
print(str.find('a'))
⑥字符串替换 :替换全部符合的字符串
语法:字符串序列.replace(旧子串,新子串,替换次数)
new_str = str.replace('df','123')
print(new_str)
替换字符串次数
str = 'dfadfasdfasd'
new_str1 = str.replace('df','456',2)
print(new_str1)
⑦分割符split(分隔符,分割次数) 返回列表。将分割以后的各个元素安装顺序存储在列表中;分隔符不填写,默认分割空格
语法:字符串序列.split(分割字符,num)
str1 = 'asdfadfasfdsadsfssda'
print(str1.split('a'))
str1 = 'hello world and testfan and yaoyao'
print(str1.split(' ',2))
⑧字符串中字母的转换,首字母大写
print('hello'.capitalize())
首个单词字母大写
print('hello world'.title())
print('hello_world'.title())
print('hell_dsf-fdsafd'.title())
字符串大写
print('adb'.upper())
字符串小写
print('AdB'.lower())
去除字符串空格 两端空格 左边空格 右边空格
print(' hello '.strip())
print(' hello '.lstrip())
print(' hello '.rstrip())
字符串判断方法 返回bool:startswith():检查字符串是否是以指定子串开头,是则返回True,否则返回False。如果设置开始和结束位置下标,则在指定范围内检查
print('hello'.startswith('h'))
print('hello'.endswith('o'))
判断字符串只包含数字
print('123'.isdigit())
判断字符串是否是纯空白
print(' '.isspace())
print(' 12 '.isspace())
判断字符串是否是纯字母
print('adb'.isalpha())
判断字母或者数字,不支持符号
print('123'.isalnum())
二、列表
2.1 列表特性
1)列表由一系列按特定顺序排列的组合。
2)列表中的元素是有序的;
3)列表长度不确定,在使用列表时不需要提前声明长度;
4)列表中的存储元素类型可以不唯一,元素之间没有任何关系;
5)列表中可以有重复元素。
6)列表是python中内置有序可变序列,列表的所有元素放在一对中括号[ ]中,并用逗号分隔开。
2.2列表操作
1)查找
①下标:
name_list=['tom','lily','rose']
print(name_list[0]) # tom
②方法:
index(): 返回指定数据所在位置的下标
语法:列表序列.index(数据,开始位置的下标,结束位置的下标)
name_list = ['tom','lily','rose']
print(name_list.index('tom')) # 0
count():统计指定数据在当前列表中出现的次数
name_list=['tom','lily','rose']
print(name_list.count('tom')) # 1
len():可以获取列表的长度,即列表中数据的个数
name_list=['tom','lily','rose']
print(len(name_list)) # 3
in:判断指定的数据在某个列表序列,如果在返回True,否则返回False
name_list=['tom','lily','rose']
print('lily'in name_list) #True
print('yao' in name_list) #False
2)新增
①新增:append():列表尾部追加数据
语法:列表序列.append(数据)
list = ['a','b','c']
list1 = list.append('d')
print(list)
insert(): 指定位置新增数据
语法:列表序列.insert(位置下标,数据)
name_list = ['tom','lily','rose']
name_list.insert(0,'yaoyao') # 结果:['yaoyao', 'tom', 'lily', 'rose']
print(name_list)
extend(): 列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一加入列表中
语法:列表序列.extend(数据)
name_list = ['tom','lily','rose']
name_list.extend(['a','b','c']) #结果:['tom', 'lily', 'rose', 'a', 'b', 'c']
print(name_list)
3) 删除
①del:del 目标
name_list = ['tom','lily','rose']
#del name_list 删除整个列表
del name_list[0]
remove():删除列表中匹配到的第一个xxx的元素
pop():删除指定下标的数据(默认为最后一个),并返回该数据
name_list = ['tom','lily','rose']
del_name = name_list.pop(0) # 返回的是被删除的元素 #结果是tom
print(del_name) #结果是['lily', 'rose']
print(name_list) # 不加索引,默认删除最后一个元素
name_list.pop() # 结果是['lily'] print(name_list)
clear():清空列表
name_list = ['tom','lily','rose']
name_list.clear() #清除列表里面的所有元素 ; 结果是[]
print(name_list)
4)修改
①通过索引修改指定值
name_list = ['tom','lily','rose']
name_list[0]='yaoyao'
name_list[2]="yaoyao" #['yaoyao', 'lily', 'rose']
print(name_list)
②逆转列表:reverse()
name_list=['tom','lily','rose']
name_list.reverse() # ['rose', 'lily', 'tom']
print(name_list)
③列表排序
name_list=[1,7,3,2,8]
name_list.sort() # [1, 2, 3, 7, 8]
print(name_list)
三、元组
3.1 元组特性:元组()
①元组内容可以重复
②元组本身不可修改(相对而言)
③元组创建的时候必须有多个元素,如果只有一个元素必须加逗号(英文模式)
3.2 元组操作
①元组定义
tuple1 = ('aa','bb','cc','dd')
print(tuple1[0]) # aa
#多个数据元组
t1 = (10,20,40)
#单个数据元组
t2 = (10,)
②按照下标查找数据
tuple1 = ('aa','bb','cc','dd')
print(tuple1[0]) # aa
③len() 统计元组中数据的个数
tuple1 = ('aa','bb','cc','dd')
print(len(tuple1)) # 4
四、字典
4.1 字典特性
①字典用键值对来表示:{key:value}
②键不可以重复
③字典中的元素(键值对)是无序的
4.2 字典操作
①增加字典数据:字典序列[key]=值
dict1 = {}
dict1['name'] = 'lisi'
dict1['age'] = 33
print(dict1)
②字典查询:
通过key获取值
dict1 ={'name':'tom','age':20,'gender':'男'}
print(dict1['name']) #tom
print(dict1['id']) #报错
通过get()方法:dict.get(key,默认值)
获取数据,不能用索引 get函数方法如果没有取值,就是返回None
dict1 = {'name':'tom','age':20,'sex':'男'}
print(dict1['name'])
print(dict1.get('name'))
③修改字典值:字典序列[key]=值
dict1['name'] = '周杰伦'
print(dict1)
④ 删除:del()/del: 删除字典或删除字典中指定键值对
del dict1['name']
print(dict1)
⑤字典遍历,遍历默认字典里面的key值,遍历keys values items
dict1 = {'name':'tom','age':20,'sex':'男'}
for i in dict1:
print(i)
for i in dict1.keys():
print(i)
print(type(i))
for i in dict1.values():
print(i)
for i,v in dict1.items():
print(i,v)
print(type(i))
#判断字典是否存在某个key
if dict1.get('namea') == None:
print('不存在这个key')
if 'age' in dict1.keys():
print('存在这个key')