## 在分隔符首次出现位置拆分字符串,并返回包含分隔符之前部分、分隔符本身和分隔符之后部分的3元组 ## 返回字符串的一个拷贝,其中所有的子串old通过new替换。如果指定了可选参数count,则只有前面的count个出现被替换。 ##如果给出maxsplit,则至多拆分maxsplit次(因此,列表中将最多有maxsplit+1个元素)。如果没有指定maxsplit或为-1,那么分割的数量没有限制(进行所有可能的分割)
2.6.2. 字符串的格式化操作
xrange类型是不可变的序列,通常用于循环。xrange类型的好处是xrange对象始终占用相同数量的内存,无论它表示的范围的大小。但它没有始终一致的性能优势
集合对象是一个不同可哈希对象组成的无序集合。常见的使用包括成员测试、从序列中删除重复项和计算数学运算(如交、并、差和对称差)。(其它容器请参阅内建的字典、列表和元组类和collections模块。)
类似其它容器,集合支持x in set、 len(set)以及for x in set。作为一个无序的集合,集合不记录元素位置和插入顺序。因此,集合不支持索引、 切片、 或其它类似于序列的行为。
目前有两个内置的集合类型,set和frozenset。
文件对象使用C的stdio包实现并可以用内置的open()
函数创建。文件对象也会由一些其它内置的函数和方法返回,如os.popen()
和os.fdopen()
以及套接字对象的makefile()方法。临时文件可以通过tempfile
模块创建,高级的文件操作如复制、移动和删除文件和目录可以通过shutil
模块完成。
- 当with代码块退出时,下面的代码将自动关闭f
注 Python中不是所有的"类文件式"类型支持用作with语句的上下文管理器。如果你的代码是用于处理任何类似文件的对象,你可以使用函数contextlib.closing()而不是直接使用对象。
如果每次都这么手动转换编码嫌麻烦(写程序怕麻烦是好事,不怕麻烦就会写出又长又难懂又没法维护的代码),Python还提供了一个codecs模块帮我们在读文件时自动转换编码,直接读出unicode:
2.11. 上下文管理器类型
2.12. 其他的内建类型
- 既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。
- map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
- reduce把一个函数作用在一个序列[x1, x2, x3...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:
- filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。
- sorted:Python内置的sorted()函数就可以对list进行排序,此外,sorted()函数也是一个高阶函数,它还可以接收一个比较函数来实现自定义的排序。比如,如果要倒序排序,我们就可以自定义一个reversed_cmp函数:
- 当我们调用lazy_sum()时,返回的并不是求和结果,而是求和函数:
注意到返回的函数在其定义内部引用了局部变量args,所以,当一个函数返回了一个函数后,其内部的局部变量还被新函数引用,所以,闭包用起来简单,实现起来可不容易。
另一个需要注意的问题是,返回的函数并没有立刻执行,而是直到调用了f()才执行
- functools.partial就是帮助我们创建一个偏函数的,不需要我们自己定义int2(),可以直接使用下面的代码创建一个新的函数int2:
- 导入模块时,还可以使用别名,这样,可以在运行时根据当前环境选择最合适的模块。比如Python标准库一般会提供StringIO和cStringIO两个库,这两个库的接口和功能是一样的,但是cStringIO是C写的,速度更快,所以,你会经常看到这样的写法:
- 类似__xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,比如上面的__author__,__name__就是特殊变量,hello模块定义的文档注释也可以用特殊变量__doc__访问,我们自己的变量一般不要用这种变量名;
- 类似_xxx和__xxx这样的函数或变量就是非公开的(private),不应该被直接引用,比如_abc,__abc等;
- 之所以我们说,private函数和变量“不应该”被直接引用,而不是“不能”被直接引用,是因为Python并没有一种方法可以完全限制访问private函数或变量,但是,从编程习惯上不应该引用private函数或变量。
4.3 第三方模块使用(安装)
1.在可以联网的开发机器上安装好需要的包
1.下载指定的包到指定文件夹