元组 #组内元素可读,不能被改变

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学习的第三次的总结的更多相关文章

  1. python学习心得第三章

    python学习心得第三章 1.三元运算 变量=值1 if 条件 else 值2 由图如果条件成立则赋值1给变量,如果条件不成立则赋值2给变量. 2.数据类型 集合:set() class set(o ...

  2. Python学习系列(三)(字符串)

    Python学习系列(三)(字符串) Python学习系列(一)(基础入门) Python学习系列(二)(基础知识) 一个月没有更新博客了,最近工作上有点小忙,实在是没有坚持住,丢久又有感觉写的必要了 ...

  3. 读书分享全网学习资源大合集,推荐Python学习手册等三本书「01」

    0.前言 在此之前,我已经为准备学习python的小白同学们准备了轻量级但超无敌的python开发利器之visio studio code使用入门系列.详见 1.PYTHON开发利器之VS Code之 ...

  4. Python学习笔记(三)字符串类型及其操作(2)

    1.字符串的表示 字符串是字符的序列表示,可以由一对单引号(‘).双引号(“)或三引号(’‘’)构成.其中,单引号.双引号和三引号都可以表示单行字符串,但是只有三引号可以表示多行字符串 在使用双引号时 ...

  5. Python学习系列(三)Python 入门语法规则1

    一.注释 ''' 多行注释 ''' #单行注释 '''    #example1.1 测试程序  时间:4/17/2017 i1=input("请输入用户名:") i2=input ...

  6. python学习笔记——第三章 串

    第三章 字符串学习 1.字符串不灵活, 它不能被分割符值 >>> format = "hello, %s. %s enough for ya?" >> ...

  7. python学习笔记(三)---python关键字及其用法

    转载出处:https://www.cnblogs.com/ECJTUACM-873284962/p/7576959.html 前言 最近在学习Java Sockst的时候遇到了一些麻烦事,我觉得我很有 ...

  8. Python学习笔记(三)多线程的使用

    这节记录学习多线程的心得.   Python提供了thread模块,不过该模块的缺点很多,例如无法方便的等待线程结束,所以我们使用更加高级的threading模块.   threading模块的使用一 ...

  9. Python学习笔记(三)Python基本数字类型及其简单操作(1)

    一.数字类型 表示数字或数值的数据类型称为数字类型,Python语言提供3种数字类型:整数.浮点数和复数,分别对应数学中的整数.实数和复数,下面就一起来了解一下他们吧! 1.整数类型 整数类型与数学中 ...

  10. Python学习日志(三)

    运算补充(因为之前看书看过的我又忘了...) python3 里 / 直接是浮点除.python2的 / 是直接整除,取整数部分,小数不要了,python3也可以这样整除,用//实现. **是乘方!! ...

随机推荐

  1. 谈谈Selenium中的三种切换之alert

    谈谈Selenium中的三种切换之alert 一.如何识别 识别方法:alert中的确定.取消.输入框无法用inspector定位到,当然还有一些特例. alert分为三种 alert confirm ...

  2. 大三末java实习生一面凉经

    在南京投了一些小公司,想找个实习,因为知道自己很菜,就收到了一家公司的面试. 面试一般在线上进行,我是在腾讯会议上进行的.面试官其实挺好的,一般不会为难你,因为他知道你是在校生不会懂那么多企业的技术. ...

  3. jquery(一:认识jquery、选择器)

    jQuery 优点: 1.提供了强大的功能函数 2.解决了浏览器的兼容问题 3.实现了丰富的UI和插件 4.纠正错误的脚本知识 例子 1.传统: <!DOCTYPE html> <h ...

  4. 基于Kali Linux的渗透测试工具-Discover脚本

    简介  这篇文章主要介绍了基于Kali Linux的渗透测试工具-Discover脚本以及相关的经验技巧,文章约5629字,浏览量510,点赞数9,值得参考! 如果你正在使用Kali Linux,那么 ...

  5. JZOJ 4213. 【五校联考1day2】对你的爱深不见底

    题目 思路 结论题,我不会证明: 找到第一个 \(|S_n| \leq m + 1\),那么答案就是 \(m - |S_{n-2}|\) 证明?我说了我不会,就当结论用吧 这已经很恶心了 然而这题还要 ...

  6. 血药谷浓度能否区分经TNF拮抗剂诱导获得缓解和低活动度的RA患者

    血药谷浓度能否区分经TNF拮抗剂诱导获得缓解和低活动度的RA患者? Sanmarti R, et al. EULAR 2015. Present ID: FRI0133. 原文 译文 FRI0133 ...

  7. RocketMQ 5.0 vs 4.9.X 图解架构对比

    本文作者:李伟,Apache RocketMQ Committer,RocketMQ Python客户端项目Owner ,Apache Doris Contributor,腾讯云数据库开发工程师. 0 ...

  8. (七) Mysql 之 binlog redolog 二阶段提交

    (一)背景知识: 1 binlog binlog 我们中文一般称作归档日志, 是 MySQL Server 层的日志,而不是存储引擎自带的日志,它记录了所有的 DDL 和 DML(不包含数据查询语句) ...

  9. angular - 另一个ID为#######的进程当前正在运行ngcc

    angular项目启动时报错 首先尝试npm install再次运行,看看它是否可以解决您的问题. 尝试ngcc手动运行. 删除这个文件 node_modules/@angular/compiler- ...

  10. Day 22 22.3:生产者和消费者模式

    生产者消费者模式 认识生产者和消费者模式 生产者和消费者是异步爬虫中很常见的一个问题.产生数据的模块,我们称之为生产者,而处理数据的模块,就称为消费者. 例如: ​ 图片数据爬取中,解析出图片链接的操 ...