变量:
变量的概念基本和初中的代数方程变量是一样的,只是在计算机程序中,变量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精确地。