python基础知识梳理(一)

关于python里的变量:

    在传统的编译型语言中,如果要定义一个变量,需要在变量名前,声明其数据类型。例:int a;  但是在python中却无需这样,如果想给一个变量赋值。直接赋值就行,非常的方便。至于你所赋的值是什么类型,python会自动识别。这样相比于传统语言有几方面优势。第一,有些时候由于对数据类型掌握的不够深,导致的错误可以避免。第二,在我们用一个很大的buffer去接收网络通信回传的数据或者很大文件的数据的时候,总会对内存操作有这样或者那样的失误。这两点python都会避免。

                               那么现在再深入一些。在交互模式下按照以下图片步骤输入。

                python基础知识梳理(一)_第1张图片

        我的是直接在pycharm里的左下角有一个图标,名字是Python Consle,点击这个图标之后就会进入交互模式,这也是pycharm便利的地方,说到这再介绍一下在该图标右边有一个名称为Terminal的选项,点击该选项会进入终端命令行,可以在这里进行pip install 模块名来安装模块。好了,接着说变量。id()为python内置方法,这个内置方法可以查看变量存放的地址。那么在传统的编译型语言里,如果你给一个变量重新赋值,是不会改变值的地址,除非你用指针。那么从这个结果可以分析出几点,第一点,在python里变量和数据是分开存放的,也就是说,当你重新给一个变量赋值时,并没有改变原变量的值,而是python重新做了一个引用来指向这个数据。

    在python的变量里有可变类型和不可变类型。那么这个可变与不可变指得是,在你操作这个数据之后,会不会改变产生一个新的引用。那么在python里,字符串和数字都是不可变类型。也就是说,在给字符串和数字类型赋值时,你并没有改变原变量,而是重新产生了一个引用。并且改变该变量的值的时候,会产生新的引用。下面给出字符串的例子。

    

                                                        python基础知识梳理(一)_第2张图片

                        可以看出来,字符串也是不可变类型。那么下面再举一个元组的例子

                                                       python基础知识梳理(一)_第3张图片

                        可以看出元组也是不可变类型,下面看列表。

                    

                                         python基础知识梳理(一)_第4张图片

                正好印证了上述的说法,也就是说我们在对原变量操作时,并没有产生的新的引用。

    还有一个知识点,在python里一切皆对象。也就是说,无论我们定义什么类型的变量,这个变量都是类对象。里面有很多的内置方法。怎么验证呢?用dir()方法。就可以在终端打印出该对象内置方法的列表。如图

    

可以印证我们上述的说法。在linux操作系统下一切皆文件,在python中一切皆对象。

总结:

        在python中我们对每种类型变量重新赋值的时候都会产生新的信用,但是可变类型的变量,在我们对他们原变量进行操作的时候,不会产生新的引用。在linux操作系统下一切皆文件,在python中一切皆对象。

你可能感兴趣的:(python)