python2.7 变量or常量

变量:

         变量的概念基本和初中的代数方程变量是一样的,只是在计算机程序中,变量buji不仅可以是数字,还可以是任意数据类型。

         变量在程序中就是用一个变量名表示,变量名必须是 “大小写英文、数字和 _ 的组合,而且不能直接用数字开头。

            a = 1      变量 a 是一个整数

            g_123 = 'k125'    变量g_123是一个字符串

            gyf  =  True    变量 gyf  是一个布尔值 True

           在python中,等号 = 是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同的数据类型的变量。

             

      这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如java就是静态语言,赋值语句如下:(//表示注释)

         int a = 123; //a是整数类型变量

          a = "abc"; // 错误:bune不能把字符串赋给整型变量

       和静态语言相比,动态语言更灵活

   请不要把赋值语句的等号等同于数学的等号。比如下面的代码:

         x = 10

         x = x + 2

      如果从数学上理解 x = x + 2 那无论如何是不成立的,在程序中,赋值语句先计算右侧的表达式 x + 2 ,得到结果 12 ,再赋给变量 x 。由于 x 之前的值是 10 ,重新赋值后, x 的值变成 12 。

      最后,理解变量在计算机内存中的表示也非常重要。当我们写 a = 'ABC' 时,python解释器干了两件事:

               1.在内存中创建了一个 'ABC' 的字符串;

               2.在内存中创建了一个名为 a 的变量,并把它指向 'ABC' 。

     也可以把一个变量 a 赋值给另一个变量 b ,这个操作实际上是把变量 b 指向变量 a 所指向的数据,例如下面的代码:

                  a = 'ABC'

                  b = a

                  a = 'XYZ'

                  print  b

            

       最后一行打印出变量 b 的内容到底是 'ABC' 呢还是 'XYZ' ?如果从数学意义上理解,就会错误地得出 b 和 a 相同,也应该是 'XYZ' ,但实际上 b 的值是 'ABC' ,让我们一行一行地执行代码,就可以看到到底发生了什么事:

        执行 a = 'ABC' ,解释器创建了字符串 'ABC' 和变量 a ,并把 a 指向 'ABC' :

         

        执行 b = a ,解释器创建了变量 b ,并把 b 指向 a 指向的字符串 'ABC' :

         

         执行 a = 'XYZ' ,解释器创建了字符串'XYZ',并把 a 的指向改为 'XYZ' ,但 b 并没有更改

         

        所以,最后打印变量 b 的结果自然是 ‘ABC’ 了。

常量:

          所谓常量 就是不能变的量,比如数学常数π就是一个常量;在python中,通常用全部大写的变量名表示常量。

             QW = 3.1415926

          但是QW仍然是一个变量,pythonge根本没有任何机制保证QWbhui不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法。

            整数的除法也是精确的,整数除法永远是整数:

                    

            要做精确地除法,只需把其中一个整数换成浮点数做除法就可以:

                  

             因为整数除法只取结果的整数部分,所以python提供了一个余数运算,可以得到两个整数相除的余数:

              

             无论整数做除法还是取余数,结果永远是整数,所以,整数运算结果永远是jing精确地。

   总结:

            Python支持duoz多种数据类型,zaij在计算机内部,可以把任何数据都看成一个对象,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来。

猜你喜欢

转载自blog.csdn.net/HelloWord176/article/details/82931141
今日推荐