Fork me on GitHub

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))   先进后出

 

posted @ 2018-03-20 15:52  道阻切长  阅读(177)  评论(0编辑  收藏  举报