Python学习的第三次的总结
元组 #组内元素可读,不能被改变
tup1=() #空元组
tup2=(1,) #一个元素后添加逗号
嵌套列表
a = [[1,2,3],'lyyyyy',4,(2,3,4)]
b = a[0] b[0] = 1 → a[0][0] = 1
小技巧
1、if s.isdigit():s = int(s) #判断为数字后,转换类型
2、for i in list:
print(list.index(i),i) #打印list中的索引值和对应的内容
3、for i,v in enumerate(列表,从第几个序列开始): print(i,v) #打印出需要的序列和对应的内容
4、len(s) #判断字符串的长短
5、print ('I am %s'%(变量名)) #使用占位符打印一行
6 、s.pop() #默认返回最后一个值,通常用来计数列表个数
7、[ ] 空列表可以充当购物车 id() #用来找地址
8、 for i in range(0,len(a)): #购买相同的物品数量输出
c=products_cart.count(a[i][0]) #遍历列表,计数
if c>=1:
print(a[i][0],"*",c,end=",")
Ø购物车的实现
字典(唯一映射关系)
特点:1、无序储存 2、key必须是可哈希的(不可修改,唯一)
不可变类型:整形、字符串、元组
可变类型:列表、字典
操作方法:
1、增加
dic1 = {'name':'lyyy'}
dic1 = ['age'] = 18
ret = dic1.setdefault('age',34) 结果:ret = {'name':'lyyy' , 'age':18} #如果原有相同的key则不变更原有的值,反之则添加新的键值对
2、查找
dic1 = {'name':'lyyy'}
print(dic1['name']) #通过key去查找
print(list(dic1.keys())) #查找所有的key,并以列表的形式展现
print(list(dic1.values())) #查找所有的值,并以列表的形式展现
print(list(dic1.items())) #查找所有的键值对,并以列表的形式展现
3、改
dic1 = {'name':'lyyy','height':168}
dic1 ['name']= 'yzqqqq' #取出来赋新值
dic1 = {'name':'lyyy','height':168}
dic2 = {'name':'yzzzzzq','gender':'male'}
dic1.update(dic2)
print(dic1) 结果:{'name': 'yzzzzzq', 'height': 168, 'gender': 'male'} #若用来添加的key和原有的key一样,则更新新值;若无相同的key,则补充进去
4、删除
dic1 = {'name':'lyyy','height':168}
del dic1['name'] #删除该项 del dic1 #从内存中删除
dic1.clear() #清空
dic1.pop() #删除并返回相应值
a = dic1.popitem() print(a,dic1) #随机删除,并以元组的方式返回
5、其他
初始化
dic1 = dict.fromkeys(['host1','host2'],'test')
print(dic1) 结果:{'host1': 'test', 'host2': 'test'}
6、字典嵌套
guangdong_province={
'广州市':{
'天河区':{'华农','华师','华工'},
'海珠区':{'广州塔','大剧院','广图'},
'番禺区':{'大学城','广州南站','美食街'}
},
'东莞市':{
'塘厦镇':{'yzqDD家','yzq打球场','yzq剪头发地'},
'虎门镇':{'威远炮台','好吃的','食品学院plxjj的家'}
},
'湛江市':{
'霞山区':{'ly靓女家','鼎盛广场','海滨公园'},
'赤坎区':{'金沙湾','一中','湛江博物馆'},
'开发区':{'二中','海关','海湾大桥'}
}
}
7、排序
dic={5:'111',2:'666',4:'444'}
sorted(dic.keys())
sorted(dic.items())
8、字典遍历
dic = {'name': 'yzzzzzq', 'height': 168, 'gender': 'male'}
方法一:for i in dic:
print(i,dic[i]) #打印键值对
方法二:for i,v in dic.items():
print(i,v) #item里有两个参数,分别取出
◊ 三级菜单的实现(可以一层层进入和返回)
menu = {
'广东省':{
'广州市':{
'天河区':{'华农','华师','华工'},
'海珠区':{'广州塔','大剧院','广图'},
'番禺区':{'大学城','广州南站','美食街'}
},
'东莞市':{
'塘厦镇':{'yzqDD家','yzq打球场','yzq剪头发地'},
'虎门镇':{'威远炮台','好吃的','食品学院plxjj的家'}
},
'湛江市':{
'霞山区':{'ly靓女家','鼎盛广场','海滨公园'},
'赤坎区':{'金沙湾','一中','湛江博物馆'},
'开发区':{'二中','海关','海湾大桥'}
}
},
'广西省':{
'南宁市':{
'清秀区':{'清','秀'},
'江南区':{'江','南'}
},
'柳州市':{
'柳城':{'螺蛳粉','好吃的'},
'龙城':{'龙','城'}
}
}
}
current_layer = menu
father_layer = [] #父集
while True:
for key in current_layer:
print(key) #打印current_layer的key #唯一的输出
choice = input('请输入要查询的地区:').strip()
if len(choice) == 0:
continue
if choice in current_layer:
father_layer.append(current_layer) #记下父级
current_layer = current_layer[choice] #更替子级
elif choice == 'back':
if father_layer: #非空即为真,则执行
current_layer = father_layer.pop() #将下一次循环要打印key的current_layer更替成父集的删除返回值
#并且取最后一个值
#pop()通常用来取最后一个值
else:
print('查无此地') #不管那一层循环输入错误都会提示
字符串的操作
1、print('123446'*2) #重复打印
2、print('1231785', [2: ]) #切片
3、print('123' in '12345') True #关键字in
4、' 连接物 ' . join([a,b]) # 以连接物把 a,b 连接起来;若无连接物,则为紧贴链接
5、string.count() #计数
6、string.capitalize() #首字母大写
7、string.center(50,'-') ----------string----------- #以特殊字符居中
8、string.endswith('edbyy') #以某个字符串结尾
9、string.startswith('bxtqiu') # 以某个内容开头
10、string.expandtabs(tabsize = 10) # 把tab '\t' 转成空格
11、string.find('t') #查找某个字符串中的元素,并返回其索引值
12、string = 'Hello {name}'
string.format_map( { 'name' : 'ly' } ) 结果:Hello ly #格式化输出,采用字典
13、string.isalnum() #包含数字和字母则返回True
14、string.iscecmal() #判断是否是十进制的数值
15、string.isdigit() #判断是否为数字
16、string.isalpha() #判断是否为字母
17、string.isidentifier() #检验变量名是否合法
18、string.islower() #判断是否全为小写
19、string.isupper() #判断是否全为大写
20、string.isspace() #判断是否为空格
21、string,istiltle() #判断是否为标题(首字母大写)
22、string.lower() #全变为小写
23、string.upper() #全变为大写
24、string.swapcase() #大写变为小写,小写变大写
25、string.ljust(50,' - ') #居左
26、string.rjust(50,' - ') #居左
27、string.strip() #去掉字符串左右的空格,换行符
28、string.replace('去掉的内容','替代的内容',替换的次数) #替代
29、string.split(' 以字符串中的某个元素进行分割 ',分割次数) #分割,分割符消失
导入系统时间
import datetime
time = datetime.datetime.now().data() 例:2020-7-12
字符编码
1、二进制 → ASCII(py2) → gbk2312 → gbk10 → gb18030 → unicode(utf-32 4个字节 utf-16 2/2个以上字节 utf-8 中文3个字节,英文用ASCII存)(py3)
2、GBK ← 解码 Unicode ← 编码 JPK
3、encode在编码的同时,会把数据转成bytes字节类型;decode在解码同时,把字节转成字符串
文件操作(能调用方法的一定是对象)
1、f = open('文件名', 'r' ) #打开文件
2、f = open('文件名', 'a' ) #尾部追加,不清空原有的内容
3、data = f.read(5) #默认全取,或取几个字符
4、f = open('文件名', 'w' ) #可读模式,清空原有文件的内容,或创建新的文件
f.write('hello lyyy') #清空再写
5、f.close() #一定要关闭文件,这样内容才会被刻进硬盘里
6、f.fileno() #返回特殊的非0整形
7、import time
time.sleep(50) #程序运行50秒
8、f.readline() #打印第一行内容,重复则接着打印下一行,光标会跟着移动
9、f.readlines() #由每一行字符串组成的列表
for i in f.readlines()
print( i.strip()) #去掉print带来的自动换行
10、for i in f : print(i) #通常打开文件用这个办法,储存在迭代器里,不存在内存里,需要用的时候再取出来
11、f.tell() #默认光标的位置在初始,实时定位光标的位置(英文字符占1个位置,中文3个)
12、f.seek(0) #调整光标的位置到某个地方
13、f.flush() #把缓存的数据实时转到硬盘上
14、f.truncate(5) #把光标移动到第五个位置,顺便把后面的全删了
15、f.isatty() #确定是否为终端
16、f = open('文件名','r+') #读写模式,光标在起始位置
17、f = open('文件名','w+') #写读模式,清空原有的内容再写
18、f = open('文件名','a+') #读写模式,光标在末端位置
(呜呜呜呜呜呜,好痛苦的一次总结!太多了!这就是懒惰的恶果!!!!!下次再也不这样了!!)
Python学习的第三次的总结的更多相关文章
- python学习心得第三章
python学习心得第三章 1.三元运算 变量=值1 if 条件 else 值2 由图如果条件成立则赋值1给变量,如果条件不成立则赋值2给变量. 2.数据类型 集合:set() class set(o ...
- Python学习系列(三)(字符串)
Python学习系列(三)(字符串) Python学习系列(一)(基础入门) Python学习系列(二)(基础知识) 一个月没有更新博客了,最近工作上有点小忙,实在是没有坚持住,丢久又有感觉写的必要了 ...
- 读书分享全网学习资源大合集,推荐Python学习手册等三本书「01」
0.前言 在此之前,我已经为准备学习python的小白同学们准备了轻量级但超无敌的python开发利器之visio studio code使用入门系列.详见 1.PYTHON开发利器之VS Code之 ...
- Python学习笔记(三)字符串类型及其操作(2)
1.字符串的表示 字符串是字符的序列表示,可以由一对单引号(‘).双引号(“)或三引号(’‘’)构成.其中,单引号.双引号和三引号都可以表示单行字符串,但是只有三引号可以表示多行字符串 在使用双引号时 ...
- Python学习系列(三)Python 入门语法规则1
一.注释 ''' 多行注释 ''' #单行注释 ''' #example1.1 测试程序 时间:4/17/2017 i1=input("请输入用户名:") i2=input ...
- python学习笔记——第三章 串
第三章 字符串学习 1.字符串不灵活, 它不能被分割符值 >>> format = "hello, %s. %s enough for ya?" >> ...
- python学习笔记(三)---python关键字及其用法
转载出处:https://www.cnblogs.com/ECJTUACM-873284962/p/7576959.html 前言 最近在学习Java Sockst的时候遇到了一些麻烦事,我觉得我很有 ...
- Python学习笔记(三)多线程的使用
这节记录学习多线程的心得. Python提供了thread模块,不过该模块的缺点很多,例如无法方便的等待线程结束,所以我们使用更加高级的threading模块. threading模块的使用一 ...
- Python学习笔记(三)Python基本数字类型及其简单操作(1)
一.数字类型 表示数字或数值的数据类型称为数字类型,Python语言提供3种数字类型:整数.浮点数和复数,分别对应数学中的整数.实数和复数,下面就一起来了解一下他们吧! 1.整数类型 整数类型与数学中 ...
- Python学习日志(三)
运算补充(因为之前看书看过的我又忘了...) python3 里 / 直接是浮点除.python2的 / 是直接整除,取整数部分,小数不要了,python3也可以这样整除,用//实现. **是乘方!! ...
随机推荐
- Vue17 手机表单数据
1)v-model.trim trim修饰符是去掉前后空格 2)type="number" v-model.number type="number":只能输入数 ...
- C#通过OLEDB将DataTable写入Excel文件中
利用OLEDB将DataTable数据写入Excel文件中,如果数据量过多,执行效率很缓慢,大数据量不推荐使用此方法. /// <summary> /// 创建DataTable /// ...
- SpringBoot 整合Seccurity、权限管理
Spring Boot 整合Spring Seccurity 1.创建maven工程 <?xml version="1.0" encoding="UTF-8&quo ...
- LG P4980【模板】Pólya 定理
\(\text{Solution}\) \[ans = \frac{1}{n}\sum_{i=1}^n n^{(i,n)} = \frac{1}{n}\sum_{d|n}n^d\varphi(\fra ...
- JZOJ 2020.07.16【NOIP提高组】模拟
总结 这套题相比昨天,简单了不止一点 然而有的人拿了 \(300\) 多 而我只有 \(198\) 预估应该有 \(268\) 的,假了 \(70\) 分 出现了很多奇怪的 \(mistakes\) ...
- MySQL插入数据的多种方式
插入数据的多种方式 replace关键字插入数据 语法: REPLACE [LOW_PRIORITY | DELAYED] [INTO] tbl_name [PARTITION (partition_ ...
- Blender如何设置模型中心点
推荐:将 NSDT场景编辑器 加入你的3D开发工具链. 在使用Blender建模的时候,有时候会导入一些从别的地方**过来的模型,这时候就会遇到一个问题,模型放到场景中时与鼠标放置的位置有一定的偏差, ...
- NameError: name '_name_' is not defined
if _name_ == '_main_': 错误的原因可能是name是双下划线.(明显下面的下划线要长一点) if __name_ == '_main__':
- Socket.io + Knex 实现私聊聊天室
前言 本文只介绍实现的核心代码,目的是记录和分享知识.若感兴趣可以往下看,在文章最后贴上了仓库地址.前端使用 Vite + Vue3:后端使用 Knex + Express. Room 的概念 私密 ...
- Hugging Face 每周速递: Space 支持创建模版应用、Hub 搜索功能增强、BioGPT-Large 还有更多
每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...