一、数据类型

(一)、小技巧

1、PyCharm:选中多行,按“Ctrl+/”可批量注释掉

(二)、字符串

1、startswith(str,[,start][,end])
#判断字符串是否以str开头
s = 'lichuanlei'
print(s.startswith('le',7,9))

实例输出结果:

True
2、replace(str_old,str_new[,num])
#替换字符串
s = 'lichuanlei'
print(s.replace('l','L',2))
print(s.replace('l','L'))

实例输出结果:

LichuanLei
LichuanLei
3、strip
#去除左右字符串
s = ' \n\tlichuanlei\n\t '
print(s.strip()) #去除首尾空格
s2 = 'lichuanlei'
print(s2.strip('li')) #去除首尾字符串‘li’

实例输出结果:

lichuanlei
chuanle
4、split
#默认按空格分隔,返回一个列表
#str-->list
s = 'Tom Mary Peter'
s2 = 'Tom:Mary:Peter'
s3 = ':Tom:Mary:Peter'
print(s.split())
print(s2.split(':'))
print(s3.split(':'))

实例输出结果:

['Tom', 'Mary', 'Peter']
['Tom:Mary:Peter']
['', 'Tom', 'Mary', 'Peter']
5、join
t = 'Tom', 'Mary', 'Peter'
s = ['Tom', 'Mary', 'Peter'] #列表里元素必须都是str类型
t2 = '+'.join(t)
s2 = ':'.join(s)
print(t2)
print(s2)

实例输出结果:

Tom+Mary+Peter
Tom:Mary:Peter
6、count
s = 'abcdefgab'
s1 = s.count('a')
s2 = len(s)
print(s1)
print(s2)

实例输出结果:

2
9
7、format
msg = '我叫{},今年{}岁,性别{}!!!'.format('Tom','22','男')  #第一种用法
msg2 = '我叫{0},今年{1}岁,性别{2},我依然叫{0}!!!'.format('Tom','22','男') #第二种用法
msg3 = '我叫{name},今年{age}岁,性别{sex}!!!'.format(name='Tom',sex='男',age=22) #第三种用法
print(msg)
print((msg2))

实例运行结果:

我叫Tom,今年22岁,性别男!!!
我叫Tom,今年22岁,性别男,我依然叫Tom!!!
我叫Tom,今年22岁,性别男!!!
8、is系列
name = 'Tom123'
c = 'abcd'
num = '123'
print(name.isalnum()) #字符串由字母或者数字组成
print(c.isalpha()) #字符串只由字母组成
print(num.isdecimal()) #字符串只由十进制组成
print(num.isnumeric()) #字符串只由十进制组成

实例输出结果:

True
True
True
True
9、upper lower
s = 'abcCDE'
print(s.upper()) #字符串所有字符转大写
print(s.lower()) #字符串所有字符转小写

实例输出结果:

ABCCDE
abccde

10、格式化输出print

s = '321'
for i in s: #占位符,以下两个print打印结果一样
print('倒计时{}秒'.format(i)) #print('倒计时%s秒'%i)
print('出发!')

实例输出结果:

倒计时3秒
倒计时2秒
倒计时1秒
出发!

(三)、循环

1、while
s = 'lichuanlei'
count = 0
while count < len(s):
print(s[count])
count+=1

实例输出结果:

l
i
c
h
u
a
n
l
e
i
2、for 变量 in iterable

eg1:

s = 'lichuanlei'   #可迭代对象
for n in s:
print(n)

实例输出结果:

l
i
c
h
u
a
n
l
e
i

eg2:

s = 'lichuanlei'
for i in s:
print(i)
if i == 'a':
break

实例输出结果:

l
i
c
h
u
a

eg3:

#实现多个数相加
result = 0
num = input('请输入内容(格式如:1+2+……):')
lst1 = num.split('+')
for i in lst1:
result = result+int(i)
print(result)

eg4:

#判断字符串中有多少个数字
content = input('请输入:')
result = 0
for i in content:
if i.isdecimal():
result +=1
print('共有%s个数字'%result)

(四)列表

1、增加元素

1.1 append:追加

#append : 追加
lst1 = ['Tom','Peter','Jerry']
while 1:
name = input('请输入员工姓名(按Q或q退出):')
if name.upper() == 'Q':
break
lst1.append(name)
print(lst1)

1.2 insert:插入式增加

# 插入式增加元素
lst1 = ['Tom','Peter','Jerry']
lst1.insert(1,'Mary')
print(lst1)

实例运行结果:

['Tom', 'Mary', 'Peter', 'Jerry']

1.3 extend:迭代着追加

#迭代着追加
lst1 = ['Tom','Peter','Jerry']
lst1.extend('ABC') #此次增加‘A’,‘B’,‘C’三个元素
lst1.extend(['ABC','Work','Job']) # 此次又增加'ABC','Work','Job'三个元素
print(lst1)

实例运行结果:

['Tom', 'Peter', 'Jerry', 'A', 'B', 'C', 'ABC', 'Work', 'Job']

2、删除元素

2.1 pop:按照索引删除

lst1 = ['Tom','Peter','Jerry','Tom','Mary']
lst2 = ['Tom','Peter','Jerry']
pop1 = lst1.pop(-2) #按照索引删除(返回的是删除的元素)
pop2 = lst2.pop() #默认删除末尾元素(返回的是删除的元素)
print(lst1,pop1)
print(lst2,pop2)

实例运行结果:

['Tom', 'Peter', 'Jerry', 'Mary'] Tom
lst2 = ['Tom','Peter'] Jerry

2.2 remove:按照指定元素删除

lst1 = ['Tom','Peter','Jerry','Tom','Mary']
lst1.remove('Tom') #按照指定元素删除,若有重名元素,默认从左删除第一个元素
print(lst1)

实例运行结果:

['Peter', 'Jerry', 'Tom', 'Mary']

2.3 clear :清空

lst1 = ['Tom','Peter','Jerry','Tom','Mary']
lst1.clear() #清空

2.4 del

lst1 = ['Tom','Peter','Jerry','Mary']
lst2 = ['Tom','Peter','Jerry','Tom','Mary']
del lst1[-2] #按照索引删除元素
del lst2[::2] #按照切片步长删除元素
print(lst1)
print(lst2)

实例运行结果:

['Tom', 'Peter', 'Mary']
['Peter', 'Tom']
3、更改元素
lst1 = ['Tom','Peter','Jerry','Mary']
lst2 = ['Tom','Peter','Jerry','Tom','Mary']
lst3 = ['Tom','Peter','Jerry','Tom']
lst1[1] = '孙悟空' #按照索引更改元素
lst2[2:] = 'ABCDEFGH' #按照切片更改,超长增加会依次加在后
lst3[::2] = ['RR','YY'] #按照切片(步长)更改,数量必须一一对应
print(lst1)
print(lst2)
print(lst3)

实例运行结果:

['Tom', '孙悟空', 'Jerry', 'Mary']
['Tom', 'Peter', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
['RR', 'Peter', 'YY', 'Tom']
4、查询
lst1 = ['Tom','Peter','Jerry','Mary']
lst2 = ['Tom','Peter','Jerry','Tom','Mary']
for i in lst1: #遍历所有元素
print(i) print(lst2[-1]) #按照索引查询元素
print(lst2[::2]) #按切片(步长)查询元素

实例运行结果:

Tom
Peter
Jerry
Mary
Mary
['Tom', 'Jerry', 'Mary']
5、嵌套

eg1:

lst1 = [1,2,'taibai',[1,'alex',3]]
lst1[2] = lst1[2].upper()
lst1[3].append('老男孩教育')
lst1[-1][1] = lst1[-1][1]+'sb'
print(lst1)

实例运行结果:

[1, 2, 'TAIBAI', [1, 'alexsb', 3, '老男孩教育']]

eg2:

lst1 = [2,30,'k',['qwe',20,['k1',['tt',3,'1']],89],'ab','adv']
lst1[3][2][1][0] = lst1[3][2][1][0].upper() #将列表lst1中的‘tt’变成大写
lst1[3][2][1][1] = '100' #将列表中的数字3变成字符串‘100’
lst1[3][2][1][2] = 101 #将列表中的字符串‘1’变成数字101
print(lst1)

实例运行结果:

[2, 30, 'k', ['qwe', 20, ['k1', ['TT', '100', 101]], 89], 'ab', 'adv']

eg1:

#判断一句话是否是回文
content = input('请输入:')
if content == content[-1::-1]:
print('%s 是回文!'%content)
else:
print('%s 不是回文!'%content)

(五)元组

c = 1,3
a,b = c
print(a,b)
a,b = b,a #交换
print(a,b)

实例运行结果:

1 3
3 1

(六)range

for i in range(1,11): print(i,end='  ')  #打印1……10
print('\n')
for i in range(1,11,2): print(i,end=' ')
print('\n')
for i in range(10,0,-1): print(i,end=' ')

实例运行结果:

1  2  3  4  5  6  7  8  9  10  

1  3  5  7  9  

10  9  8  7  6  5  4  3  2  1 

lst1 = range(5)
print(lst1)
print(lst1[1:3])
print(lst1[-1])
for i in range(1,5,-1):
print(i) #不打印任何内容

实例运行结果:

range(0, 5)
range(1, 3)
4

(七)字典

1、创建
#创建字典的方法:
dic = dict((('one',1),('two',2),('three',3))) #第一种
dic2 = dict(one=1,two=2,three=3) #第二种
dic3 = dict({'one':1,'two':2,'three':3}) #第三种
print(dic,'\n',dic2,'\n',dic3)

实例运行结果:

{'one': 1, 'two': 2, 'three': 3}
{'one': 1, 'two': 2, 'three': 3}
{'one': 1, 'two': 2, 'three': 3}
2、增

eg1:

dic = {'name':'孙悟空','age':26}
dic['sex'] = '男' #增加
dic['age'] = 28 #有则改之无则增加
print(dic)

实例运行结果:

{'name': '孙悟空', 'age': 28, 'sex': '男'}

eg2:

dic = {'name':'孙悟空','age':26}
dic['sex'] = '男' #增加
dic['age'] = 28 #有则改之无则增加
dic.setdefault('hobby') #给键设置默认值:None空
dic.setdefault('hobby2','跑步')
dic.setdefault('age',30) #有则不变,无则增加
print(dic)

实例运行结果::

{'name': '孙悟空', 'age': 28, 'sex': '男', 'hobby': None, 'hobby2': '跑步'}

3、删
dic = {'name':'孙悟空','age':26,'sex':'男'}
dic2 = {'name':'孙悟空','age':26}
print(dic.pop('age')) #按照键删除键值对,有返回值
print(dic.pop('hobby','没有此键')) #设置pop第二个参数时则有无键值对都不会报错
del dic['name'] #按键删除指定元素,但是没有返回值
dic2.clear() #清空键值对内容
print(dic)
print(dic2)

实例运行结果:

26
没有此键
{'sex': '男'}
{}
4、改
dic = {'name':'孙悟空','age':26}
dic['age'] = 30
print(dic)

实例运行结果:

{'name': '孙悟空', 'age': 30}

5、查
dic = {'name':'孙悟空','age':26,'hobby_list':['打球','跑','爬']}
print(dic.get('hobby_list'))
print(dic.get('hobby_list2'))
print(dic.get('hobby_list2','查无此键')) #可以设置返回值
print(dic['name'])

实例运行结果:

['打球', '跑步', '爬山']
None
查无此键
孙悟空
6、keys()
dic = {'name':'孙悟空','age':26,'hobby_list':['打球','跑步','爬山']}
print(list(dic.keys())) #可将键转换成列表
for key in dic: #另一种写法:for key in dic.keys
print(key) #遍历字典dic的键

实例运行结果:

['name', 'age', 'hobby_list']
name
age
hobby_list
7、values()
dic = {'name':'孙悟空','age':26,'hobby_list':['打球','跑步','爬山']}
print(list(dic.values())) #可将值转换成列表
for value in dic.values():
print(value) #遍历字典dic的值

实例运行结果:

['孙悟空', 26, ['打球', '跑步', '爬山']]
孙悟空
26
['打球', '跑步', '爬山']
8、items()
dic = {'name':'孙悟空','age':26,'hobby_list':['打球','跑步','爬山']}
for value in dic.items():
print(value) #遍历字典dic的项目后,是变成元组
for key,value in dic.items(): #利用元组拆包
print(key,value) #遍历字典dic的项目后

实例运行结果:

('name', '孙悟空')
('age', 26)
('hobby_list', ['打球', '跑步', '爬山'])
name 孙悟空
age 26
hobby_list ['打球', '跑步', '爬山']

eg:

1、增加键值对:'k4':'v4' ; 2、将'k1'值改成’alex'

3、将k3值加一个44; 4、将K3键第一个位置加个数字18

dic = {'k1':'v1','k2':'v2','k3':[11,22,33]}
dic.setdefault('k4','v4') #增加键值对:'k4':'v4'
dic['k1'] = 'alex' #将'k1'值改成’alex'
dic['k3'].append(44) #将k3值加一个44
dic['k3'].insert(0,18) #将K3键第一个位置加个数字18
print(dic)

实例运行结果:

{'k1': 'alex', 'k2': 'v2', 'k3': [18, 11, 22, 33, 44], 'k4': 'v4'}

9、字典的嵌套
#1、获取汪典的名字
#2、获取这个字典:{'name':'张怡','age':38}
#3、获取汪典妻子的名字
#4、获取汪典第三个孩子的名字
dic = {
'name':'汪典',
'age':48,
'wife':[{'name':'张怡','age':38},],
'children':{'girl_first':'小苹果','girl_second':'小怡','girl_three':'顶顶'}
}
print(dic.get('name'))
print(dic['wife'][0])
print(dic['wife'][0]['name'])
print(dic['children']['girl_three'])
10、update
dic = {'name':'Tom','age':28}
dic.update(hobby='运动',hight='175') #无则增加
dic.update(name='Marry') #有则更改
dic.update([(1,'one'),(2,'two'),(3,'three')])
print(dic)

(八)练习题

eg1:
lst1 = []
lst2 = []
for i in list(range(100,9,-1)): #100~10,倒序将所有偶数添加一个新列表中
if i%2==0:
lst1.append(i)
print('100-10偶数:',lst1)
for i in lst1:
if i%4 ==0:
lst2.append(i)
print('100-10被4整除的数:',lst2)
eg2:移除每个元素的空格,并找出以‘A’或者‘a’开头,并以‘c’结尾的所有元素
#查找列表li中的元素,移除每个元素的空格,并找出以‘A’或者‘a’开头,并以‘c’结尾的所有元素,
#并添加到一个新列表中,最后循环打印这个列表
li = ['TaiBai ','alexC','AbC','egon',' riTiAn','WuSir ',' aqc',]
new_li = []
for i in li:
new_i = i.strip()
#if new_i.upper().startswith('A') and new_i.endswith('c'): #第一种方法
if new_i[0].upper() == 'A' and new_i[-1] == 'c': #第二种方法
new_li.append(new_i)
for i in new_li:
print(i) #返回值 aqc
eg3:敏感词语过滤程序
#开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容包含特殊的字符:
#敏感词列表 li = ['苍老师','东京热','武藤兰','波多野结衣']
#则将用户输入的内容中的敏感词汇替换成等长度的*(苍老师就替换成***),并添加到一个列表中;
#如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。 li = ['苍老师','东京热','武藤兰','波多野结衣']
comment_list = []
comment = input('请输入您的评论:') #fdagadfeaewr苍老师fdaevnk苍老师fdaie武藤兰ewd32波多野结衣fdsfascf
for word in li:
if word in comment:
comment = comment.replace(word,'*'*len(word))
comment_list.append(comment)
print(comment_list)
eg4:循环打印嵌套列表中元素
#循环打印列表中的的每个字符串,包含嵌套列表中的字符串
li = ['TaiBai','alexC',['AbC','egon','riTiAn'],'WuSir','aqc',]
for i in li:
if type(i) == list:
for j in i:
print(j)
print(i)
eg5:将列表中的元素以“_”间隔
#将列表中的元素以“_”间隔
users = ['张三','李四','王五',666,'Tom','周荣',888]
s = ''
for index in range(len(users)):
if index == 0:
s = s+users[index]
else:
s = s+'_'+str(users[index])
print(s) #返回结果:张三_李四_王五_666_Tom_周荣_888
eg6:将字符串变成字典
#将'k1:1|k2:2|k3:3|k4:4|k5:5'变成{k1:1,k2:2,k3:3,k4:4,k5:5}
msg = 'k1:1|k2:2|k3:3|k4:4|k5:5'
dic = {}
cc = msg.split('|')
for i in cc:
key,value = i.split(':')
dic[key] = int(value)
print(dic)

(九)集合

1、说明:

集合 set.容器型的数据类型,它要求它里面的元素是不可变的数据,但是它本身是可变的数据类型。集合是无需的。{}

  • 集合的作用:

    1. 列表的去重。
    2. 关系测试:交集,并集,差集,……
2、创建:
set1 = {1,3,'Tom','Marry',False}
print(set1)
print({},type({})) #空字典
set2 = set() #空集合
print(set2,type(set2))
3、增
set1 = {1,3,'Tom','Marry',False}
set1.add('Jerry') #添加一个元素
print(set1)
set1.update('ABCD') #迭代着添加每一个元素
print(set1)

实例运行结果:

{False, 1, 'Jerry', 3, 'Tom', 'Marry'}
{False, 1, 'Jerry', 3, 'A', 'Tom', 'Marry', 'C', 'B', 'D'}
4、删
set1 = {1,3,'Tom','Marry',False}
set1.remove('Tom') #按名称删除
set1.pop() #随机删除
#set1.clear() #清空集合
#del set1 #删除元素
print(set1)
5、其他操作:
5.1 交集。(& 或 intersection)
set1 = {11,22,33,44,55}
set2 = {33,44,55,66,77,88}
print(set1 & set2) #{33, 44, 55}
print(set1.intersection(set2)) #{33, 44, 55
5.2 并集。 (| 或 union)
set1 = {11,22,33,44,55}
set2 = {33,44,55,66,77,88}
print(set1 | set2) #{33, 66, 11, 44, 77, 22, 55, 88}
print(set1.union(set2)) #{33, 66, 11, 44, 77, 22, 55, 88}
5.3 差集。 (- 或 difference)
set1 = {11,22,33,44,55}
set2 = {33,44,55,66,77,88}
print(set1 - set2) #{11, 22}
print(set1.difference(set2)) #{11, 22}
5.4 反差集。(^ 或 symmetric_difference)
set1 = {11,22,33,44,55}
set2 = {33,44,55,66,77,88}
print(set1 ^ set2) #{66, 22, 88, 11, 77}
print(set1.symmetric_difference(set2)) #{66, 22, 88, 11, 77}
5.5 子集。(< 或 issubset)
set1 = {11,22,33,44,55}
set2 = {11,22,33,44,55,66,77,88,99}
print(set1 < set2)
print(set1.issubset(set2)) #这两个相同,都是说明set1是set2子集。
5.6 超集。(> 或 issuperset)
set1 = {11,22,33,44,55}
set2 = {11,22,33,44,55,66,77,88,99}
print(set2 > set1)
print(set2.issuperset(set1)) ##这两个相同,都是说明set2是set1超集。

eg1 :列表去重

L1 = [1,2,3,2,3,4,4,5,5,11,11,13,13,44,44]    #列表去重
L1 = set(L1)
print(L1)

python基础数据类型整理的更多相关文章

  1. Python基础数据类型-列表(list)和元组(tuple)和集合(set)

    Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...

  2. Python基础数据类型-字符串(string)

    Python基础数据类型-字符串(string) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版 ...

  3. python基础数据类型考试题

    Python基础数据类型考试题 考试时间:两个半小时                      满分100分(80分以上包含80分及格) 一,基础题. 1,简述变量命名规范(3分) 2,字节和位的关系 ...

  4. 1--Python 入门--Python基础数据类型

    一.Python基础语法 初次使用Python,首先要明确三点: Python的标识符(例如变量名.函数名等),可用字母.数字和下划线构成,不能以数字开头,且区分大小写. Python对于缩进敏感.在 ...

  5. python 基础数据类型之list

    python 基础数据类型之list: 1.列表的创建 list1 = ['hello', 'world', 1997, 2000] list2 = [1, 2, 3, 4, 5 ] list3 = ...

  6. Python基础数据类型-字典(dict)

    Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...

  7. Python基础数据类型题

    Python基础数据类型 题考试时间:三个小时 满分100分(80分以上包含80分及格)1,简述变量命名规范(3分) 1.必须是字母,数字,下划线的任意组合. 2.不能是数字开头 3.不能是pytho ...

  8. Python基础数据类型之字符串

    Python基础数据类型之字符串 一.Python如何创建字符串 在python中用引号将一些文本包起来就构成了字符串(引号可以是单引号.双引号.单三引号,双三引号,它们是完全相同的) >> ...

  9. Python基础数据类型之集合

    Python基础数据类型之集合 集合(set)是Python基本数据类型之一,它具有天生的去重能力,即集合中的元素不能重复.集合也是无序的,且集合中的元素必须是不可变类型. 一.如何创建一个集合 #1 ...

随机推荐

  1. javaweb垃圾分类查询系统源码 ssm+mysql

    需求 基于SSM实现一个垃圾分类查询管理系统, 用户可以根据自定义查询分类信息, 管理员可以对分类信息, 垃圾详情信息进行增删改查的管理 运行环境 jdk1.8,tomcat8.5,mysql5.6, ...

  2. Openshift中Pod的SpringBoot2健康检查

    Openshift中Pod的SpringBoot2应用程序健康检查 1. 准备测试的SpringBoot工程, 需要Java 8 JDK or greater and Maven 3.3.x or g ...

  3. C# 如何获取日期时间各种方法

    我们可以通过使用DataTime这个类来获取当前的时间.通过调用类中的各种方法我们可以获取不同的时间:如:日期(2019-01-09).时间(16:02:12).日期+时间(2019-01-09 16 ...

  4. C语言实现读取字符转换为浮点数,不使用scanf函数

    c语言读取int或者float数据,我们习惯于使用scanf函数,但是如果不使用scanf函数,该怎么实现呢. 这里就来尝试一下,不使用scanf来读取数据并转换为float类型. 下面的getflo ...

  5. R语言入门:使用RStudio的基本操作

    R语言在人工智能,统计学,机器学习,量化投资,以及生物信息学方面有着十分广泛的运用.也是我大学的必修课,因此这里梳理一些有关R语言的知识点,做做记录. 首先我们需要知道R语言的工作区域,R语言默认的工 ...

  6. [Linux] git add时的注意事项

    git add -A  提交所有变化 git add -u  提交被修改(modified)和被删除(deleted)文件,不包括新文件(new) git add .  提交新文件(new)和被修改( ...

  7. 数据结构(集合)学习之Collection和Iterator

    集合 1.集合与数组 数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用. 集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使 ...

  8. ural 2124

    题意 ural 做法 求出一个原根\(\omega\),对于每个数\(x\)写成\(x=\omega^{k}\)的形式,\(\delta(x)=\frac{p-1}{k}\) 我们不关心群具体的东西, ...

  9. caj文件转word

    转载:https://baijiahao.baidu.com/s?id=1590365105855177484&wfr=spider&for=pc 使用工具: 迅捷caj转word转换 ...

  10. nodejs events

    EventEmitter类 events模块提供一个对象:events.EventEmitter,核心是事件触发和事件监听的封装. 大多数时候不会直接使用EventEmitter,而是在对象中继承它( ...