python数据类型
1 前面我们讲了字符串优先需要掌握的操作:
按索引取值(正向取+反向取) :只能取 #2、切片(顾头不顾尾,步长) #3、长度len #4、成员运算in和not in #5、移除空白strip #6、切分split #7、循环
下面是我们实际操作的例子:
name='zhangsanfeng***' print(name[:])#取出整个字符串 print(name[::-1])#反向取出整个字符串 print(name[0:5])#从第一个取到第四个从左到右
print(len(name))#输出字符串的长度 for item in name:#判断item在name里,循环 print(item)#以字符的方式输出name print(name.strip('*'))#若()内为空默认消除字符串两边的空格
print(name.split('s'1))#以s为界限分割字符串,将字符串分成两个列表中德元素
2今天我们学习字符串需要掌握的操作:
1、strip,lstrip,rstrip#第一个是消除字符串两边的空格,二是消除字符串左边,三是消除字符串右边 2、lower,upper#lower#将字符串中的大写字符变小写,把小写变大写 3、startswith,endswith#作为一个判断,判断字符串是否以某个或多个字符开始或结束 4、format的三种玩法# 5、split,rsplit#split(‘字符’1)将字符串以一个字符分成两个字符,并以列表的形式输出 6、join#将拆分的字符串再以(‘随便什么’)jion起来 7、replace#替换字符串中的某个字符 8、isdigit#判断用户输入的是否为数字。isdigital()
下面是我们的一些实例:
# name=' ZHang :san :feng ' # # print(name.strip())#默认去掉字符串两边的空格 # # print(name.strip('#*'))#去掉字符串两边的特殊符号 #lstrip与rstrip分别表示消除字符串左边和右边 # print(name.lower())#将字符串中德大写变小写 # print(name.upper())#将字符串中的小写变大写 # print(name.startswith('ZH')) # print(name.endswith('g')) # print(name.split('s',n))#以字符串中的s将字符串分成列表#当split(‘s’,-1)其中-1代表max-split,就是将所有的字符串中德s为界限分割字符串。 # print(name.replace('a''A',2))将字符串中的小写的a转换成大写的A,2代表转换个数 # format的三种玩法 1# # m='my name is {} and my age is{}' # print(m.format('feng',16)) 2# # m='my name is {}{}{} and my age is{}' # print(m.format('alex',18,19,38)) # 3# # m='my name is {name} and my age is{age}' # print(m.format(name='jamees',age=18,)) #jion的用法:将字符串重新拼接起来,并且可以选择连接符??// # name=' ZHang :san :feng ' #join # tag=' ' # print(tag.join(['egon','say','hello','world'])) #jion方法传入的列表必须只包含str类型的元素 # name=' ZHang :san :feng ' # l=name.split('a') # # print('a'.join(l))
# print()#将列表再以jion所要求的方式连接起来
#isdigit:可以判断bytes和unicode类型,是最常用的用于于判断字符是否为"数字"的方法
# isdigit
age=input('your age>>:')
print(age.isdigit())
name='alex'
print(name.index('e'))
print(name.find('e'))
字符串的总结:
只能存一个值,且不可变
3 列表
定义:在[]中用逗号隔开的多个任意类型的值。
那么同样的列表也有优先掌握的操作: 1、按索引存取值(正向存取+反向存取):即可改也可以取 2、切片(顾头不顾尾,步长) 3、长度 4、成员运算in和not in 5、追加 6、删除 7、循环
下面我们用一些实例来解释一下:# name=['feng','xaio','nene','mm']
# print(name[0])#输出列表第一个元素 # name[1]='san'#修改列表第二个元素 # print(name) # name.append('hehe')添加’hehe‘进入列表,默认添加到最后 # print(name) # print(len(name))输出name列表长度 # print('mm'in name)判断’mm‘是否在name中,若再输出为True,否则False # print(name) # del name[0]#删除第一个元素 # name.remove('mm')#remove内必须有需要删除的信息,否则报错 # # name.pop(2)#默认删除最后一个
#print(name.pop())#输出列表弹出的值 # print(name)
对于pop,del,和remove三者的区别
pop()。当()中为空则默认弹出最后一个元素,若填写相应元素在列表中的序列号则会删除相对应的元素,只是从列表中弹出,并没有消失。
del name[] 删除[]中的所对应的列表元素。[]填入相对应的数字。
remove() 则需要将需要移除的列表元素(字符)填入()。
# 循环: # 1# # for item in name:#如果name中有元素则循环打印出来 # print(item) # 2# # i=0 # while i<len(name):#循环打印出列表全部内容 # print(name[i]) # i+=1
3#
for i in rang(0,5,2)
其中0代表开始位置,5代表结束位置,2代表步长。当()只有一个数n的时候表示从0开始,从n结束,步长为1.
字符串与字符串可以比较大小:从第一个字符开始比较,一个一个字符比较,但是仅限于相同的类型比如同时为字母是,大小写都可以,同时a〉Z。
列表与列表也可以比较大小:从第一个元素开始比较,但是元素必须是相同类型的,不能拿‘123’与‘abc’进行比较。
列表总结:
列表中能存多个不同类型的值
有序,可变
列表的列队和堆栈:
列队:先进先出原则
堆栈:先进后出原则
实例如下:
1# name=[] name.append('gege') name.append('gg') name.append('mm') name.append('james') # for item in name: # print(item) 先进先出 2# # print(name.pop(0)) # print(name.pop(0)) # print(name.pop(0)) # print(name.pop(0)) 先进先出 # 堆栈 name=[] name.append('gege') name.append('gg') name.append('mm') name.append('james') print(name.pop()) print(name.pop()) print(name.pop()) print(name.pop()) 先进后出
用insert的方式
name=[] name.insert(0,'gege') name.insert(0,'gg',) name.insert(0,'mm') name.insert(0,'james') print(name) print(name.pop()) print(name.pop()) print(name.pop()) print(name.pop()) 先进先出 print(name.pop(0)) print(name.pop(0)) print(name.pop(0)) print(name.pop(0)) 先进后出