基础数据类型---字符串str
1、字符串的索引和切片
索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。
a = 'ABCDEFGH' print(a[0]) print(a[1]) print(a[3])
执行结果:
A
B
D
切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾尾)。
a = 'ABCDEFGH'
print(a[1:4])
print(a[0:]) #默认到最后
print(a[0:-1]) #默认到最后一个
print(a[0:6:2]) #加步长
print(a[7:0:-2]) #反向加步长
执行结果:
BCD
ABCDEFGH
ABCDEFG
ACE
HFDB
2、字符串常用方法()
1)captalize、swapcase、title
name='abbY alI' print(name.capitalize()) #首字母大写,尾字母小写 print(name.swapcase()) #大小写翻转 print(name.title()) #每个单词的首字母大写,尾字母小写
执行结果
Abby ali
ABBy ALi
Abby Ali
2)center()
内同居中,总长度,空白处填充
a1='abby' print(a1.center(20,"*"))
执行结果:
********abby********
3)count()
Python count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。
语法
count()方法语法:
str.count(sub, start= 0,end=len(string)
- sub -- 搜索的子字符串
- start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
- end -- 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。
a='asssrfjala234' sub='s' print(a.count(sub)) print(a.count("s")) print(a.count("s", 0 ,4)) print(a.count("s", 0 ,3)) print(a.count("4"))
执行结果:
3 3 3 2 1
3)expandtabs()
Python expandtabs() 方法把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8。
# 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。
a2 = "this is\tabby" print(a2.expandtabs()) print(a2.expandtabs(18)) a3="this is my\tabby" print(a3.expandtabs())
执行结果:
this is abby this is abby this is my abby
4)startswith() 、endswith()
#startswith 判断是否以...开头 #endswith 判断是否以...结尾
a4="sdfghdjcvn" print(a4.startswith("sd",0,5)) # 返回的是布尔值
print(a4.endswith("dj",0,7)) # 返回的是布尔值
执行结果
True
True
5)find()
寻找字符串中的元素是否存在;返回找到的元素的索引,如果找不到返回-1。
a4="sdfghdjcvnsdj"
print(a4.find("s",0,5))
print(a4.find("z"))
print(a4.find("dj",0,9))
print(a4.find("dj")) #如果所找元素重复只显示第一个元素的索引
执行结果:
0
-1
5
5
6)index()
寻找字符串中的元素是否存在;返回的找到的元素的索引,找不到报错。
a4="sdfghdjcvnsdj" print(a4.index("fg")) print(a4,index("z")) #找不到报错了
执行结果
2 Traceback (most recent call last): File "C:/Users/Administrator/PycharmProjects/untitled/st.py", line 21, in <module> print(a4,index("z")) NameError: name 'index' is not defined
7)split()
以什么分割,最终形成一个列表此列表不含有这个分割的元素。
a5="abby,aBBY,aBBy" print(a5.split(",")) print(a5.split("a")) a6="Abby,aBBY,aBBy" print(a6.split("a"))
执行结果:
['abby', 'aBBY', 'aBBy'] ['', 'bby,', 'BBY,', 'BBy'] ['Abby,', 'BBY,', 'BBy']
8)strip()
strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
a7="0000033330000444400000" print(a7.strip("0")) print(a7.lstrip("0")) #删除开头的字符 print(a7.rstrip("0")) #删除结尾的字符
333300004444 33330000444400000 00000333300004444
9)replace()
替换某个元素
name="she is abby,abby is a very charming and very pretty girl" print(name.replace("abby","juanjuan")) #替换全部元素 print(name.replace("abby","juanjuan",1)) #只替换第一个元素
执行结果
she is juanjuan,juanjuan is a very charming and very pretty girl she is juanjuan,abby is a very charming and very pretty girl
10)is系列
name1="abby12345" name2="12345" name3="abcd" print(name1.isalnum()) #字符串由字母或数字组成 print(name1.isalpha()) #字符串由字母组成 print(name1.isdigit()) #字符串由数字组成 print(name2.isdigit()) print(name3.isalpha())
执行结果
True
False
False
True
True
基础数据类型---元祖tupe
元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组。例:(1,2,3)("a","b","c")
基础数据类型---列表list
列表可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。
1)增
insert、append、extend
l1 = [1,'a','b',2,3,'a'] l1.insert(0,5) #按索引增加 print(l1) l1.append('aaa') #增加到最后 l1.append([1,2,3]) #增加到最后 print(l1) l1.extend(['qaw']) l1.extend(['q','a','w']) print(l1) l1.extend('q,a,w') print(l1)
执行结果
[5, 1, 'a', 'b', 2, 3, 'a'] [5, 1, 'a', 'b', 2, 3, 'a', 'aaa', [1, 2, 3]] [5, 1, 'a', 'b', 2, 3, 'a', 'aaa', [1, 2, 3], 'qaw', 'q', 'a', 'w'] [5, 1, 'a', 'b', 2, 3, 'a', 'aaa', [1, 2, 3], 'qaw', 'q', 'a', 'w', 'q', ',', 'a', ',', 'w']
2)删
l2=['w',2,4,('2','3','5'),'a','b',['a','b','c']] l2.pop(1) #按照位置删除,有返回值 print(l2) del l2[1:4] #按照位置删除,也可以切片删除,没有返回值 print(l2) l2.remove('b') #按照元素删除 print(l2) l2.clear() #清空列表 print(l2)
执行结果
['w', 4, ('2', '3', '5'), 'a', 'b', ['a', 'b', 'c']] ['w', 'b', ['a', 'b', 'c']] ['w', ['a', 'b', 'c']] []
3)改
l3=[3,'a','b',3,4,'b'] l3[1]='sddd' print(l3) l3[1:3]=['c','d'] print(l3)
执行结果
[3, 'sddd', 'b', 3, 4, 'b'] [3, 'c', 'd', 3, 4, 'b']
4)查
切片去查,或者循环去查。
l4=['s',2,3,['a','b'],'w'] print(l4[1]) print(l4[1:4])
执行结果
2 [2, 3, ['a', 'b']]
5)其他操作
#count()统计某个元素在列表出现的次数 l5=["a","b","a","c","y","r"] print(l5.count("a")) #index() 用于从列表中找出某个值第一个匹配项的索引位置 print(l5.index("a")) #sort() 用于在原位置对列表进行排序 li=[2,3,8,7,9,0] print(li.sort()) # 它没有返回值,只能打印li print(li) #reverse() 将列表中的元素反向存放 print(li.reverse()) print(li)
执行结果:
2 0 None [0, 2, 3, 7, 8, 9] None [9, 8, 7, 3, 2, 0]
基础数据类型---字典dict
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。
字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
1)增
dic = {'age':20,'name':'abby','sex':'女'} dic['heigh']=160 #添加新的key:value print(dic) dic['age']=25 #key存在,则覆盖原value print(dic) dic.setdefault('weight') #添加新key,value为空 print(dic) dic.setdefault('weight',50) #有键值对,不做任改变,没有才添加。 print(dic) dic.setdefault('hobby','sleep')##有键值对,不做任改变,没有才添加。 print(dic)
执行结果
{'age': 20, 'name': 'abby', 'sex': '女', 'heigh': 160} {'age': 25, 'name': 'abby', 'sex': '女', 'heigh': 160} {'age': 25, 'name': 'abby', 'sex': '女', 'heigh': 160, 'weight': None} {'age': 25, 'name': 'abby', 'sex': '女', 'heigh': 160, 'weight': None} {'age': 25, 'name': 'abby', 'sex': '女', 'heigh': 160, 'weight': None, 'hobby': 'sleep'}
2)删