python入门完结篇(6)

插入: 1.使用append的方法,使用append往列表末尾新增一个元素。此处的append的是搭配列表对象来使用的,而不是作为一个独立的函数.

而 type print input len自定义函数都是独立的函数,不用搭配任何对象. 而这种需要搭配对象(变量)使用的函数(function)也叫做方法(mothod)

2.使用insert方法往列表的任意位置后来新增元素 insert(指定位置, 元素)

查找:1.用in来判定某个元素是否在列表中存在,存在即True,不存在即为False(元素 in 列表   也可以逻辑取反   元素  not in  列表)

2.使用index方法,来判定当前元素在列表中的位置,得到一个下标,(对象.index(查找的元素))若出现找不到的情况,会抛出异常

删除:1.使用pop(),删除列表中的最末尾元素.

2.使用pop还能删除任意位置的元素,pop的参数可以传一个下标过去  对象.pop(下标)

3.使用remove方法,可以按照值来删除  对象.remove(元素)

连续列表:1.将多个列表连续在一起用+针对两个列表拼接,只是针对当前列表的内容来生成一个更大的新的列表,原有的列表内容不变.

2.使用extend来进行拼接,这个拼接是把后一个列表的内容拼接到前一个列表里面里头来,会改变前一个列表的值.而且不需要单独创建一个接收变量.前一个列表.extend(后一个列表)

3.使用+=来进行拼接,但其实本质上是a=a+b浪费了很多资源,如回收和拷贝构造的时间和空间,且多了三个步骤,第1个是开一个新的大的列表,第2个是将新的大的列表覆盖原有的列表,第3个是要释放原有列表的旧值。

元组:1.创建元组,元祖的类型是tuple

元组和列表的相似体现在:

1.通过下标来访问元组中的元素下标可以从0开始到len-1结束

2.通过切片来获取元组中的一个部分

3.也可同时使用for循环等方式遍历元素

4.可以使用in判断元素是否存在

5.使用index查找元素下标。

6.使用+来拼接两个元组。

但注意:无修改类操作。(例如删除增加等)

当进行多元赋值的时候,其实本质上是元组的方式进行的。

当进行协同开发的时候,程序员a写实现了一些功能提供给程序员b来使用,a写好一些参数,让b去调用,函数要进行传参,以元组的形式传参,可以有效地避免被篡改。

元组不能修改它,为不可变对象。

不可变对象一般是可以哈希的,可变对象是一般不能进行哈希。(可变对象主要是字典、列表因为它们元素可以进行随意改变)(不可变对象主要是指int    float   string等)

字典:储存一种键值对的结构。

键值对:计算机的非常非常的重要的一种概念。

键(key)值(value) 根据键key可以快速找到value(本质其实是一种映射的关系)

在Python的字典中可以同时包含很多键值对,但要求这些键不能重复。键值对形式{key:value ,  key:value…}字典中的key和value的类型不一定都一样,字典对于key是什么类型有约束,但对于value是什么类型无约束.一般没写一行,因为不直观,一般写成这样多行更直观,最后一个键值对的逗号可有可无。 

在字典中查找有两种方式:1.可以用in来判断某个key是否在字典中存在  2.使用这个[]来根据key来获取value

对于字典来说使用in或者[]来获取value都是非常高效的.

对于列表来说用in比较低效因为要全部遍历,而使用[]是比较高效的.

在字典中新增键值对的方式:在字典中新增元素用[]来进行,例:对象[key]=value. 如果key不存在往里写,相当于新增键值对,如果key存在往里写,相当于根据key修改value.

删除:使用pop方法,根据key来删除键值对,对字典的各种操作都是围绕key来进行的.

字典被设计出的初衷不是为了遍历,而是为了增删查改,时间复杂度O(1),增删查改都是固定时间,不会因为元素多了而操作就慢了。

字典是哈希表进行增删查改操作的效率非常高,而字典的遍历则效率差一些。

遍历:1.用for循环,来遍历字典.在Python中能够保证遍历的顺序和插入的顺序保持一致

2.使用keys()、values()、items()(分别表示所有的key,所有的value,所有的键值对)

key类型的约束:不是所有类型都可以作为字典的key,因为字典本质为哈希表而表中key要求可哈希的,也就是可以计算出一个哈希值,刚好Python有一个内联函数哈希hash可以计算函数哈希值,注意字典dict和列表list是不可哈希的.

字典和列表、元组是Python当中非常常见的内置类型,相比于int string float,它们内部可以包含很多元素,所以被称之为"容器和集合类"

文件操作:   CPU 储存器  输入设备,输出设备储存器当中又有内存和硬盘之分,内存,变量就是在内存中.  文件和数据就是在硬盘中.  一般的操作流程是先打开文件,读文件,写文件,后关闭文件.打开文件操作当中有一个内联函数open('路径 ', '进行的操作 ','若是写读的操作,则这里是编译的方式encoding,若不写则默认为编译方式为utf8 ')内联函数open的返回值是文件类型变量,因为文件的内容是在硬盘上的,此处文件对象是在内存上的一个变量,后续文件操作都是拿着这个文件对象进行操作的,此处的文件对象就像一个遥控器一样专业的术语叫做句柄handle.常见的进行操作,有' r'读   ' w'写(这个显示把原有文件里面的内容全部清空,然后再写),但这个'a '写  (这个写是在原有文件内容的末尾)   关闭文件使用close  形式:对象.close()

每个程序在启动的时候都会默认打开三个文件:1.标准输入(体现在键盘)2.标准输出(体现在显示器)3.标准错误(体现在显示器)

文件资源泄露其实是一个很重要的问题.  因为文件使用完之后一定要关闭,打开文件其实是在申请一定的系统资源,  不再使用文件的时候,资源应及时释放,否则就可能造成文件资源的泄漏, 进一步导致其他大部分的代码无法顺利打开,正是因为一个系统的资源是有限的,因此一个程序能打开的文件个数也是有限的.

python当中有一个很重要的机制,垃圾回收机制GC  自动的将不使用的变量给释放掉.

虽然Python给了我们一个后手,让我们一定程度的避免了上述问题,但是也不能完全依赖自动释放机制,因为制动释放机制不一定及时,它需要判定是否为垃圾,那这需要以一定时间周期,如果在这周期内我就直接打开了所有文件,导致文件泄露了,所以不应该完全依赖他,而应该有关闭文件操作的意识。

讲讲具体操作,:1.先打开open('路径 ','w或者a')取决于之前它们俩的区别  2.变量.write('内容 ') 3.变量.close()如果文件对象已经关闭了,那就意味着系统和该文件相关的内存资源已经释放了,若强行写则会抛异常.

:1.先打开open('路径',' r')2.变量.read(数字)这个数字表示多少数字的字符(不是字节哦)注意中文和英文相似,在计算机中都是使用数字来表示字符的, 哪个数字对应哪个汉字常见的版本有:GBK  UTF8这两种编码方式.在哪里看呢?在文本记事本右下角有编码方式,如果没有的话,那就从菜单,选择文件,选择另存于就可以看到编码方式了. 读的编码方式,应与文件的编码方式一致.系统默认编码方式为GBK,UTF8是比GBK使用更广泛的编码方式.上述已经讲了如何对编码方式进行更改 也就是主动调下open的第3个参数encoding=' UTF8'这个也就是关键字参数.而open的前两个参数表示在什么路径下进行怎样的操作,这就是位置参数

2.更常见的需求是按行来读取的,最简单的办法直接for循环.for 变量 in 对象.注意打印的函数print,在末尾会自带一个斜杠n,若不想要它自带的斜杠,则可以自己设定想要末尾是什么,通过print(   ,end=' 自定义')这也就是一个关键字参数。而文本记事本中也会每行的末尾也会自带一个斜杠n.

3.还可以使用readlines方法,直接把整个文件所有内容都读出来,按照行组织的一个列表里

注意我上述所有说的方法,一定要记住这里的方法并不是语文上的方法,而是计算机里面的方法,这是要明确说明对象才能使用的。

上下文管理器:为防止未释放资源,而系统自带帮忙释放。体现在当with对应的代码块结束,就会执行对象的关闭。with open(跟上述一样   )as  对象:会自动帮对象释放资源,所以以后直接用with搭配open来打开文件.

终于终于,Python入门完全结束.很多方面也讲得很详细,各个原因也讲清楚了.真诚的希望各位把本人主页上其他的 Python依次看过来,这样你才能完完全全的知道,整个python的入门知识以及细节。

关注我,和我一起奔赴下一场山海!

12ca4fa2f0c84ff1ab12374557cf87b8.jpeg

 

 

 

 

 

  • 18
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 25
    评论
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值