python二:数据类型举例练习--小白博客
一、#字符串
res = 'hello,world'
1、#字符串切片取值:*******
print(res[0:5]) 顾头不顾尾,取下标0-4的字符
print(res[0:-1:2]) 步长为2,也就是隔一个取一个
print(res[:-5]) 下标为-5(包括-5)往右的字符不要了
print(res[5:]) 下标为5(不包括5)往左的字符不要了
print(res[4]) 取字符串中下标为4的字符
2、#字符串格式化(%s和format)*****
result = 'my name is {name}, my age is {age}'.format(name='申晨林', age=25)
result1 = 'my name is {0}, my age is {1}'.format('申晨林',25)
result = 'my name is %s, my age is %s' % ('申晨林', 25)
result1 = 'my name is %s' % '申晨林'
3、#字符串替换*****
print(res.replace('l', 'sb', 2)) #2为替换个数
4、#把列表变成字符串*******
s = ''.join(['a','b','c']) #前面的''中的内容会加在括号中每个元素的中间;例:s = 'd'.join(['a','b','c']) 则输出adbdc
5、#把字符串变成列表(以l分割点)*******
print(res.split('l'))
6、#从右往左切,以.为分割,切3刀*******
res1 = '192.168.1.1'
print(res1.rsplit('.', 3))
7、#统计字符串里某个字符的个数*******
print(res.count('l'))
8、#查找字符串中某个元素中最靠左的下标******* #没有则报错
print(res.index('o'))
9、#查找字符串中的字母下标,如果所查字母有多个,则查最后一个 #没有则报错
print(res.rindex('o'))
10、#strip去除首尾字符*******
res1 = '=====hello,world=====' print(res1.strip('='))
注:只是以'='开头或者结尾的字符会被删除。
例:res1 = ' =====hello,world====='
print(res1.strip('=')) 则输出“ =====hello,world”
#去除右边的字符
print(res1.rstrip('='))
去除以'='结尾的字符
#去除左边的字符
print(res1.lstrip('='))
去除以'='开头的字符
11、#判断字符串结尾的字母
print(res.endswith('w')) #print()括号中加变量名字,一定不能加引号,否则会输出原内容;例:print('res') 则输出res
12、#判断字符串开头字符是否是(w)
print(res.startswith('w'))
13、#encode转码,decode解码*******
res1 = '你好'
a = res1.encode('utf-8')
print(a.decode('utf-8')
14、#字符串拼接*******
res1 = 'my name is'
res2 = '申晨林'
print(res1+res2)
15、#小写字母边大写
print(res.swapcase()) #转换大小写
print(res.upper()) #小写变大写
16、#判断是否是抬头
print(res.istitle())
17、#判断是否是小写
print(res.islower())
18、#判断是否是空格字符串,而不是判断字符串里是否有空格,是返回true,不是返回false
res1 = ' '
print(res1.isspace())
19、#find是查找字符串里的元素下标,如果没有返回-1
print(res.find('qq'))
注:如果有多个相同元素,只显示第一个的下标
#列表
res = ['ab', 'bc', 'cd', 'd', 'aaa']
1、#index取列表中元素为d的下标*******
print(res.index('d'))
2、#count统计列表中元素的个数*******
print(res.count('ab'))
3、#insert在下标为2的位置插入sb*******
res.insert(2, 'sb')
print(res)
4、
'''
排序按照列表中元素字母排序,从a-z,如果首写字母一样,比较第二个,以此类推。。。
如果是数字,按照从小到大排序
'''
res.sort()
print(res)
5、#extend或者+代表把两个列表追加合并成一个列表*******
print(res + ['ss', 'vv', 'dd'])
res.extend(['ss', 'vv', 'dd'])
print(res) #输出 ['ab', 'bc', 'cd', 'd','aaa','ss', 'vv', 'dd']
注:res.extend('asd')
print(res) #输出 ['ab', 'bc', 'cd', 'd', 'aaa','a','s','d']
6、#pop括号里不输入数值默认从右往左取出,如果括号里输入数值,那么就把列表中下标为括号里的数值的元素取出来*******
print(res.pop(3))
7、#clear清空列表中所有元素*******
res.clear()
print(res)
8、#remove就是删除元素*******
res.remove('aaa')
print(res)
9、#copy复制一个列表
a = res.copy()
print(a)
10、#reverse反转
res.reverse()
print(res)
11、#append追加一个元素*******
res.append(['ssbb','aqe','ttt'])
print(res)
#字典
以key/value的形式存储数据,存取数据快,key是唯一的
info = {
'name': 'bs',
'high': 190,
'gender': 'man'
}
1、#popitem取出字典中最后的元素*******
(1)、info.popitem()
print(info) #除了最后的元素,都输出出来
(2)、print (info.popitem()) #只输出最后一个元素
2、#pop取出字典中key为name的value
(1)、print(info.pop('name')) #输出name元素对应的value
(2)、info.pop('name')
print (info) #输出除去'name'元素以外的元素
3、#setdefault如果字典当中没有这对key/value那么就添加到字典当中,如果有,就不添加
info.setdefault('high','190')
print(info) #输出追加元素后的字典 print (info.setdefault('age',18)) #只输出追加元素的value “18”
4、#拷贝字典
res = info.copy()
print(res)
5、#update把两个字典合并成一个,括号里的字典如果有相同的key将覆盖原字典*******
info.update(info2)
print(info)
6、#items把字典当中key/value变成小元组形式,放在列表中*******
print(info.items()) #输出dict_items([('name', 'bs'), ('high', 190), ('gender', 'man')])
7、#keys把字典当中所有的key打印出来*******
print(info.keys())
8、#values就是吧字典当中所有的value打印出来*******
print(info.values())
9、#get取出相应key对应的value,如果get没有值,那么返回NONE,[]这种方法取值,没有值直接报错*******
print(info.get('aaa'))
print(info['aaa'])
info['name'] = 'shuaige' #这种方式可以赋值
info.get('name') = 'shuaige' #这种方式不能赋值
10、#fromkeys快速定义一个空字典******* #前面的{}必须为空才可以
res = {}.fromkeys(('name', 'age', 'high'), 'sss')
print(res)
#只能多个key对应一个value
11、替换字典中的value
info[key]='需要替换的value'
12、替换key
a = {"a":1}
#变成
a = {"b":1}
#方法
a["b"]=a.pop("a")
#集合
去重,不支持索引
set1 = {1,2,3,4,5}
set2 = {1,2,6,7,3,4,5}
set3 = {'a','v','t','w'}
1、#update合并2个集合
set1.update(set2)
print(set1)
2、#pop随机取值
print(set3.pop())
3、#union:两个集合的并集
print(set1.union(set2))
4、#remove删除集合中的元素
set3.remove('t')
print(set3)
5、#discard删除集合中的指定元素
set3.discard('w')
print(set3)
6、#add添加一个元素
set3.add('test')
print(set3)
7、#issubset set1是否是set2的子集
print(set1.issubset(set2))
8、#issuperset set1是否是set2的父集
print(set2.issuperset(set1))
9、#intersection查看两个集合的交集
print(set1.intersection(set2))
#内置函数
1、len:长度 #空格也有长度
s = 'hello,world'
print(len(s))
2、#in / not in
l1 = [1,2,3,4]
print(4 in l1) #4不可以加引号
print(4 not in l1) info = {
'name':1,
'age':22
}
print('1' in info) #只能判断key是否在其中。value不可以
print(len(info)) #输出 2;每个键值对当作一个长度
set1 = {1,2,3,4} #此为集合
#布尔:
True False,True就是为真,False就是为假
#谨记
#0,None,空都为假,其余为真(空格都为真)
a = 0
if a:
print('ok')
else:
print('不ok')
#引用计数和垃圾回收机制
一个内存地址可以对应多个门牌号,一个门牌号只能对应一个内存地址
1.在程序结束后,变量所占用的内存回收
2.在门牌号全部摘除,变量所占用的内存回收
#1.可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典
#2. 不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)
#可变类型:
l1 = [1,2,3,4]
print(id(l1))
l1[2] = 99
print(id(l1))
info = {
'name': 'fengzi',
'age': 18
}
print(id(info))
info['name'] = 'shuaige' #这种方式可以赋值
print(id(info))
info.get('name') = 'shuaige' #这种方式不能赋值
#不可变类型
a = 10000
print(id(a))
a = 20000
print(id(a)) s = 'aaaa'
print(id(s))
s = 'bbbb'
print(id(s))
数据类型练习题
info ={
'name':'john',
'age':'john',
'school':['清华大学','北京大学','复旦大学']
}
请取出值为清华的值
print(info.get('school').pop(0)) #print命令可以进行继续筛选
print(info.get('school')[0]) #切片也可以 把复旦大学修改成西安交通大学
info['school']=['清华大学','北京大学','西安交大']
print(info)
with open('test.txt','r',encoding='utf-8') as i:
for j in len('i.read()'):
print(i.read()[1])
python二:数据类型举例练习--小白博客的更多相关文章
- python第九章:面向对象--小白博客
面向对象介绍 一.面向对象和面向过程 面向过程:核心过程二字,过程即解决问题的步骤,就是先干什么后干什么 基于该思想写程序就好比在这是一条流水线,是一种机械式的思维方式 优点:复杂的过程流程化 缺点 ...
- python第八章:多任务--小白博客
多线程threading 多线程特点: #线程的并发是利用cpu上下文的切换(是并发,不是并行)#多线程执行的顺序是无序的#多线程共享全局变量#线程是继承在进程里的,没有进程就没有线程#GIL全局解释 ...
- python四:函数练习--小白博客
为什么要有函数?函数式编程定义一次,多出调用函数在一定程度上可以理解为变量函数的内存地址加上()就是调用函数本身也可以当做参数去传参 不用函数:组织结构不清晰代码的重复性 def test():#te ...
- [Python爬虫笔记][随意找个博客入门(一)]
[Python爬虫笔记][随意找个博客入门(一)] 标签(空格分隔): Python 爬虫 2016年暑假 来源博客:挣脱不足与蒙昧 1.简单的爬取特定url的html代码 import urllib ...
- python实现的文本编辑器 - Skycrab - 博客频道 - CSDN.NET
Download Qt, the cross-platform application framework | Qt Project Qt 5.2.1 for Windows 64-bit (VS 2 ...
- python—webshell_醉清风xf_新浪博客
python—webshell_醉清风xf_新浪博客 python—webshell (2012-05-23 09:55:46) 转载▼
- python 全栈开发,Day83(博客系统子评论,后台管理,富文本编辑器kindeditor,bs4模块)
一.子评论 必须点击回复,才是子评论!否则是根评论点击回复之后,定位到输入框,同时加入@评论者的用户名 定位输入框 focus focus:获取对象焦点触发事件 先做样式.点击回复之后,定位到输入框, ...
- python 全栈开发,Day81(博客系统个人主页,文章详情页)
一.个人主页 随笔分类 需求:查询当前站点每一个分类的名称以及对应的文章数 完成这个需求,就可以展示左侧的分类 它需要利用分组查询,那么必须要会基于双下划线的查询. 基于双下划线的查询,简单来讲,就是 ...
- Python爬虫,看看我最近博客都写了啥,带你制作高逼格的数据聚合云图
转载请标明出处: http://blog.csdn.net/forezp/article/details/70198541 本文出自方志朋的博客 今天一时兴起,想用python爬爬自己的博客,通过数据 ...
随机推荐
- Node中的模块引入机制
1.如果模块在当前目录下,可以通过下面语句将模块引入进来,注意需要使用 "./"表示当前路径 const currency = require('./currency'); ←-- ...
- 虚拟机备份,部署VDP
VDP是一个基于磁盘的备份和恢复解决方案,可靠且易于部署.VDP这一经过更新的备份设备完全取代了VMware原有的备份架构.而且VDP与VMware vCenter Server 完全集成,可以对备份 ...
- 为什么zookeeper集群中节点配置个数是奇数个?
Zookeeper的大部分操作都是通过选举产生的.比如,标记一个写是否成功是要在超过一半节点发送写请求成功时才认为有效.同样,Zookeeper选择领导者节点也是在超过一半节点同意时才有效.最后,Zo ...
- Mysql 数据库设置三大范式 数据库五大约束 数据库基础配置
数据库设置三大范式 1.第一范式(确保每列保持原子性) 第一范式是最基本的范式.如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库满足第一范式. 第一范式的合理遵循需要根据系统给的实际需求 ...
- Thread.interrupt()
作者:Intopass链接:https://www.zhihu.com/question/41048032/answer/89431513来源:知乎著作权归作者所有.商业转载请联系作者获得授权 ...
- 如何弄清Linux系统运行何种系统管理程序
如何弄清Linux系统运行何种系统管理程序 虽然我们经常听到系统管理器System Manager这词,但很少有人深究其确切意义.现在我们将向你展示其区别. 我会尽自己所能来解释清楚一切.我们大多都知 ...
- jsp页面无法使用EL
解决:http://blog.csdn.net/caixiexin/article/details/6958199 在web.xml中头部引入,2.3版本不支持EL,2.4默认开启,2.5默认关闭需要 ...
- git pull request 流程
git pull request 用于在 fork 官方 repo 到个人 github, 在本地修改后,向官方 repo 请求合并.在官方团队审查过代码后,就可以将自己所做的改动合并到官方 repo ...
- PHP与Nginx之间的运行机制以及原理
一.普及Nginx与Php-fpm相关知识点 Nginx是什么 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服 ...
- MyEclipse使用总结——设置MyEclipse开发项目时使用的JDK
安装好MyEclipse之后,在MyEclipse中开发项目时,默认使用的是MyEclipse是自带的JDK,如下图所示: 如果我们需要使用自己安装好的JDK,那么就需要在MyEclipse中重新设置 ...