数据类型相关总结

Posted yimiyuchen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据类型相关总结相关的知识,希望对你有一定的参考价值。

数据类型相关总结

一、数据类型

  1. 数字
  2. 字符串
  3. 列表
  4. 元组
  5. 字典
  6. 集合

二、基础数据类型

  1. 数字 int

int:数字,如1,2,4,…用于加减乘除等计算

  1. 布尔值bool

真        1        True

假        0        False

注意:True、False首字母必须大写

  1. 字符串 str

3.1    索引与切片

l   索引:下标,就是初始索引为0。

如: a = ‘abcdef’

该字符串的下标为 012345

print(a[0]),输出:a

l   切片:通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串,注意:切片 顾头不顾尾,即不能取到最后一个索引的值,只能取到最后一个索引前的值。

切片:字符串变量[起始索引:结束索引+1:步长]

a = ‘abcdef’

print(a[0:3]),输出:abc

print(a[2:5]),输出:cde

print(a[0:]),输出:abcdef ------- 默认到最后一个

print(a[:3]),输出:abc ----- 默认从第一个开始

print(a[0:-1]),输出abcdef ----- -1就是最后一个

print(a[0:5:2]),输出 ace ------ 加步长

print(a[5:0:-2]),输出 ec ---- 反向加步长

3.2    字符串常用方法

(1)      captalize(重点**) ----- 首字母大写,其余字母小写

s = "abcde"

s1 = s.capitalize()

print(s1)

#结果:Abcde

(2)      swapcase -----大小写翻转

s = "ABcde"

s1 = s. swapcase()

print(s1)

#结果:abCDE

(3)      title  -----非字母隔开的每个单词的首字母大写

s = ‘alex wusir*taibai2ritian‘

s3 = s.title()

print(s3)

结果:Alex Wusir*Taibai2Ritian

(4)      center----设置总长度,并居中(重点*)

s = "abcde"

s4 = s.center(30,)    结果:abcde

s4 = s.center(30,‘*‘)   结果:************abcde*************

print s4

(5)      转换字母大小写

*** upper() ---将全部小写字母转换成大写

 lower()   ---将全部大写字母转换成小写

s = ‘alexWUsir‘

s5 = s.upper()

print(s5) #----结果:ALEXWUSIR

s6 = s.lower()

print(s6)

例:用户输入验证码,程序中的验证码为大写,用户可能输入大写,也可能输入小写,需将全部小写转换成大写,使用户输入的验证码通过程序验证

code = ‘AwEqr‘

username= input(‘请输入用户名:‘)

your_code = input(‘请输入验证码:‘)

if username == ‘alex‘ and your_code.upper() == code.upper():

    print(‘验证成功‘)

(6)      ***验证字符串开头和结尾的字符

startswith  ---验证从左到右的字母是否为 某某的字母,返回 布尔值

endswith    ---验证从右到左的字母是否为 某某的字母,返回 布尔值

s = ‘alexWUsir‘

s6 = s.startswith(‘a‘)  

s7 = s.startswith(‘alex‘)

s8= s.startswith(‘WS‘, 4,) #前面四个字母是否为WS

print(s6)   #结果:True

print(s7)   #结果:True

print(s8)    #结果:False

s9 = s.endswith(‘r‘)

s10 = s.endswith(‘sir‘)

s11 = s.endswith(‘ir‘,2) #最后两个字母是否为ir

print(s9)   #结果:True

print(s10)  #结果:True

print(s11)  #结果:True

(7)      *** strip 默认去除字符串前后的空格,换行符,制表符

# 去除的元素可自定制。

#lstrip() ---去除左面的空格,换行符,制表符

## rstrip() ---去除右面的空格,换行符,制表符

#s = ‘   alexWUsir\t‘

# s7 = s.strip()

# print(s7)

# ss = ‘abclaonanhaiq‘

# ss1 = ss.strip(‘abqc‘)

# print(ss1)

username = input(‘>>>‘).strip()

password = input(‘>>>‘).strip()

if username == ‘老男孩‘ and password == ‘123‘:

    print(‘登录成功‘)

(8)      *** replace 替换

#字符串s.replace(str1,str2,n)

# str1 -- 需要替换的原字符串s中的字符

# str2 -- 要替换成的字符串

# n -- 替换的个数

s = ‘Liuliuli‘

s1 = s.replace(‘l‘,‘99‘)

print(s1)

#结果:Liu99iu99i

s2 = s.replace(‘i‘,‘00‘,2)

print(s2)

#结果:L00ul00uli

(9)      ***split 分隔,str ---> list,将字符串分隔为列表

s1 = ‘alex wusir taibai ritian‘

l1 = s1.split()  # 默认以空格分隔

print(l1)

结果:[‘alex‘, ‘wusir‘, ‘taibai‘, ‘ritian‘]

s2 = ‘alex,wusir,taibai,ritian‘

l2 = s2.split(‘,‘)

print(l2)

结果:[‘alex‘, ‘wusir‘, ‘taibai‘, ‘ritian‘]

l3 = s3.split(‘a‘,2)

s3 = ‘alexwusirtaibairitian‘

结果:[‘‘, ‘lexwusirt‘, ‘ibairitian‘]

print(l3)

s4 = ‘liuliuliuliuliuliu‘

l4 = s4.split(‘l‘,-1)

print(l4)

结果:[‘‘, ‘iu‘, ‘iu‘, ‘iu‘, ‘iu‘, ‘iu‘, ‘iu‘]

(10)   ***find index 通过元素找索引

 find 找不到返回-1

 index找不到会报错

s = ‘刘丽tests01‘

s11 = s.find(‘t‘)

s12 = s.find(‘刘‘)

print(s11,type(s11))

结果:2 <class ‘int‘>

print(s12,type(s12))

结果:0 <class ‘int‘>

s11 = s.find(‘s‘,1)

print(s11)

结果:4

print(s.find(‘A‘))

结果:-1

print(s.index(‘A‘))

结果:报错

(11)   format

# s = "我叫{},今年{},爱好{}"

#第一种用法

# s12 = s.format(‘太白‘, ‘25‘, ‘女‘)

# print(s12)

#第二种用法

# s1 = "我叫{0},今年{1},爱好{2},我依然叫{0}"

# s13 = s1.format(‘太白‘, ‘25‘, ‘女‘)

# print(s13)

#第三种用法

# s3 = "我叫{name},今年{age},爱好{hobby}"

# s14 = s3.format(age=25,hobby=‘girl‘,name=‘太白‘)

# print(s14)

(12)   公共方法

#len 测量个数

# print(len(s))

# #count  计算某一字符在字符串中的个数

# print(s.count(‘a‘))

# name = ‘123‘

# print(name.isalnum()) #字符串由字母或数字组成

# print(name.isalpha()) #字符串只由字母组成

# print(name.isdigit()) #字符串只由数字组成

str ---> int   字符串全部由数字组成  int(‘123‘)

int ---> str   str(1)

 

int ---> bool  0---> False  非0 ---> True  bool(1)

# print(bool(100))

# print(bool(-1))

# print(bool(0))

bool --> int  True  1   False 0

print(int(True))

print(int(False))

str  ---> bool  非空 True   空字符串 False

print(bool(‘‘))

print(bool(‘fdsaf‘))

bool ---> str 

# print(str(True),type(str(True)))

str ---> list split

list --> str  join

3.3    格式化输出、运算符

(1)         格式化输出 % 占位符 s  d

name = input(‘请输入名字:‘)

age = input(‘请输入年龄:‘)

job = input(‘请输入职业:‘)

hobbie = input(‘请输入爱好:‘)

msg = ‘‘‘------------ info of %s -----------

Name  : %s

Age   : %d

job   : %s

Hobbie: %s

------------- end -----------------

‘‘‘ % (name,name, int(age), job, hobbie)

print(msg)

print(‘我叫%s,今年%d,学习进度2%%‘ % (‘老男孩‘, 10000))

结果:

 

(2)         运算符

#and or not

# 1,前后都是比较运算

# 优先级:() > not > and > or

# print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8)

# 结果:False

# 2, 前后都是数值

‘‘‘

or ---0 是False  非0 都是True

x or y if x is True,return x

and --- 0 是False  非0 都是True

x or y if x is True,return y

‘‘‘

# print(3 or 4)

# 结果:3

# print(1 or 4)

# 结果:1

# print(0 or 4)

# 结果:4

# print(-1 or 4)

# 结果:-1

# print(3 and 5)

# 结果:5

# print(3 and 0)

# 结果:0

# print(0 or 4 and 5)

# 结果:5

3.4    列表

(1)      列表取值

# 按照索引取值,与元素本身的数据类型一致
# 按照切片取值,取出来的是小列表。

ll = [123,‘test‘,‘liuli‘,‘badl‘,‘测试‘,‘¥%%45‘]
l1 = ll[:3]
print(l1)
# 结果:[123, ‘test‘, ‘liuli‘]
print(ll[0],type(ll[0]))
# 结果:123 <class ‘int‘>
l2 = ll[:]#全部列表
print(l2)
# 结果:[123, ‘test‘, ‘liuli‘, ‘badl‘, ‘测试‘, ‘¥%%45‘]

(2)      增加

追加 append()

ll = [123,‘test‘,‘liuli‘,‘badl‘,‘测试‘,‘¥%%45‘]
ll.append(‘123‘)
print(ll)

#结果:[123, ‘test‘, ‘liuli‘, ‘badl‘, ‘测试‘, ‘¥%%45‘, ‘123‘]

插入 insert()

ll = [123,‘test‘,‘liuli‘,‘badl‘,‘测试‘,‘¥%%45‘]
ll.insert(2,2002)#在指定位置插入元素
print(ll)
#结果:[123, ‘test‘, 2002, ‘liuli‘, ‘badl‘, ‘测试‘, ‘¥%%45‘]

extend 按最小单位在列表中添加元素

ll = [123,‘test‘,‘liuli‘,‘badl‘,‘测试‘,‘¥%%45‘]
ll.extend(‘test‘)
print(ll)
#结果:[123, ‘test‘, ‘liuli‘, ‘badl‘, ‘测试‘, ‘¥%%45‘, ‘t‘, ‘e‘, ‘s‘, ‘t‘]

(3)      删除

pop   按照索引删除元素

ll = [123,‘test‘,‘liuli‘,‘badl‘,‘测试‘,‘¥%%45‘]
l02 = ll.pop(1)
print(ll)
#  结果:[123, ‘liuli‘, ‘badl‘, ‘测试‘, ‘¥%%45‘]

按照元素去删除 remove

ll = [123,‘test‘,‘liuli‘,‘badl‘,‘测试‘,‘¥%%45‘]
ll.remove(‘¥%%45‘)
print(ll)
# 结果:[123, ‘test‘, ‘liuli‘, ‘badl‘, ‘测试‘]

#clear 清空列表
ll = [123,‘test‘,‘liuli‘,‘badl‘,‘测试‘,‘¥%%45‘]
ll.clear()
print(ll)
# 结果:[]

del

删除列表

ll = [123,‘test‘,‘liuli‘,‘badl‘,‘测试‘,‘¥%%45‘]
del ll # 删除列表
print(ll)

结果:报错,无该列表

# 按照索引删除列表元素
ll = [123,‘test‘,‘liuli‘,‘badl‘,‘测试‘,‘¥%%45‘]
del ll[1]
print(ll)
# 结果:[123, ‘liuli‘, ‘badl‘, ‘测试‘, ‘¥%%45‘]

# 可以按照切片去删除列表元素
ll = [123,‘test‘,‘liuli‘,‘badl‘,‘测试‘,‘¥%%45‘]
del ll[:3]
print(ll)
# 结果:[‘badl‘, ‘测试‘, ‘¥%%45‘]

# 查
#按照索引,切片(步长)
#for 循环遍历。
# ll = [123,‘test‘,‘liuli‘,‘badl‘,‘测试‘,‘¥%%45‘,‘9999‘]
# for i in ll:
#     print(i)
# # 结果:
# 123
# test
# liuli
# badl
# 测试
# ¥%%45
# 9999

# 其他方法
# print(len(l)) # 总个数
# print(l.count(‘WuSir‘))  # 某个元素出现的次数
# l1 = [1, 9, 8, 4, 3, 2, 6,]
# l1.sort()  # 正序排序
# 结果:
# 123
# test
# liuli
# badl
# 测试
# ¥%%45
# 9999

# l1 = [1, 9, 8, 4, 3, 2, 6,]
# # print(l1)
# # l1.sort(reverse=True)  # 倒叙排序
# # print(l1)
# # 结果:[9, 8, 6, 4, 3, 2, 1]
# l1.reverse()  # 翻转
# print(l1)
# 结果:[6, 2, 3, 4, 8, 9, 1]

3.5    列表的嵌套

l1 = [1, 2, ‘alex‘, [‘WuSir‘, ‘taibai‘, 99], 6]

1,将alex该成Alex

l1[2] = l1[2].capitalize()

print(l1)

结果:[1, 2, ‘Alex‘, [‘WuSir‘, ‘taibai‘, 99], 6]

2,将‘WuSir‘变成全部大写。

l1[3][0] = l1[3][0].upper()

print(l1)

结果:[1, 2, ‘alex‘, [‘WUSIR‘, ‘taibai‘, 99], 6]

# 3,99让其通过数字加1的方式变成 ‘100‘.

l1[3][-1] = str(l1[3][-1] + 1)

print(l1[3][-1])

结果:100

3.6    元组 只读列表。
# tu = (1, 2, 33, ‘alex‘)
# print(tu[1])
# print(tu[:-1])
# for i in tu:
#     print(i)
# tu1 = (1, 2, [1, 3,], 4)
# tu1.append(666)
# print(tu1)
#range:指定范围,生成指定数字。顾头不顾尾
# print(range(10))
# for i in range(10):
#     print(i)
# # 结果:
# range(0, 10)
# 0
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9
# for i in range(1,11):
#     print(i)
# 结果:
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9
# 10

# 即输出1-100以内的偶数
# for i in range(2, 101, 2):#从2到101,步长为2,
#     print(i)
# 倒序输出1-100整数
# for i in range(100,0,-1):
#     print(i)

# 输出列表的索引值
# l1 = [1, 2, 3, 4, 5, ‘alex‘]
# for i in range(len(l1)):
#    print(i)
# 结果:
# 0
# 1
# 2
# 3
# 4
# 5

3.7    字典的增删改查

dic = {

    ‘name‘: ‘liuli‘,

    ‘age‘: 18,

    ‘sex‘: ‘女‘,

}

# 增

# dic[‘hobby‘] = ‘test‘  # 无责增加,有则修改。

# dic[‘name‘] = ‘liuli03‘

# print(dic)

# 结果:{‘name‘: ‘liuli03‘, ‘age‘: 18, ‘sex‘: ‘女‘, ‘hobby‘: ‘test‘}

 

# dic.setdefault(‘name‘,‘liuli‘) # 有key则不修改,无则添加。

# dic.setdefault(‘high‘, 169)

# dic.setdefault(‘age‘, ‘25‘)

# print(dic)

# 结果:{‘name‘: ‘liuli‘, ‘age‘: 18, ‘sex‘: ‘女‘, ‘high‘: 169}

 

# 删

# print(dic.pop(‘name‘)) # 有返回值

# dic.pop(‘age‘,None)

# print(dic)

 

#popitem 随机删除  有返回值(python3.6均删除最后一个)

# print(dic.popitem())

# print(dic)

 

#clear

# dic.clear()

# print(dic)

 

# 1.删除整个字典

# del dic

# print(dic)

# 2.按照键去删除键值对

# del dic[‘name‘]

# print(dic)

 

# 改

# dic[‘name‘] = ‘liuli00‘  # 无则增加,有则修改。

# print(dic)

 

# dic = {"name": "liuli", "age": 18,"sex": "male"}

# dic2 = {"name": "test", "weight": 75}

# dic2.update(dic)  # 将dic里面的键值对覆盖并更新到dic2中,dic不变 。

# print(dic)  # {‘name‘: ‘liuli‘, ‘age‘: 18, ‘sex‘: ‘male‘}

# print(dic2)  # {‘name‘: ‘liuli‘, ‘weight‘: 75, ‘age‘: 18, ‘sex‘: ‘male‘}

 

# 查

# print(dic[‘name‘])

# print(dic[‘name1‘])

# print(dic.get(‘name‘))

# print(dic.get(‘name1‘,‘没有此键...‘))  #查询key值为name1的value,如没有该key,则输出‘没有此键...‘

# print(dic.keys())  # 类似于列表的一个容器,没有索引

# for i in dic.keys():

#     print(i)

# for i in dic:

#     print(i)

# print(dic.values())

# print(dic.items())

# for i in dic.items():

#     print(i)

#

# 分别赋值

# a, b = 1 ,3

# a, b = [22, 33]

# print(a,b)

# for k, v in dic.items():

#     print(k, v)

 


# dic = {‘name_list‘:[‘高猛‘, ‘于其‘,],
#        1:{
#            ‘alex‘: ‘李杰‘,
#            ‘high‘: ‘175‘,
#        }
# }
# [‘高猛‘, ‘于其‘,] 追加一个元素‘wusir‘
# print(dic)
# dic[‘name_list‘].append(‘wusir‘)
# print(dic)
# 2, {‘alex‘: ‘李杰‘,‘high‘: ‘175‘ } 增加一个键值对 ‘sex‘: man,
# print(dic[1])
# dic[1][‘sex‘]=‘man‘
# print(dic[1])


# l1 = [11, 22, 33, 44, 55]
# 将索引为奇数对应的元素删除。
# del l1[1::2]
# print(l1)
# 在循环一个列表时,不要改变列表的大小,这样会影响结果。
# 错误代码:
# for i in range(len(l1)):
#     # print(i)
#     # print(l1)
#     if i % 2 == 1:
#         del l1[i] #删除列表中的元素后,索引会发生变化
#     print(i)
#     # print(l1)
# print(l1)
# 结果:[11, 33, 44]

# 正确代码:
# for i in range(len(l1)-1,-1,-1):
#     print(i)
#     if i % 2 == 1:
#         del l1[i]
#         print(l1)
# print(l1)
# 结果:
# 4
# 3
# [11, 22, 33, 55]
# 2
# 1
# [11, 33, 55]
# 0
# [11, 33, 55]

# dictionary changed size during iteration
# 再循环一个字典时,不要改变字典的大小,这样会影响结果。
dic = {‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘, ‘k3‘:‘v3‘, ‘name‘:‘alex‘}
# 错误代码:
# for k in dic:
#     if ‘k‘ in k:
#         dic.pop(k)
# print(dic)

# s1 = ‘abc‘
# print(‘a‘ in s1)
# 结果:True

# l1 = []
# for i in dic:
#     if ‘k‘ in i:
#         l1.append(i)
# print(l1)
# for i in l1:
#     print(i)
#     del dic[i]
# print(dic)

# 一次增加多个键值对
# dic = dict.fromkeys(‘abc‘,666)
# print(dic)
# 结果:{‘a‘: 666, ‘b‘: 666, ‘c‘: 666}

# 该方法下增加的键值对如修改一个,即其他的也一起被修改
# dic = dict.fromkeys(‘abc‘,[])
# dic[‘a‘].append(666)
# print(dic)
# 结果:{‘a‘: [666], ‘b‘: [666], ‘c‘: [666]}

 






















































































































































































































以上是关于数据类型相关总结的主要内容,如果未能解决你的问题,请参考以下文章

数据类型总结

Python基础之基本数据类型的总结

关于streamsets的相关问题总结

js中其他数据类型的值转为字符串的相关总结

数据类型总结——Number(数值类型)

数据类型总结——String(字符串类型)