分享

Python学习手册(第4版).3

 云深无际 2021-11-03

建议:如果想要在IDLE的主窗口中重复前一条命令,可以使用Alt-P组合键回滚,找到命令行的历史记录,并用Alt-N向前寻找(在Mac上,可以试试使用Ctrl-P和Ctrl-N)。之前的命令可以重新调用并显示,并且可以编辑改变后运行。也可以通过使用游标指到命令上重新运行该命令,或使用复制粘贴的操作,但这些看起来需要花费更多力气。除了IDLE,Windows的交互模式对话环境中,可以使用方向键重新调用使用过的命令。

如果发生了连接错误,试一下通过单个进程的模式启动IDLE。由于IDLE要求在其独立的用户和GUI进程间通信,有时候它会在特定的平台上发生启动错误(特别是在一些Windows机器上,它会不时地出现启动错误)。如果运行时碰到了这样的连接错误,它常常可以通过系统命令行使IDLE运行在单一进程的模式下进行启动,从而避免了通信的问题:-n命令行标志位可以强制进入这种模式。

看不懂是什么意思


参考《Programming Python》(O’Reilly)来了解在C/C++中嵌入Python的细节。嵌入式API可以直接调用Python函数、加载模块等。此外,Jython系统可让Java程序使用基于Java的API(Python解释器类)来启用Python程序代码。

命名空间是指一个模块文件的独有的变量包,它隔离了不同模块文件的变量空间,从而可以防止变量名冲突。

命名空间就像他的名字一样,是用来管理名字(变量)的,但凡在这个空间管辖范围内的变量对其他空间来说是不可见的,除非明确引入进来。就像我们学校班级一样,不同班级可能都有叫“张三”的人,但上课老师让A班级的张三站出来时,B班级的张三是不知道的,命名空间解决了名字冲突的问题。

最好得学习资料,永远不是什么书.什么7天学会30天学会,其实就是自带得文档


程序由模块构成;

模块包含函数和语句,函数由语句组成;

语句包含表达式;

表达式建立并处理对象。

rf的分层原理一致。资源对应模块,关键字对应函数,变量对应对象。

不少初学者误以为Python 是弱类型语言,区分弱类型还是强类型的关键在于当你创建好一个对象时,在运行期间能不能改变为其他类型,显然Python是不行的,一旦创建出某个对象,它永远就是当初创建的那种类型,而JavaScript是一门弱类型语言

两个特点:1动态的自动判断数据类型  2强类型的,只能对对应的数据做它本身的操作

区分是否是强类型语言关键在于能否在运行期间改变变量的类型.


字符串无非是元素限定为字符的序列。因为人类的大部分信息都以文字的形式存储,所以字符串成为几乎所有编程语言的一等公民。

索引是按照从最前面的偏移量进行编码的,也就是从0开始,第一项索引为0,第二项索引为1,依此类推。

这里的索引指"正向索引","反向索引"不是从最后面的偏移量开始计算的。

字符串和列表都属于序列,那就是说对于字符串的操作都可以用于列表的操作。

字符串无非是元素限定为字符的序列。因为人类的大部分信息都以文字的形式存储,所以字符串成为几乎所有编程语言的一等公民。


用人所长,知道别人的长处(赋值),记住别人的名字(变量名)。先赋值,再用变量。

一般来说,负的索引号会简单地与字符串的长度相加。

正向索引从最左边0开始计算,0,1,2,…,len-1;反向索引从最右边开始开始计算,-1,-2,…,-len,其分别对应于正向索引的len-1,len-2,…,0,对应的索引对应于同一个元素。也就是说,可以将负的索引号直接与字符串长度len相加得出正的索引号,来访问此索引对应的元素。

序列也支持一种所谓分片(slice)的操作,这是一种一步就能够提取整个分片(slice)的方法。

上课一直不理解老师说的Slicing 是什么,现在懂了:就是提取整片数据,这个英文解释真简明+形象。

slice分片操作的形式为X[i,j],表示取出X中索引为i,i+1,…,j-1的内容,结果是返回此内容的一个新对象。在一个分片中,左边界默认为0,并且右边界默认为分片序列的长度。原则,包头不包尾。

它们的一般形式为X[I:J],表示“取出在X中从偏移量为I,直到但不包括偏移量为J的内容”,类似java中字符串取出index为i到j的部分。

偏移量即序号,序号是从0开始的。

此外需要注意不含J,即分片位置只从I到J-1,从别的语言过来容易忘记这点。

我把它理解为数学里的左闭右开。

字符串是不可变的,列表是可变的,如果想改变列表的值而不影响原来的列表,则需要拷贝此列表。

作为一个序列,字符串也支持使用加号进行合并(将两个字符串合成为一个新的字符串),或者重复(通过再重复一次创建一个新的字符串)。

注意加号(+)对于不同的对象有不同的意义:对于数字为加法,对于字符串为合并。这是Python的一般特性,也就是将会在后面提到的多态。简而言之,一个操作的意义取决于被操作的对象。

本质上也就是运算符的重载。

但是加号经量不要用,因为太慢了,以后大家学数据结构的时候后就知道,加号会先建一个变量,然后做合并,最后赋值这是一个很慢的过程,当然也是对计算机而言.

对于更多细节,你可以调用内置的dir函数,将会返回一个列表,其中包含了对象的所有属性。由于方法是函数属性,它们也会在这个列表中出现。

以双下划线开头并结尾的变量名是用来表示Python实现细节的命名模式。

特殊方法专用的标识,用于特殊用途,平时应尽量避免使用以双下划开头并结尾的名称,以避免与将来python语言的变化产生冲突。

python不支持(像JAVA和C++语法别的数据隐藏或访问限制)封装,对于特殊的内部和特殊含义的操作和变量,通常用具有特殊名称的标识符来表示(如__init__())。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多