Python 3.基本数据类型

数字 字符串 列表 元组 字典 布尔值

1.可变不可变

可变:列表,字典

不可变:字符串,元组,数字

2.访问顺序

直接访问:数字

顺序访问:字符串,列表,元组

映       射:字典

3.存放元素个数

容器类型:列表,元组,字典

原       子:字符串,数字

一、数字                                                                                                                                             
① int(...) 

#将字符串转化为数字
d = "123"
z = int(d)
print(type(z),z)

二、字符串                                                                                                                                        
① replace/find/join/strip/startwith/split/upper/lower/format

#①find()
#从开始往后找,找到第一个后,获取其位置。没找到返回-1
#index方法很类似。但index传入的参数不合理时报错
test3 = "lutingluting"
s9 = test3.find("ing")
print(s9)
#②replace()#替换:用123替换所以的in test1 = 'LuTingLuTingLuTing' v = test1.replace("in","123") print(v) #用123替换前两个的in v = test1.replace("in","123",2) print(v)
#③upper()#是否全为大写 test11="LuTing" print(test11) s17 = test11.isupper() #转化为大写 s18 = test11.upper() print(s17,s18) #④lower()#是否全为小写 test11="LuTing" print(test11) s17 = test11.islower() #转化为小写 s18 = test11.lower() print(s17,s18) #⑤join() #将字符串中的每一个元素按照指定分隔符进行拼接 test11="弗洛伊德心理哲学" print(test11) t = " " s18 = t.join(test11) print(s18) #⑥strip()#去除指定字符 \t \n可传参数(参数包含其子序列),默认空格 test11=" \nLuTing " print(test11) s17 = test11.lstrip() print("lstrip():"+s17) s17 = test11.rstrip() print(s17) s17 = test11.strip() print(s17) #⑦split() test1 = "testtgh\nsthytsjhh" #以s分割,可单独得到s v = test1.partition("s") print(v) v =test1.rpartition("s") print(v) #以s分割 v = test1.split("s",3) print(v) v = test1.rsplit("s",3) print(v) #分割,只能根据,true , false :是否保留换行 v = test1.splitlines(True) print(v)

三、列表                                                                                                                                           
① append/extend/insert

lists2 = [['Tom', 95.5], ['Jo', 85], ['lt', 59], 22]
# 追加尾部
lists2.append(80)
lists2.append("lt")
lists2.append(['tt', 83])
#扩展原列表,参数必须是可迭代对象(str,列表。。。)
lists2.extend(["a",12])
print(lists2)
# 在指定索引位置插入元素
lists2.insert(0, ['rr', 100])

② 索引,切片,循环

lists1 = ['runoob', 786, 2.23, 'john', 70.2, ['Tom', 95.5]]
print(lists1[0])  # 输出列表的第一个元素
print(lists1[1:3])  # 输出第二个至第三个元素,结果为列表
#转换
li = list("lahsjdjd")#内部使用for循环
print(li)
#列表转换字符串:需要写for循环一个一个处理:既有数字又有字符串
v = [11,2,"ly","lt"]
v1 = str(v)
print(v1)#原样返回
s = ""
for i in v:
    s = s + str(i)
print(s)

四、元组                                                                                                                                                             
① 索引,切片,循环,一级元素不能被修改

tuples = ('runoob', 786, (2.23, 'john'), [(22,44)],)
#tuples[0] = 123   一级元素
tuples[3][0] = 123  #非一级元素
print(tuples)
#一般写元组时,推荐在最后加入“逗号”,以和方法区分
tinytuple = (123, 'john',)
#索引
v = tuples[0]
print(v)  # 输出元组的第一个元素
#切片
v = tuples[1:3]
print(v)  # 输出第二个至第三个的元素
print(tuples[2:])  # 输出从第三个开始至列表末尾的所有元素
print(tinytuple * 2)  # 输出元组两次
print(tuples + tinytuple)  # 打印组合的元组

#可以被for循环,可迭代对象
for item in tuples:
    print(item)

五、字典                                                                                                                                                             
① get/update/keys/values/items/ for/索引

d = {'one':"This is one",2:"This is two"}
tinydict = {'name': (33,22,), 'code': 6734, 'dept': True}
#根据索引找
print(d['one'])  # 输出键为'one' 的值
print(tinydict.keys())  # 输出所有键
print(tinydict.values())  # 输出所有值
#for循环
for item in tinydict.keys():
    print(item)
for item in tinydict.values():
    print(item)
for k,v in tinydict.items():
    print(k,v)

#根据key获取值,key不存在,指定默认值(None)
s = d.get(123,"lt")
print(s)
#更新
d.update({"sn":220,"ad":30})
print(d)
d.update(sno=214,age=23)
print(d)

六、布尔值(0 1)                                                                                                                        
① bool(...)
② None "" () [] {} 0 ==> False

整形,int
  Python2中,短的是整形int,太长的是长整型long
  Python3中,都是int
1.将字符串转化为数字

复制代码
c = 123
d = "123"
print(type(c),c)
print(type(d),d)
z = int(d)
print(type(z),z)
e = "a"
#将e按照16进制转化为10进制
y = int(e , base=16)
print(y)
复制代码

2.bit_length()

复制代码
age = 10
#当前数字的二进制,至少用几位表示
x = age.bit_length()
print(x)
# 1 1
# 2 10
# 3 11
# 4 100
# 5 101
复制代码

 

#字符串 str

#注意:字符串一旦创建,不可修改,修改或者拼接,就会造成重新生成字符串

复制代码
s='abcde,figklmn!'
print (s)           # 输出完整字符串
print (s[0])        # 索引:输出字符串中的第一个字符
print (s[2:5])      # 切片:输出字符串中第三个至第五个之间的字符串  >=2  <5
print (s[-5:-2])    # 输出字符串倒数第三个,再往前数
print (s[2:])       # 输出从第三个字符开始的字符串
print (s * 2)       # 输出字符串两次
print (s + "TEST")  # 输出连接的字符串
print (len(s))      # 输出字符串的长度
#首字母大写
s1 = test1.capitalize()
print(s1)
test2 = 'LuTing'
#所有变小写,casefold更厉害,很多未知的对应关系变小写
s2 = test2.casefold()
print(s2)
#大小写转换
s2 = test2.swapcase()
print("swapcase():"+s2)
s3 =test2.lower()
print(s3)
#设置宽度,并将内容居中
# 20 代指总长度
# 路 空白部分填充,一个字符,可有可无
s4 = test1.center(20,"路")
print(s4)
s4 = test1.ljust(20,"路")
print(s4)
s4 = test1.rjust(20,"路")
print(s4)
#在字符串中寻找子序列出现的次数
s5 = test3.count("lu")
print(s5)
s6 = test3.count("lu",5 ,8)
print(s6)
#是否以某个子序列开始/结尾
s7 = test3.startswith("ting",2 ,8)
print(s7)
s8 = test3.endswith("ing",2 )
print(s7)
#格式化,将一个字符串中的占位符替换为指定的值
test4 = "i am {name} age {age}"
s10 = test4.format(name="路亭",age=18)
print(s10)
test5 = "i am {0} age {1}"
s11 = test5.format("路亭",18)
print(s11)
#格式化,参数为字典
s12 = test4.format_map({"name":"路亭","age":18})
print(s12)
test6 = "lt723"
#字符串是否只包含字母、数字
s13 = test6.isalnum()
#字符串是否只包含字母、汉字
s14 = test6.isalpha()
print(s13)
print(s14)
test7 = "lt723"
#字符串是否只包含数字,但特殊格式的数字则有区分  eg:2,二,②
s15 = test7.isdecimal()
s16 = test7.isdigit()
s17 = test7.isnumeric()
print(s15,s16,s17)
#expandtabs() 断句20
test8="username\temail\tpassword\nluotao\t134.qq.com\t123\nluotao\t134.qq.com\t123\nluotao\t134.qq.com\t123"
s17 = test8.expandtabs(20)
print(s17)
#字母,数字,下划线 :标识符   class  def
test9="def"
s18 = test9.isidentifier()
print(s18)
#是否存在不可显示的字符
# eg:\t 制表符 \n 换行
test10="abcde\ndkdldld"
s18 = test10.isidentifier()
print(s18)
# 是否字符全都是空格
test10="    "
s18 = test10.isspace()
print(s18)
# 是否是标题:每一个单词首字母大写
test10="I Am luo"
s18 = test10.istitle()
print(s18)
#讲字符串转化为标题
t = test10.title()
print(t)
s18 = t.istitle()
print(s18)
#"aeiou","12345"用后面对应前面的进行替换
v = "abcdef;ghijkl;mnopq;rstuvw,xyz"
m = str.maketrans("aeiou","12345")
new_v = v.translate(m)
print(new_v)
复制代码

 #列表 list

复制代码
# -*- coding: utf-8 -*
# list
#有序,元素可以被修改

lists1 = ['runoob', 786, 2.23, 'john', 70.2, ['Tom', 95.5]]
tinylist = [123, 'john']
"""
print(lists1)  # 输出完整列表
print(lists1[0])  # 输出列表的第一个元素
print(lists1[1:3])  # 输出第二个至第三个元素,结果为列表
print(lists1[2:])  # 输出从第三个开始至列表末尾的所有元素
print(tinylist * 2)  # 输出列表两次
print(lists1 + tinylist)  # 打印组合的列表
"""

#转换
li = list("lahsjdjd")#内部使用for循环
print(li)
#列表转换字符串:需要写for循环一个一个处理:既有数字又有字符串
v = [11,2,"ly","lt"]
v1 = str(v)
print(v1)#原样返回
s = ""
for i in v:
    s = s + str(i)
print(s)
#修改
lists1[1] = "update"
print(lists1)
lists1[1:3] = ["first","second"]
print(lists1)

# in 操作
v = 786 in lists1
print(v)
lists2 = [['Tom', 95.5], ['Jo', 85], ['lt', 59], 22]
print(lists2[1])
print(lists2[1][1])
print(lists2[-1])
print(lists2[-2])
# 追加尾部
lists2.append(80)
lists2.append("lt")
lists2.append(['tt', 83])
#扩展原列表,参数必须是可迭代对象(str,列表。。。)
lists2.extend(["a",12])
print(lists2)
#拷贝 浅拷贝
v = lists2.copy()
print(v)
#清空列表
v.clear()
print(v)
# 在指定索引位置插入元素
lists2.insert(0, ['rr', 100])
#删除列表中的指定值,左边优先
lists2.remove(22)
# 删除某个值(1.指定索引,2.默认最后一个),并获取删除的值
v = lists2.pop()
print(v)
# 删除索引位置
v = lists2.pop(3)
print(v)
#删除
del lists1[0]
print(lists1)
del lists1[0:2]
print(lists1)
#根据值获取当前值的索引位置(左边优先)
v = lists2.index(22)
#将当前列表进行翻转
lists2.reverse()
print(lists2)
#列表的排序
lists2.sort()#默认升序
print(lists2)
lists2.sort(reverse=True)#降序
print(lists2)
复制代码

# tuple
#有序,一级元素不可被修改/增加/删除

① 索引,切片,循环

复制代码
# tuple
#有序,一级元素不可被修改,增加,删除
tuples = ('runoob', 786, (2.23, 'john'), [(22,44)],)
#tuples[0] = 123   一级元素
tuples[3][0] = 123  #非一级元素
print(tuples)
#一般写元组时,推荐在最后加入“逗号”,以和方法区分
tinytuple = (123, 'john',)
#索引
v = tuples[0]
print(v)  # 输出元组的第一个元素
#切片
v = tuples[1:3]
print(v)  # 输出第二个至第三个的元素
print(tuples[2:])  # 输出从第三个开始至列表末尾的所有元素
print(tinytuple * 2)  # 输出元组两次
print(tuples + tinytuple)  # 打印组合的元组

#可以被for循环,可迭代对象
for item in tuples:
    print(item)

# 转换
s = "luotao"
li = [12,"lt",(203,203,)]
v = tuple(s)
print(v)
v = list(tuples)
print(v)
#获取指定元素在元组中出现的次数
v = tuples.count(786)
print(v)
#获取指定元素的索引位置
v = tuples.index(786)
print(v)
复制代码

# dict
#字典是无序的

复制代码
# dict
#字典是无序的
#布尔值(True=1,False=0),列表,字典不能作为字典的key
#字典的value值可以是任何值
d = {'one':"This is one",2:"This is two"}
tinydict = {'name': (33,22,), 'code': 6734, 'dept': True}
#根据索引找
print(d['one'])  # 输出键为'one' 的值
print(tinydict.keys())  # 输出所有键
print(tinydict.values())  # 输出所有值
#字典支持del删除
del d["one"]
print(d)
#for循环
for item in tinydict.keys():
    print(item)
for item in tinydict.values():
    print(item)
for k,v in tinydict.items():
    print(k,v)
print("################################")
#############################################
#根据序列,创建字典,并指定统一的值
v = dict.fromkeys([11,22,(22,33,)],123)
print(v)
v1 = dict.copy(v)
print(v1)
dict.clear(v1)
print(v1)
#根据key获取值,key不存在,指定默认值(None)
s = d.get(123,"lt")
print(s)
#根据key删除并获取值,key不存在,指定返回值
v = d.pop(2,1)
print(v)
k,v=tinydict.popitem()
print(d,k,v)
#设置值
#已存在,不设置,获取当前key对应的值
#不存在,设置,获取当前key对应的值
v = d.setdefault("k1","tt")
print(d,v)
#更新
d.update({"sn":220,"ad":30})
print(d)
d.update(sno=214,age=23)
print(d)
复制代码
 

猜你喜欢

转载自www.cnblogs.com/lt123456/p/9722479.html