• str数据类型

      字符串是不可变数据类型,具备以下功能     

#!/usr/bin/env python
# -*- coding:utf-8 -*-

str
#capitalize 改变字符串首字母为大写
str1 = "andy "
str2 = str1.capitalize()
print(str2)


#casefold 改变字符串中的大写字母为小写,可以对其他国家的语言进行转换
str3 = "ANDy"
str4 = str3.casefold()
print(str4)

#lower 改变字符串中所有的大写字母为小写,只能对英文、拼音、汉字
str5 = "ANDy"
str6 = str5.lower()
print(str6)

#center 填充单个字符,使原字符串居中总长度为指定值
str7 = "andy"
str8 = str7.center(20,'*')
print(str8)

#count 统计字符串中指定字符的个数,可以接收三个参数,第一个为要查找的字符,第二个为查询起始位置,第三个为查询结束位置
str9 = "this is a test"
str10 = str9.count('t')
print(str10)

#endswith 字符串是否以指定的字符结尾,返回bool值(True/False),可以指定起始位置索引和结束位置索引(左闭右开)
str11 = "andy"
str12 = str11.endswith('n',1,-2)
print(str12)

#startswith 字符串是否以指定的字符开头,返回bool值(True/False),可以指定起始位置索引和结束位置索引(左闭右开)
str13 = "andy"
str14 = str13.startswith('an')
print(str14)

#expandtabs 将制表符转换为指定数量的空格,保证总字符长度为指定的长度,如果没有指定参数,默认为8个空格长度
str15 = "andy\tme"
str16 = str15.expandtabs(10)
print(str16)

#find 查找子串在字符串中的索引位置,存在则返回,不存在则返回-1,可以指定起始位置索引和结束位置索引(左闭右开)
str17 = "my name is andy"
str19 = str17.find('name')
print(str19)

#index 查找子串在字符串中的索引位置,存在则返回,不存在则报错,可以指定起始位置索引和结束位置索引(左闭右开)
str20 = "vspoti"
str21 = str20.index('vs')
print(str21)

#判断数字用isdecimal
str22 = ""
str23 = str22.isalnum() #数字  字符②  汉字二
str25 = str22.isdigit() #数字 字符②
str24 = str22.isdecimal() #数字
print(str23)
print(str24)
print(str25)

#isidentifier 判断字符串是否可以作为变量名(字母、数字、下划线不能以数字开头,不能用python内置关键字)
str26 = "andy"
str27 = str26.isidentifier()
print(str27)

#islower 判断字符串是否都是小写,返回布尔值
str28 = "andy"
str29 = str28.islower()
print(str29)

#islower 判断字符串是否都是大写,返回布尔值
str30 = "andy"
str31 = str30.isupper()
print(str31)

#isprintable 判断字符串中是否包含隐藏的制表符换行符,则不能打印,返回布尔值
str32 = "andy\t is me"
str33 = str32.isprintable()
print(str33)

#isspace 判断是否是空格,返回布尔值
str34 = " \n"
str35 = str34.isspace()
print(str35)


#istitle 判断字符串每一个单词的首字母是否为大写,返回布尔值
str36 = "This Is Test"
str37 = str36.istitle()
print(str37)

#join 把字符串用指定的字符连接起来,连接的对象必须是可以迭代的
str38 = "andy"
str39 = "--r".join(str38)
print(str39)

#ljust 把字符串左对齐,并填充单个字符保证字符串的长度为指定的长度
str40 = "andy"
str41 = str40.ljust(10,"*")
print(str41)

#rjust 把字符串右对齐,并填充单个字符保证字符串的长度为指定的长度
str41 = "andy"
str42 = str41.rjust(10,"*")
print(str42)

#strip 把字符串左右两边的空格去掉,lstrip去掉字符串左边的空格,rstrip去掉字符串右边的空格
str42 = " an dy rr "
str43 = str42.rstrip()
print(str43)

#maketrans  把字符串中的字符进行转换,通过对于的字符映射表
str44 = "andy"
mka = str44.maketrans('a','x')
mkb = str44.translate(mka)
print(mkb)


#partition 把字符串按指定的字符分割,保留分割字符并生成一个新的元组
str45 = "this is a test"
str46 = str45.partition('is')
print(str46)

#split 以指定的字符分割字符串,不保留分割字符,生成一个新的列表
str47 = "this is a test"
str48 = str47.split('is')
print(str48)

#replace 将字符串中的制定字符换成新的字符
str49 = "andy"
str50 = str49.replace('a','y')
print(str50)


#swapcase 将字符串中大写转换为小写,小写转换为大写
str51 = "aNDy"
str52 = str51.swapcase()
print(str52)

#splitlines 按照换行回车分割字符串,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
str53 = "this is a test\n this is a dog"
str54 = str53.splitlines()
print(str54)

#%代表占位符
str55 = "我是:%s,年龄:%s,性别:%s" %("张友",19,"")
print(str55)

#功能主要是格式化输出,以大括号加索引的形式或者直接指定变量的名字如下
str56 = "我是:{0},年龄:{1},性别:{2}"
str57 = str56.format('张友',20,'')
print(str57)

str58 = "我是:{name},年龄:{age}"
str59 = str58.format(name='张友',age=19)
print(str59)

#format_map 格式化传入的是一个字典
str60 = "我是:{name},年龄:{age},性别:{gender}"
str61 = str60.format_map({'name':'洋洋','age':18,'gender':''})
print(str61)

#以下字符串功能需要多关注:
# name = 'andy'
# name.upper()
# name.lower()
# name.split()
# name.find()
# name.strip()
# name.startswith()
# name.format()
# name.replace()
# "alex".join(["aa",'bb'])


#字符串额外功能:
name = "andy"
#索引取值
print(name[0])
#索引切片
print(name[0:3])
#此次0表示第1个字符,3表示第4个字符,2表示步长
print(name[0:3:2])
#取字符串的长度
print(len(name))
# 可以被for循环
for i in name:
    print(i)
  •  list列表     可变类型,具备以下功能
# ##########################list列表 可变类型###########################
list
#append 向列表中追加元素
lista = ["张友","肖洋","泽泽"]
lista.append("宣萱")
print(lista)

#clear 清空列表中元素
lista = ["张友","肖洋","泽泽"]
lista.clear()
print(lista)

#copy 列表浅拷贝
lista = ["张友","肖洋","泽泽"]
listb = lista.copy()
print(listb)

#count 统计列表中元素的数量
lista = ["张友","肖洋","泽泽"]
listc = lista.count("张友")
print(listc)

#extend 批量添加可迭代的对象到列表
lista = ["张友","肖洋","泽泽"]
lista.extend(["宣萱","浩浩"])
print(lista)

#index 查找列表中对象的索引,如果对象不存在则报错
lista = ["张友","肖洋","泽泽"]
listi = lista.index("肖洋")
print(listi)

#insert 在列表中指定的索引位置插入元素
listc = ["andy","tom","hehe"]
listc.insert(2,"haha")
print(listc)

#pop 没有指定索引位置参数的时候默认删除列表的最后一个元素,指定了索引参数位置可以删除列表任意位置的元素,并且可以获取删掉元素的值
listc = ["andy","tom","hehe"]
liste = listc.pop()
print(liste)
print(listc)

#remove 删除列表中指定的元素,只能指定元素名,不能指定索引,也不能获取删除元素的值
listf = ["andy","hello","vspoti"]
listf.remove("andy")
print(listf)

#del 删除列表中元素,指定索引的位置,不能获取元素的值
del listf[-1]
print(listf)

#reverse 反转列表中元素的位置
listg = ["andy","hello","vspoti"]
listg.reverse()
print(listg)

#sort 对列表排序,默认从小到大,参数reverse=True则从大到小排序
listg = [1,3,2,4]
listg.sort(reverse=True)
print(listg)

#列表中其他比较重要
listh = ["zhangyou","zhangsan","lishi"]
#列表索引
print(listh[0])
#列表切片,o表示开始的索引位置,2表示结束索引位置,1表示步长
print(listh[0:2:1])
#列表是可以迭代的对象,可以使用for循环
for i in listh:
    print(i)
#列表的嵌套
lists = [1,2,3,[2,8,9]]
print(lists)

# 知识拓展
#python2.x中存在range()(一次生成所有需要的元素),xrange(需要的时候才生成不会占用大量的内存)
#python3.x中存在range(),可以指定三个参数,相当于python2.x中的xrange()
for i  in range(1,10,2): #范围左闭右开,并且可以指定步长
    print(i)

for i  in range(10,1,-1): #范围左闭右开,并且可以指定步长
    print(i-1)

#enumerate 为列表额外生成一列有序的数字
listu = ["张友","洋洋","哈哈"]
for i,j in enumerate(listu,1):
    print(i,j)
  • 元组

    元组是不可变类型  

#count 统计元组中元素的个数
tuplea = ("zhangyou","andy","yang")
tuplec = tuplea.count("zhangyou")
print(tuplec)

#index 查找元素在元组中的位置,元素不存在则报错
tupled = ("zhangyou","andy","yang")
tuplee = tupled.index("andy")
print(tuplee)

#元组额外扩展
#元组是可迭代的对象,可以使用for对其进行迭代
tuplek = ("zhangyou","andy","yang")
for j in tuplek:
    print(j)

#索引
tuplej = ("zhangyou","andy","yang")
print(tuplej[0])

#切片
tuplel = ("zhangyou","andy","yang")
tuplem = tuplel[0:1]
print(tuplem)

#元组嵌套,元组本身的元素是不能被修改的,但是元素中包含的列表整体不能被修改,但是能够修改列表中的元素的值
tuplen = ("zhangyou","andy","yang",["张友","洋洋"])
# tuplen[0] = "asss" #此处不支持
# print(tuplen)

tuplen[3][0] = "张学友" #此处支持
print(tuplen)

# **********元组最后一定要加逗号,**********
tuplex = ("zhangyou")
tupley = ("zhangyou",)
print(type(tuplex)) #此处为字符串类型
print(type(tupley)) #此处为元组类型

 

  •  字典

    字典是可变无序类型

    

#clear 清空字典中的元素
dicta = {"k1":"v1","k2":"v2"}
dicta.clear()
print(dicta)

#copy 字典浅复制
dicta = {"k1":"v1","k2":"v2"}
dictb = dicta.copy()
print(dictb)

#get 根据字典中的键取值,不存在则返回None
dicta = {"k1":"v1","k2":"v2"}
dictq = dicta.get("k3")
print(dictq)

#pop 根据字典中的键删除相应的键值对,并获取对应键的值,如果不存在则返回错误
dicta = {"k1":"v1","k2":"v2"}
k1value = dicta.pop('k1')
print(k1value)
print(dicta)

#setdefault 在字典中根据键取值,如果不存在则输出指定的默认值
dicta = {"k1":"v1","k2":"v2"}
dicth = dicta.setdefault('k2',"v4")
print(dicth)


#keys 获取字典key的值,并返回一个列表
dicta = {"k1":"v1","k2":"v2"}
dictc = dicta.keys()
print(dictc)

#items 以列表的形式列出字典中的键值对
dicta = {"k1":"v1","k2":"v2"}
dictv = dicta.items()
print(dictv)

#popitem 随机删除字典中的键值对,并返回(字典是无序的)
dicta = {"k1":"v1","k2":"v2"}
dicts = dicta.popitem()
print(dicta)
print(dicts)

#update 更新字典中的键值对,存在则更新,不存在则添加
dicta = {"k1":"v1","k2":"v2"}
dicta.update({"k3":"v3"})
print(dicta)

#values 以列表的形式返回字典中的值
dicta = {"k1":"v1","k2":"v2"}
# dictva = dicta.values()
print(dicta.values())
# print(dictva)

#fromkeys 根据提供的第一个参数可迭代对象作为键,第二个参数作为键值
dicto = dicta.fromkeys(["aa","bb"],"sds")
print(dicto)

dicto = dicta.fromkeys(["aa","bb"],[1,])
dicto['aa'].append(22)
print(dicto)

# 字典额外扩展
#dicta = {"k1":"v1","k2":"v2",{"k3":"v3"},["aa"]:["22"]} #字典的键是不可变类型,此处错误,可以使元组,整数,布尔值
  •  整数 不可变类型 
#bit_length 10进制整数能用最少的二进制位表示
intt = 10
ints = intt.bit_length()
print(ints)

#to_bytes 十进制整数用16进制表示,byteorder参数是big时左边补0,参数是small时右边补0
intt = 11
ints = intt.to_bytes(10,byteorder="little")
print(ints)

 

  • 布尔值 不可变类型   
#数字0是false
#空内容是False,空格是True
a = " "
print(bool(a))
  •  set 集合是无序无重复的类型

    

#add 向集合中添加元素
seta = {1,2,3,4,5}
seta.add(9)
print(seta)

#clear 清除集合中的元素
setb = {"张三","李四","王五"}
setb.clear()
print(setb)

#copy 集合浅复制
setb = {"张三","李四","王五"}
setc = setb.copy()
print(setc)

#difference 比较集合的元素差异
setc = {1,2,3,4,5}
setd = {3,4,5,6,7}
sete = setc.difference(setd) #c集合有,d集合没有的
setf = setd.difference(setc) #d集合有,c集合没有的
setl = setc.symmetric_difference(setd) #对称差集
print(sete)
print(setf)
print(setl)

#difference_update 移除所有在另一个集合里拥有的元素
seth = {1,2,3,4,5}
seti = {3,4,5,6,7}
# seth.difference_update(seti)
seti.difference_update(seth)
print(seth)

#discard 移除一个集合里的元素,不存在不报错
seth = {1,2,3,4,5}
seth.discard(1)
print(seth)

#intersection 取两个集合的交集
seth = {1,2,3,4,5}
seti = {3,4,5,6,7}
intsec = seth.intersection(seti)
print(intsec)

# #intersection_update
# seth = {1,2,3,4,5} #把两个集合的交集更新到第一集合中
# seti = {3,4,5,6,7}
# seth.intersection_update(seti)
# print(seth)

#remove 移除集合中的元素,不存在则报错
seth = {1,2,3,4,5}
seth.remove(1)
print(seth)

#pop 任意删除集合中一个不确定的元素,可以获取删除的值
seth = {1,2,3,4,5}
setz = seth.pop()
print(seth)
print(setz)

#update 参数必须是可以迭代的对象
seth = {1,2,3,4,5}
seth.update([7,8])
print(seth)

#集合拓展
#集合是可以迭代的
seth = {1,2,3,4,5}
for i in seth:
    print(i)

#集合是可以嵌套的,不能包含可变类型
#seth = {1,2,3,4,5,(1,2,3),[1,2,3,4]} #错误

seth = {1,2,3,4,5,(1,2,3)}
print(seth)

 

posted on 2017-05-08 17:42  vspoti  阅读(125)  评论(0)    收藏  举报